public OpenFileBinaryMenu(FileListGrid fileList) { this.Text = "開く(バイナリ形式)"; //クリックイベント this.Click += (sender, e) => { //カレント行のパスを取得します。 var path = fileList[0, fileList.CurrentCell.RowIndex].Value.ToString(); //フォルダの場合は処理しない if (FileUtils.IsFile(path) == false) { return; } //プラグイン生成パラメーターを設定します var pluginCreateParam = new PluginCreateParam { ["path"] = path, //選択されたパス ["encoding"] = null, //文字コード ["is_binary"] = true //バイナリーモード }; //テキストエディタープラグインを生成します var plugin = (IFilePlugin)PluginManager.GetInstance().CreatePluginInstance(typeof(TextEditorPlugin), pluginCreateParam, this); }; }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //DBのパスを作成します var dbDirPath = FileUtils.AppendPath(PluginManager.GetCommonDataPath(), "file_info/"); FileUtils.CreateDir(dbDirPath); var dbPath = FileUtils.AppendPath(dbDirPath, "file_info.db"); //プロパティファイルを読み込みます Property = new IniFile(); Property.Load(param.PropertyPath); //DB接続用オブジェクトを生成します _db = new FileDB(dbPath); //DBのバックアップを作成します File.Copy(dbPath, dbPath + "_old", true); //ビューのコントロールを生成します _control = new FileInfoManagerControl(this, dbPath); //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(FileNameChangedEventParam.Name, this); return(true); }
/// <summary> /// 開く(文字コード指定) の Click された時の処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OpenWithEnc(Encoding encoding) { try { //開くダイアログのプラグインを取得します var openDialogPlugin = (IOpenDialog)_pluginManager.GetPlugin("open_dialog"); //ファイルを開くダイアログを表示します var path = openDialogPlugin.ShowDialog(); if (path == null) { return; } //プラグイン生成パラメーターを設定します var pluginCreateParam = new PluginCreateParam { ["path"] = path, //選択されたパス ["encoding"] = encoding, //文字コード ["is_binary"] = false //テキストモード }; //テキストエディタープラグインを生成します var plugin = (IFilePlugin)_pluginManager.CreatePluginInstance(typeof(TextEditorPlugin), pluginCreateParam, this); } catch (Exception ex) { __.ShowErrorMsgBox(ex); } }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //メニューを作成します this.Text = "ヘルプ"; { var menu = new ToolStripMenuItem("バージョン情報"); menu.Click += (sender, e) => { //バージョン情報を取得します var fileVersionInfo = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location); string version = fileVersionInfo.ProductName + " " + //製品名 fileVersionInfo.ProductVersion + "\n" + //製品バージョン fileVersionInfo.LegalCopyright; //コピーライト //バージョン情報を表示します MessageBox.Show(version); }; this.DropDownItems.Add(menu); } return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //プロパティファイルを読み込みます _property = new PluginProperty(); _property.Load(param.PropertyPath); var text = _property[PluginProperty.NO_SECTION, "text"]; var toolTip = _property[PluginProperty.NO_SECTION, "tool_tip_text"]; var className = _property[PluginProperty.NO_SECTION, "create_plugin_class_name"]; var imgPath = _property[PluginProperty.NO_SECTION, "img_path"]; //img/calendar.png //ツールの画像を設定します if (StringUtils.IsNotEmpty(imgPath)) { this.Image = System.Drawing.Image.FromFile(FileUtils.AppendPath(param.DataPath, imgPath)); } //メニューを作成します this.Text = text; this.ToolTipText = toolTip; this.Click += (sender, e) => { //プラグインを生成します var type = _pluginManager.GetPluginType(className); var plugin = (IPlugin)_pluginManager.CreatePluginInstance(type, new PluginCreateParam(), this); }; return(true); }
/// <summary> /// 編集ボタンクリック /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnEdit_Click(object sender, EventArgs e) { if (_grid.CurrentCell == null) { return; } if (_grid.CurrentCell.RowIndex == -1) { return; //セルが選択されていない場合は処理しない } //現在選択されている行のIDを取得します var id = _grid[_colIndexes.ID, _grid.CurrentCell.RowIndex].Value?.ToString(); //プラグイン生成パラメーターを設定します var pluginCreateParam = new PluginCreateParam { ["id"] = id }; //ファイル情報エディタープラグイン(プラグインID固定:file_info_editor)を生成します //(既に存在する場合は、既存のプラグインを返ります) var editorPlugin = (FileInfoEditorPlugin)_pluginManager.CreatePluginInstance( typeof(FileInfoEditorPlugin), pluginCreateParam, this, null, "file_info_editor"); if (editorPlugin == null) { return; //TODO プラグイン生成エラー。定義ファイルのミスなど。 } //ファイル情報選択イベントを発生させます var param = new FileInfoSelectingEventParam { ID = id }; _pluginManager.GetEventManager().RaiseEvent(FileInfoSelectingEventParam.Name, _plugin, param); }
/****************************************************************************** * * IPlugin * ******************************************************************************/ //初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //コントロールの初期化をします this.Initialize(); this.SelectionMode = DataGridViewSelectionMode.CellSelect; //セル選択モード this.EditMode = DataGridViewEditMode.EditProgrammatically; //シングルクリックで編集中にならないようにした //ファイルリストで表示するフォルダの画像を設定します this.SetImage(Image.FromFile(FileUtils.AppendPath(param.DataPath, "img/opened_folder.png"))); //ポップアップメニューを設定します SetPopupMenuItem(); //カラムの設定(FileListPluginExクラスでは、動的にカラムを設定するようになっています) this.Columns.Add(new PathColumn()); //パスカラム(非表示) //this.Columns.Add(new FileKindColumn ()); this.Columns.Add(new FileNameColumn()); this.Columns.Add(new FileExtensionColumn()); this.Columns.Add(new FileSizeColumn()); this.Columns.Add(new FileUpdateDateColumn()); //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(DirSelectedEventParam.Name, this); return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //プロパティファイルを読み込みます _property = new PluginProperty(); _property.Load(param.PropertyPath); //プロパティから色を取得して保持します _foreColor = Color.FromArgb((int)((long)0xff000000 + _property.ToInt("color", "fore_color", 0xffffff))); _backColor = Color.FromArgb((int)((long)0xff000000 + _property.ToInt("color", "back_color", 0x000000))); //カラーデータを生成して、共通データとして設定します var colorData = new ColorData { ForeColor = Color.White, BackColor = Color.Black }; _pluginManager.CommonData[CommonDataKeys.ColorData] = colorData; //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(PluginCreatedEventParam.Name, this); _pluginManager.GetEventManager().AddEventHandler(AllPluginCreatedEventParam.Name, this); return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //画像ビューアを生成します _ImageViewer = new ImageViewerControl(this, _pluginManager); _ImageViewer.Dock = DockStyle.Fill; //画像を読み込みます var result = _ImageViewer.LoadImage(param.Path); if (result == false) { return(false); } //ファイル名をタイトルとして保持します(タブのタイトルになります) if (result) { this.Title = Path.GetFileName(param.Path); } //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(FileSelectingEventParam.Name, this); return(true); }
/****************************************************************************** * * IPlugin * ******************************************************************************/ //初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(PluginCreatedEventParam.Name, this); //プロパティファイルを読み込みます _property.Load(param.PropertyPath); if (param["orientation"] != null) { if (param["orientation"].Equals("horizontal")) { this.Orientation = Orientation.Horizontal; } if (param["orientation"].Equals("vertical")) { this.Orientation = Orientation.Vertical; } } //スプリッターを移動した際に、左のパネルをリサイズしないようにする this.FixedPanel = FixedPanel.Panel1; this.SplitterWidth = 6; //スプリットのバーの幅 this.BackColor = Color.LightGray; //スプリットのバーの色 this.Panel1.BackColor = SystemColors.Control; this.Panel2.BackColor = SystemColors.Control; return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プロパティファイルを読み込みます var property = new PluginProperty(); property.Load(param.PropertyPath); //プロパティから値を取得します var text = property[PluginProperty.NO_SECTION, "text"]; var className = property[PluginProperty.NO_SECTION, "create_plugin_class_name"]; var method = property[PluginProperty.NO_SECTION, "method"]; //メニューを作成します this.Text = text; //this.ShortcutKeys = Keys.F3; //TODO プロパティで指定できるようにする this.Click += (sender, e) => { var targetPlugin = PluginManager.GetInstance().ActivePlugin; if (targetPlugin == null) { return; } //リフレクションで指定されたメソッドを取得します var methodInfo = targetPlugin.GetType().GetMethod(method); //メソッドが取得できない場合は、処理を中止します if (methodInfo == null) { return; //TODO ログ出力 } //メソッドを実行します methodInfo.Invoke(targetPlugin, null); }; return(true); }
/****************************************************************************** * * IPlugin * ******************************************************************************/ //初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(PluginCreatedEventParam.Name, this); //メインフォームとして設定します _pluginManager.MainForm = this; //プロパティファイルを読み込みます LoadProperty(param.PropertyPath); //共通カラーデータを取得します //未設定の場合は、生成して共通データに設定します var colorData = (ColorData)_pluginManager.CommonData[CommonDataKeys.ColorData]; if (colorData == null) { colorData = new ColorData(); _pluginManager.CommonData[CommonDataKeys.ColorData] = colorData; } return(true); }
} //プラグイン配置後の初期化処理を行います //初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(FileSelectedEventParam.Name, this); //plugin_extension.ini を読み込みます _pluginExtIni.Load(FileUtils.AppendPath(param.DataPath, "plugin_extension.ini")); //plugin_list.ini を読み込みます var pluginListIni = new PluginListIni(); //new IniFile(); pluginListIni.Load(FileUtils.AppendPath(param.DataPath, "plugin_list.ini")); //plugin_list.ini で指定されているプラグインを全て生成します CreatePlugin(pluginListIni); //全てのプラグインの生成が完了したことを通知するイベントを発生させます var eventParam = new AllPluginCreatedEventParam(); _pluginManager.GetEventManager().RaiseEvent(AllPluginCreatedEventParam.Name, this, eventParam); return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(PluginCreatedEventParam.Name, this); return(true); }
/****************************************************************************** * * IPlugin * ******************************************************************************/ //初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //ファイルツリービューの設定 { //ノード用の画像の読み込み var imgDirPath = FileUtils.AppendPath(param.DataPath, "img"); var imgOpenedFolder = Image.FromFile(FileUtils.AppendPath(imgDirPath, "opened_folder.png")); var imgClosedFolder = Image.FromFile(FileUtils.AppendPath(imgDirPath, "closed_folder.png")); var imgRoot = Image.FromFile(FileUtils.AppendPath(imgDirPath, "root.png")); var imgCd = Image.FromFile(FileUtils.AppendPath(imgDirPath, "cd.png")); var imgHdd = Image.FromFile(FileUtils.AppendPath(imgDirPath, "hdd.png")); var imgRemovable = Image.FromFile(FileUtils.AppendPath(imgDirPath, "removable.png")); //ノード用の画像の設定 SetImage(20, 20, imgOpenedFolder, imgClosedFolder, imgRoot, imgCd, imgHdd, imgRemovable); //ファイルツリービューを初期化します Initialize(); this.Font = new Font("MSゴシック", 9); } //ポップアップメニューを設定します var popupMenu = new ContextMenuStrip(); { var menu = new ToolStripMenuItem("最新の情報に更新"); popupMenu.Items.Add(menu); menu.Click += (sender, e) => { this.Refresh(this.SelectedNode); }; } { var menu = new ToolStripMenuItem("フォルダを開く"); popupMenu.Items.Add(menu); menu.Click += (sender, e) => { //選択されているノードのパスを取得します var path = GetPath(this.SelectedNode); if (string.IsNullOrEmpty(path)) { return; } //ネイティブな方法でフォルダを開きます Process.Start(path); }; } this.ContextMenuStrip = popupMenu; return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(PluginCreatedEventParam.Name, this); //ツールバーのボタンの画像サイズを設定します this.ImageScalingSize = new Size(20, 20); return(true); }
/****************************************************************************** * * IPlugin * ******************************************************************************/ //初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //共通データに検索データを生成して設定します _pluginManager.CommonData[CommonDataKeys.SearchData] = new SearchData(); //プロパティファイルを読み込みます _property.Load(param.PropertyPath); return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //ラベルを生成します _textbox = new TextBox(); _textbox.Text = "サンプルプラグインです。"; _textbox.Dock = DockStyle.Fill; _textbox.KeyDown += _textbox_KeyDown; return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //クリックイベントを設定します this.Click += ToolClick; //ツールの画像を設定します this.Image = Image.FromFile(FileUtils.AppendPath(param.DataPath, "img/opened_folder.png")); return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //プロパティファイルを読み込みます _property = new IniFile(); _property.Load(param.PropertyPath); //列の幅を設定します this.Width = _property.ToInt(IniFile.NO_SECTION, "width", 140); return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プロパティファイルを読み込みます var property = new PluginProperty(); property.Load(param.PropertyPath); var text = property[PluginProperty.NO_SECTION, "text"]; //メニューを作成します this.Text = text; //this.ShortcutKeys = Keys.F3; //TODO プロパティで指定できるようにする return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //メニューを作成します this.Text = "ファイル"; //開くメニュー this.DropDownItems.Add(new OpenFileMenu(_pluginManager)); //開く(文字コード指定)メニュー this.DropDownItems.Add(new OpenFileWithEncordingMenu(_pluginManager)); //開く(バイナリ形式)メニュー this.DropDownItems.Add(new OpenFileInBinaryMenu(_pluginManager)); //上書き保存メニュー this.DropDownItems.Add(new SaveFileMenu(_pluginManager, true)); //名前を付けて保存メニュー this.DropDownItems.Add(new SaveFileMenu(_pluginManager, false)); //閉じるメニュー { var menu = new ToolStripMenuItem("閉じる"); menu.ShortcutKeys = Keys.Control | Keys.Q; menu.Click += (sender, e) => { if (_pluginManager.ActivePlugin != null) { //アクティブプラグインを終了します _pluginManager.ClosePlugin(_pluginManager.ActivePlugin); } }; this.DropDownItems.Add(menu); } //終了メニュー { var menu = new ToolStripMenuItem("終了"); menu.Click += (sender, e) => { _pluginManager.MainForm.Dispose(); }; this.DropDownItems.Add(menu); } return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //DBのパスを作成します var dbDirPath = FileUtils.AppendPath(PluginManager.GetCommonDataPath(), "file_info/"); FileUtils.CreateDir(dbDirPath); var dbPath = FileUtils.AppendPath(dbDirPath, "file_info.db"); //タイトルカラムコントロールを生成します _column = new TitleColumn(dbPath); return(true); }
/// <summary> /// プロパティファイル /// </summary> //private IniFile _property = new IniFile(); /****************************************************************************** * * IPlugin * ******************************************************************************/ //初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //親フォルダへ移動ボタン用の画像の読み込み var imgDirPath = FileUtils.AppendPath(param.DataPath, "img"); var imgOpenedFolder = Image.FromFile(FileUtils.AppendPath(imgDirPath, "move_to_parent_dir.png")); //ボタンに画像を設定します btnMoveToParentDir.Image = imgOpenedFolder; //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(DirSelectedEventParam.Name, this); return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //プロパティファイルを読み込みます var property = new PluginProperty(); property.Load(param.PropertyPath); var text = property[PluginProperty.NO_SECTION, "text"]; var toolTip = property[PluginProperty.NO_SECTION, "tool_tip_text"]; var className = property[PluginProperty.NO_SECTION, "create_plugin_class_name"]; var imgPath = property[PluginProperty.NO_SECTION, "img_path"]; //img/calendar.png var method = property[PluginProperty.NO_SECTION, "method"]; //ツールの画像を設定します if (StringUtils.IsNotEmpty(imgPath)) { this.Image = System.Drawing.Image.FromFile(FileUtils.AppendPath(param.DataPath, imgPath)); } //メニューを作成します this.Text = text; this.ToolTipText = toolTip; this.Click += (sender, e) => { var targetPlugin = _pluginManager.ActivePlugin; if (targetPlugin == null) { return; } //リフレクションで指定されたメソッドを取得します var methodInfo = targetPlugin.GetType().GetMethod(method); //メソッドが取得できない場合は、処理を中止します if (methodInfo == null) { return; //TODO ログ出力 } //メソッドを実行します methodInfo.Invoke(targetPlugin, null); }; return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //プロパティファイルを読み込みます _property = new IniFile(); _property.Load(param.PropertyPath); //日記用のデータフォルダのパスを取得します var dataDir = _property.ToString(IniFile.NO_SECTION, "data_dir", "diary"); //カレンダーコントロールを生成します _control = new CalendarControl(this, _pluginManager, dataDir); return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //メニューを作成します this.Text = "デバッグ"; { var menu = new ToolStripMenuItem("テストプラグインの生成"); menu.Click += (sender, e) => { //プラグインを生成します var plugin = (IPlugin)_pluginManager.CreatePluginInstance(typeof(TestPlugin), null, this); }; this.DropDownItems.Add(menu); } return(true); }
//初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); this.Click += (sender, e) => { if (_pluginManager.ActivePlugin is IFilePlugin plugin) { //アクティブプラグインのファイルを保存します plugin.SaveFile(); } }; //ツールの画像を設定します this.Image = Image.FromFile(FileUtils.AppendPath(param.DataPath, "img/save.png")); return(true); }
/****************************************************************************** * * IPlugin * ******************************************************************************/ //初期処理を行います public bool Initialize(PluginCreateParam param) { //プラグインマネージャーを保持します _pluginManager = PluginManager.GetInstance(); //DBのパスを作成します var dbDirPath = FileUtils.AppendPath(PluginManager.GetCommonDataPath(), "file_info/"); FileUtils.CreateDir(dbDirPath); var dbPath = FileUtils.AppendPath(dbDirPath, "file_info.db"); //ファイル情報エディターを生成します _editor = new FileInfoEditorControl(this, dbPath, (string)param["id"]); //イベントハンドラーを登録します _pluginManager.GetEventManager().AddEventHandler(FileInfoSelectingEventParam.Name, this); return(true); }