コード例 #1
0
        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);
            };
        }
コード例 #2
0
        //初期処理を行います
        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);
        }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
        //初期処理を行います
        public bool Initialize(PluginCreateParam param)
        {
            //プラグインマネージャーを保持します
            _pluginManager = PluginManager.GetInstance();

            return(true);
        }
コード例 #5
0
        //初期処理を行います
        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);
        }
コード例 #6
0
        //初期処理を行います
        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);
        }
コード例 #7
0
        /// <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);
        }
コード例 #8
0
        /******************************************************************************
        *
        *  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);
        }
コード例 #9
0
        //初期処理を行います
        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);
        }
コード例 #10
0
        //初期処理を行います
        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);
        }
コード例 #11
0
        /******************************************************************************
        *
        *  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);
        }
コード例 #12
0
        //初期処理を行います
        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);
        }
コード例 #13
0
        /******************************************************************************
        *
        *  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);
        }
コード例 #14
0
        }                                                   //プラグイン配置後の初期化処理を行います

        //初期処理を行います
        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);
        }
コード例 #15
0
        //初期処理を行います
        public bool Initialize(PluginCreateParam param)
        {
            //プラグインマネージャーを保持します
            _pluginManager = PluginManager.GetInstance();

            //イベントハンドラーを登録します
            _pluginManager.GetEventManager().AddEventHandler(PluginCreatedEventParam.Name, this);

            return(true);
        }
コード例 #16
0
        /******************************************************************************
        *
        *  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);
        }
コード例 #17
0
        //初期処理を行います
        public bool Initialize(PluginCreateParam param)
        {
            //プラグインマネージャーを保持します
            _pluginManager = PluginManager.GetInstance();

            //イベントハンドラーを登録します
            _pluginManager.GetEventManager().AddEventHandler(PluginCreatedEventParam.Name, this);

            //ツールバーのボタンの画像サイズを設定します
            this.ImageScalingSize = new Size(20, 20);
            return(true);
        }
コード例 #18
0
        /******************************************************************************
        *
        *  IPlugin
        *
        ******************************************************************************/

        //初期処理を行います
        public bool Initialize(PluginCreateParam param)
        {
            //プラグインマネージャーを保持します
            _pluginManager = PluginManager.GetInstance();

            //共通データに検索データを生成して設定します
            _pluginManager.CommonData[CommonDataKeys.SearchData] = new SearchData();

            //プロパティファイルを読み込みます
            _property.Load(param.PropertyPath);

            return(true);
        }
コード例 #19
0
        //初期処理を行います
        public bool Initialize(PluginCreateParam param)
        {
            //プラグインマネージャーを保持します
            _pluginManager = PluginManager.GetInstance();

            //ラベルを生成します
            _textbox          = new TextBox();
            _textbox.Text     = "サンプルプラグインです。";
            _textbox.Dock     = DockStyle.Fill;
            _textbox.KeyDown += _textbox_KeyDown;

            return(true);
        }
コード例 #20
0
        //初期処理を行います
        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);
        }
コード例 #21
0
        //初期処理を行います
        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);
        }
コード例 #22
0
        //初期処理を行います
        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);
        }
コード例 #23
0
        //初期処理を行います
        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);
        }
コード例 #24
0
        //初期処理を行います
        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);
        }
コード例 #25
0
        /// <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);
        }
コード例 #26
0
        //初期処理を行います
        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);
        }
コード例 #27
0
        //初期処理を行います
        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);
        }
コード例 #28
0
        //初期処理を行います
        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);
        }
コード例 #29
0
        //初期処理を行います
        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);
        }
コード例 #30
0
        /******************************************************************************
        *
        *  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);
        }