// 下階層用テンプレート #topicpath ---- org.eclipse.ui.IViewPart はパースペクティブ内のひとつのビュー(コンソールとか、パッケージエクスプローラとかの)を表すインターフェースです。このインターフェースを実装することによって、自作のビューを作成することが出来ます。 #contents ***拡張ポイント org.eclipse.ui.views ***plugin.xmlのサンプル <extension point="org.eclipse.ui.views"> <category name="サンプルMyView" <- viewが属するカテゴリ名 id="com.samples.myview"> <- カテゴリのID </category> <view name="シンプルView" <- viewのバーのタイトル category="com.samples.myview" <- viewが属するカテゴリID class="com.samples.myview.SimpleView" <- viewを実装するクラス名 id="com.samples.myview.simpleview"> <- viewのID </view> </extension> ***ポイント plugin.xmlを開いているときのプロパティビューより、classを選択すると対応するクラス(ここではcom.samples.myview.SimpleView)のスケルトンをウィザードが作ってくれます。 ビューを画面に描画するとき((ウィンドウ >> ビューでこのビューを選ぶ時))createPartControlが呼ばれるので、このメソッド内でウィジェットを配置していきます。 **TIPS ***選択されたときに起動するメソッドsetFocus 自分が選択されたときに、ビュー内を更新したいときなどに使用します。 public void setFocus() { ウィジェットの更新処理 } など ***ISelectionListenerを実装する ビューは選択しているオブジェクトの情報を表示することが多いので、選択しているものが変わったときにウィジェットを更新する、というアルゴリズムにしたいことが多いと思います。その場合はISelectionListenerを実装します。 public void selectionChanged(IWorkbenchPart part,ISelection selection){ ウィジェットの更新処理 } この場合、自分(this)を IWorkbenchPageインターフェースにattachする必要がありますが、createPartControlメソッド内で getViewSite().getPage().addSelectionListener(this); とすればよいでしょう。 このリスナですが、呼ばれるタイミングは、 -パッケージエクスプローラ内でなんかを選択した -テキストエディタ内でドラッグした などみたいですが、 -テキストエディタ内で文字列を入力とかした場合 は呼ばれないんですね。ようわからんです。 ---- この記事は #vote(おもしろかった,そうでもない) #comment #topicpath SIZE(10){現在のアクセス:&counter;}