Eclipse/プラグイン開発のTIPS集/getSite().registerContextMenuを理解する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
viewerをビューに配置していくときに、最後に必ずと言ってい...
getSite().registerContextMenu(menuMgr, viewer);
について、コンテキストメニューを外部に公開するときは必ず...
#contents
スニペット((イディオム。))として、こうやっときゃいいやっ...
ということで、viewerのところの引数をいろいろ変えてみて、...
**設定 [#s11d56bc]
#ref(pic.png)
上のように二つのviewerをビューに貼り付けて色々やってみる。
-viewer1: action1,action2を追加したビュー
-viewer2: getSite().setSelectionProvider(viewer2)したTabl...
action1,action2はActionのanonymousクラス。。またviewer2は...
**SelectionProviderから値をとってみる [#ya00b876]
-action1#runの処理:
ISelection selection = viewer.getSelection();
System.out.println(selection.getClass().getName());
System.out.println(selection);
つまりviewerから値をとって表示するだけ。
-action2#runの処理:
ISelectionProvider selectionProvider = getSite()
.getSelectionProvider();
System.out.println(selectionProvider.getSelection().getC...
.getName());
System.out.println(selectionProvider.getSelection());
つまりビューのSelectionProviderから値をとって表示するだけ。
***結果 [#kc602909]
-action1#runの実行結果:
org.eclipse.jface.viewers.StructuredSelection
[viewer1:a]
-action2#runの実行結果:
org.eclipse.jface.viewers.StructuredSelection
[viewer2:a]
当たり前ですね。getSite().setSelectionProvider(viewer2)し...
**つぎにregisterContextMenuしてからやってみる [#xb98bbd7]
次に、
getSite().registerContextMenu(getSite().getId(), menuMgr...
してみる((律儀にgetSite().getId()書いてますが、getSite()....
**拡張ポイントのばあい [#wa286a51]
次に、拡張ポイントでポップアップを追加する。
</viewerContribution>
<viewerContribution id="nu.mine.kino.plugin.sample...
targetID="nu.mine.kino.plugin.samples.views.Provid...
<action ↑これはviewのIDではなく、 これ↓です。...
registerContextMenu(getSite().getId(),...
class="nu.mine.kino.plugin.samples.rcp.Action5"...
id="nu.mine.kino.plugin.samples.rcp.action5" la...
menubarPath="additions"/>
</viewerContribution>
IViewActionDelegateの実装クラスAction5を
public class Action5 implements IViewActionDelegate {
private ISelection selection;
private IViewPart view;
public void init(IViewPart view) {
this.view = view;
}
public void run(IAction action) {
System.out.println("selectionからとってみる");
System.out.println(selection.getClass().getName());
System.out.println(selection);
}
public void selectionChanged(IAction action, ISelectio...
this.selection = selection;
System.out.println("selectionからとってみる");
System.out.println(selection.getClass().getName());
System.out.println(selection);
}
}
とすると。。。
***結果1 [#r6d00f75]
まず getSite().registerContextMenu(getSite().getId(), men...
次に
getSite().registerContextMenu(getSite().getId(), menuMgr...
をしてからやってみると。。。
***結果2 [#k96784d5]
なんと
selectionからとってみる
org.eclipse.jface.viewers.StructuredSelection
[viewer1:b]
となった。おもしろいのはビュー側で
getSite().setSelectionProvider(viewer2);
として「このビューのSelectionProviderはviewer2だよ」と宣...
getSite().registerContextMenu(getSite().getId(), menuMgr...
の意味は''このコンテキストメニュー(menuMgr)をgetSite().ge...
ではつぎに
getSite().registerContextMenu(getSite().getId(), menuMgr...
とした場合はどうなるか。この例はviewer2をregisterContextM...
よってスニペットとしては
getSite().registerContextMenu(getSite().getId(), menuMgr...
よりも
getSite().registerContextMenu(getSite().getId(), menuMgr...
のように''menuMgrを追加したviewerを第3引数に設定する''の...
ところで第三引数にnullをセットすると、拡張ポイントに対す...
----
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
viewerをビューに配置していくときに、最後に必ずと言ってい...
getSite().registerContextMenu(menuMgr, viewer);
について、コンテキストメニューを外部に公開するときは必ず...
#contents
スニペット((イディオム。))として、こうやっときゃいいやっ...
ということで、viewerのところの引数をいろいろ変えてみて、...
**設定 [#s11d56bc]
#ref(pic.png)
上のように二つのviewerをビューに貼り付けて色々やってみる。
-viewer1: action1,action2を追加したビュー
-viewer2: getSite().setSelectionProvider(viewer2)したTabl...
action1,action2はActionのanonymousクラス。。またviewer2は...
**SelectionProviderから値をとってみる [#ya00b876]
-action1#runの処理:
ISelection selection = viewer.getSelection();
System.out.println(selection.getClass().getName());
System.out.println(selection);
つまりviewerから値をとって表示するだけ。
-action2#runの処理:
ISelectionProvider selectionProvider = getSite()
.getSelectionProvider();
System.out.println(selectionProvider.getSelection().getC...
.getName());
System.out.println(selectionProvider.getSelection());
つまりビューのSelectionProviderから値をとって表示するだけ。
***結果 [#kc602909]
-action1#runの実行結果:
org.eclipse.jface.viewers.StructuredSelection
[viewer1:a]
-action2#runの実行結果:
org.eclipse.jface.viewers.StructuredSelection
[viewer2:a]
当たり前ですね。getSite().setSelectionProvider(viewer2)し...
**つぎにregisterContextMenuしてからやってみる [#xb98bbd7]
次に、
getSite().registerContextMenu(getSite().getId(), menuMgr...
してみる((律儀にgetSite().getId()書いてますが、getSite()....
**拡張ポイントのばあい [#wa286a51]
次に、拡張ポイントでポップアップを追加する。
</viewerContribution>
<viewerContribution id="nu.mine.kino.plugin.sample...
targetID="nu.mine.kino.plugin.samples.views.Provid...
<action ↑これはviewのIDではなく、 これ↓です。...
registerContextMenu(getSite().getId(),...
class="nu.mine.kino.plugin.samples.rcp.Action5"...
id="nu.mine.kino.plugin.samples.rcp.action5" la...
menubarPath="additions"/>
</viewerContribution>
IViewActionDelegateの実装クラスAction5を
public class Action5 implements IViewActionDelegate {
private ISelection selection;
private IViewPart view;
public void init(IViewPart view) {
this.view = view;
}
public void run(IAction action) {
System.out.println("selectionからとってみる");
System.out.println(selection.getClass().getName());
System.out.println(selection);
}
public void selectionChanged(IAction action, ISelectio...
this.selection = selection;
System.out.println("selectionからとってみる");
System.out.println(selection.getClass().getName());
System.out.println(selection);
}
}
とすると。。。
***結果1 [#r6d00f75]
まず getSite().registerContextMenu(getSite().getId(), men...
次に
getSite().registerContextMenu(getSite().getId(), menuMgr...
をしてからやってみると。。。
***結果2 [#k96784d5]
なんと
selectionからとってみる
org.eclipse.jface.viewers.StructuredSelection
[viewer1:b]
となった。おもしろいのはビュー側で
getSite().setSelectionProvider(viewer2);
として「このビューのSelectionProviderはviewer2だよ」と宣...
getSite().registerContextMenu(getSite().getId(), menuMgr...
の意味は''このコンテキストメニュー(menuMgr)をgetSite().ge...
ではつぎに
getSite().registerContextMenu(getSite().getId(), menuMgr...
とした場合はどうなるか。この例はviewer2をregisterContextM...
よってスニペットとしては
getSite().registerContextMenu(getSite().getId(), menuMgr...
よりも
getSite().registerContextMenu(getSite().getId(), menuMgr...
のように''menuMgrを追加したviewerを第3引数に設定する''の...
ところで第三引数にnullをセットすると、拡張ポイントに対す...
----
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: