●プラグインサンプル2

 
001 /*
002  * PluginSample2    1.00    1999/09/22
003  *
004  * Copyright 1998-1999 (C) Justsystem Corporation
005  */
006
007 import    java.awt.event.ActionEvent;
008 import    javax.swing.AbstractAction;
009 import    javax.swing.Action;
010 import    jp.co.justsystem.ark.plugin.ArkPlugin;
011 import    jp.co.justsystem.ark.plugin.ArkPluginContext;
012 import    jp.co.justsystem.ark.plugin.PluginResourceFactory;
013 import    jp.co.justsystem.ark.plugin.ResourcePlugin;
014 import    jp.co.justsystem.ark.plugin.UIPlugin;
015
016
017 /**
018  * 【プラグインサンプル2】
019  *
020  * メニューを追加する。
021  *
022  * @version    1.00 1999/09/22
023  */
024 public class PluginSample2 extends ArkPlugin implements UIPlugin {
025
026     /**
027      * このプラグインのID
028      */
029     private static final String ID = "plugin_sample2";
030
031     /**
032      * このプラグインのリソース
033      */
034     private static final String RESOURCE_BASE = "Resource";
035     private static final String RESOURCE_MAIN = "MainRes";
036
037     /*
038      * リソースのキー
039      */
040     static final String RK_MENU1  = ID + ".menu1";
041     static final String RK_ITEM11 = ID + ".item11";
042     static final String RK_ITEM12 = ID + ".item12";
043     static final String RK_ITEM13 = ID + ".item13";
044     static final String RK_MENU2  = ID + ".menu2";
045     static final String RK_ITEM21 = ID + ".item21";
046     static final String RK_ITEM22 = ID + ".item22";
047
048     /*
049      * アクション名
050      */
051     static final String STR_ACTION1 = ID + ".action1";
052     static final String STR_ACTION2 = ID + ".action2";
053     static final String STR_ACTION_CUT   = "EditCut";
054     static final String STR_ACTION_COPY  = "EditCopy";
055     static final String STR_ACTION_PASTE = "EditPaste";
056
057
058     /**
059      * リソース
060      */
061     ResourcePlugin        baseResource;
062     ResourcePlugin        mainResource;
063
064     /**
065      * デフォルトコンストラクタ。
066      */
067     public PluginSample2() {
068     }
069
070
071     /*
072      * ---------- プラグイン基本コールバック -----------------------------------------------------
073      */
074
075     /**
076      * 初期化
077      */
078     public void init() {
079         // コンテキストを取ってくる
080         ArkPluginContext context = getPluginContext();
081         // 自分用リソースを登録
082         baseResource = new PluginResourceFactory(RESOURCE_BASE, getClass().getClassLoader());
083         context.addResourcePlugin(baseResource);
084         // 本体用リソースを生成
085         mainResource = new PluginResourceFactory(RESOURCE_MAIN, getClass().getClassLoader());
086     }
087
088     /**
089      * 利用開始
090      */
091     public void start() {
092         // コンテキストを取ってくる
093         ArkPluginContext context = getPluginContext();
094         // 本体用リソースを登録
095         context.addResourcePlugin(mainResource);
096         // UIプラグインを登録
097         context.addUIPlugin(this);
098     }
099
100     /**
101      * 利用停止
102      */
103     public void stop() {
104         // コンテキストを取ってくる
105         ArkPluginContext context = getPluginContext();
106         // 本体用リソースを抹消
107         context.removeResourcePlugin(mainResource);
108         // UIプラグイン抹消
109         context.removeUIPlugin(this);
110     }
111
112     /**
113      * 破棄
114      */
115     public void destroy() {
116         // コンテキストを取ってくる
117         ArkPluginContext context = getPluginContext();
118         // 自分用リソースを抹消
119         context.removeResourcePlugin(baseResource);
120         // あとしまつ
121         baseResource = null;
122         mainResource = null;
123     }
124
125     /**
126      * IDを取得する。
127      */
128     public String getID() {
129         return ID;
130     }
131
132
133     /*
134      * ---------- UIプラグイン -----------------------------------------------------------------
135      */
136
137     /**
138      * Actionを登録する。
139      */
140     public Action[] getActions() {
141         Action[] actions = new Action[] {
142             new Action1(),
143             new Action2(),
144         };
145         actions[0].setEnabled(true);
146         actions[1].setEnabled(false);
147         return actions;
148     }
149
150     /**
151      * MenuItemを登録する。
152      */
153     public UIPlugin.MenuItem[] getMenuItems() {
154         UIPlugin.MenuItem[] items = new UIPlugin.MenuItem[2];
155         items[0] = new UIPlugin.Menu(RK_MENU1);
156         ((UIPlugin.Menu)items[0]).addMenuItem(new UIPlugin.MenuItem(RK_ITEM11, STR_ACTION_CUT));
157         ((UIPlugin.Menu)items[0]).addMenuItem(new UIPlugin.MenuItem(RK_ITEM12, STR_ACTION_COPY));
158         ((UIPlugin.Menu)items[0]).addMenuItem(new UIPlugin.MenuItem(RK_ITEM13, STR_ACTION_PASTE));
159         items[1] = new UIPlugin.Menu(RK_MENU2);
160         ((UIPlugin.Menu)items[1]).addMenuItem(new UIPlugin.MenuItem(RK_ITEM21, STR_ACTION1));
161         ((UIPlugin.Menu)items[1]).addMenuItem(new UIPlugin.MenuItem(RK_ITEM22, STR_ACTION2));
162         return items;
163     }
164
165
166     /*
167      * ---------- アクション ---------------------------------------------------------------------
168      */
169
170     /**
171      * アクション1
172      */
173     public static class Action1 extends AbstractAction {
174         public Action1() {
175             super(STR_ACTION1);
176         }
177         public void actionPerformed(ActionEvent ev) {
178             /* アクション1の処理 */
179             System.out.println("action1");
180         }
181     }
182
183     /**
184      * アクション2
185      */
186     public static class Action2 extends AbstractAction {
187         public Action2() {
188             super(STR_ACTION2);
189         }
190         public void actionPerformed(ActionEvent ev) {
191             /* アクション2の処理 */
192             System.out.println("action2");
193         }
194     }
195 }