Eclipse/プラグイン開発のTIPS集/org.eclipse.ui.ISelectionListener
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
#contents
** オブジェクトを選択したイベントに反応するリスナ [#h45d0...
org.eclipse.ui.ISelectionListener はユーザのオペレーショ...
public interface ISelectionListener {
public void selectionChanged(IWorkbenchPart part, ISel...
}
のみですね。メソッド引数のpartは「オブジェクトを選択した...
if (selection instanceof IStructuredSelection) {
IStructuredSelection sselection = (IStructuredSelectio...
Object firstElement = sselection.getFirstElement();
... 選択されたオブジェクトにキャストしていろいろ....
}
などの様にして選択されたオブジェクトを取得します。
***リスナをワークベンチに登録・削除する [#xfaf5454]
さて、このリスナのインスタンスはorg.eclipse.ui.ISelection...
public void addSelectionListener(ISelectionListener list...
public void removeSelectionListener(ISelectionListener l...
でワークベンチに登録・解除されます。ISelectionServiceって...
getSite().getPage().addSelectionListener(this);
getSite().getPage().removeSelectionListener(this);
などとすればよさそうです。典型的なのは、ViewPartの拡張ク...
public void init(IViewSite site) throws PartInitExceptio...
super.init(site);
site.getPage().addSelectionListener(this);
}
public void dispose() {
super.dispose();
getSite().getPage().removeSelectionListener(this);
}
とするんでしょうか。
また、これだと''「一回このビューが表示されるまでワークベ...
-HogeViewがあってこのビューはどっかで選択された、Fugaとい...
-HogeViewはパースペクティブAに配置されている
-あるパースペクティブBで、Fugaが選択された
という場合ですが、この時パースペクティブAに切り替えるとHo...
selectionChanged(null, getSite().getPage().getSelection(...
と直接メソッドをコールしました。。。ほかにいい解法あった...
*** オブジェクトが選択されるということって [#n8bd69e6]
さて、オブジェクトが選択されたときにそれをリスンする方法...
さて答えは[[プロパティビュー>Eclipse/プラグイン開発のTIPS...
getSite().setSelectionProvider(viewer);
でした。なんとなくモヤモヤと実行していましたがすっきりし...
:2006/5/12追記|調べたそばから、非常にわかりやすい説明がec...
**TIPS集 [#na2593fd]
***あるパートだけをListenする [#a518ed52]
public void addSelectionListener(String partId, ISelecti...
をメソッドは、partIdのビュー・エディタだけに反応するよう...
----
この記事は
#vote(おもしろかった[9],そうでもない[1])
-複数のViewerがあってどちらの情報もListenしたい場合はISel...
-自分で定義して、とりあえずできることまでは確認できました...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
#contents
** オブジェクトを選択したイベントに反応するリスナ [#h45d0...
org.eclipse.ui.ISelectionListener はユーザのオペレーショ...
public interface ISelectionListener {
public void selectionChanged(IWorkbenchPart part, ISel...
}
のみですね。メソッド引数のpartは「オブジェクトを選択した...
if (selection instanceof IStructuredSelection) {
IStructuredSelection sselection = (IStructuredSelectio...
Object firstElement = sselection.getFirstElement();
... 選択されたオブジェクトにキャストしていろいろ....
}
などの様にして選択されたオブジェクトを取得します。
***リスナをワークベンチに登録・削除する [#xfaf5454]
さて、このリスナのインスタンスはorg.eclipse.ui.ISelection...
public void addSelectionListener(ISelectionListener list...
public void removeSelectionListener(ISelectionListener l...
でワークベンチに登録・解除されます。ISelectionServiceって...
getSite().getPage().addSelectionListener(this);
getSite().getPage().removeSelectionListener(this);
などとすればよさそうです。典型的なのは、ViewPartの拡張ク...
public void init(IViewSite site) throws PartInitExceptio...
super.init(site);
site.getPage().addSelectionListener(this);
}
public void dispose() {
super.dispose();
getSite().getPage().removeSelectionListener(this);
}
とするんでしょうか。
また、これだと''「一回このビューが表示されるまでワークベ...
-HogeViewがあってこのビューはどっかで選択された、Fugaとい...
-HogeViewはパースペクティブAに配置されている
-あるパースペクティブBで、Fugaが選択された
という場合ですが、この時パースペクティブAに切り替えるとHo...
selectionChanged(null, getSite().getPage().getSelection(...
と直接メソッドをコールしました。。。ほかにいい解法あった...
*** オブジェクトが選択されるということって [#n8bd69e6]
さて、オブジェクトが選択されたときにそれをリスンする方法...
さて答えは[[プロパティビュー>Eclipse/プラグイン開発のTIPS...
getSite().setSelectionProvider(viewer);
でした。なんとなくモヤモヤと実行していましたがすっきりし...
:2006/5/12追記|調べたそばから、非常にわかりやすい説明がec...
**TIPS集 [#na2593fd]
***あるパートだけをListenする [#a518ed52]
public void addSelectionListener(String partId, ISelecti...
をメソッドは、partIdのビュー・エディタだけに反応するよう...
----
この記事は
#vote(おもしろかった[9],そうでもない[1])
-複数のViewerがあってどちらの情報もListenしたい場合はISel...
-自分で定義して、とりあえずできることまでは確認できました...
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: