2009-06-24 14 views
1

私は、次のコード行を経由して、クラスBで定義されたビューが表示されますクラスAが含まれているプラ​​グインを持っている:私は(createPartControlに行うために必要なものEclipseのプラグイン/ビュー質問

 
(VideoLogView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("Videolog.VideoLogView"); 

)メソッド(クラスBオブジェクト)は、クラスAオブジェクト内のメソッドにアクセスしています。

これはどのようにすることができますか?

ありがとうございました。

+0

@Dr。ファウスト:うまくいきました。このポストにあなたのコードの関連抽出を詳述する答えを投稿できますか?あなたは公式の答えとしてそれを選択することもできます(しかし、関与している代理店はありません) – VonC

答えて

2

「あなたの意見に引数を渡す方法」の古典的な問題に直面しているように見えますか?
This thread最高のそれを示しています

私は私のRCPプロジェクトのbegginingで同じ問題に直面していました。表示されたモデルとしてビューに引数を渡す方法がないという事実について私は奇妙になりました。

なぜですか? (強調鉱山)ので:

あなたは開かれ、プラグイン可能なプラットフォームです。 あなたは、既存の開発には、他の人はあなたのものに貢献できるはずです。

したがって、ビューに引数を渡すことはありません。これは、すべてを非開かれたデザインにロックします。
代わりに、ビューはプラットフォームに尋ねるか(またはプラットフォームを聞く)、管理する情報を決定します。
他のビュー(まだ存在していない他のプラグインから)は、同じイベントで同じ情報を管理することもできます。

ここで行うべきことは、ワークベンチに現在の選択を依頼することです。ビューで管理したいオブジェクトが現在選択されているので、ダブルクリックアクションまたはシンプルな選択でビューが開いていると思います。
これは、あなたのビューからワークベンチの選択を取得できる方法である:「これは」ViewPartある

ISelection s = this.getSite().getWorkbenchWindow().getSelectionService().getSelection(); 

次に、最初のビュー(DoubleClickのような特定のイベントからのビュー作成を開始するビュー)を選択プロバイダーにしなければなりません。 A JFaceビューアは選択プロバイダであるため、jfaceを使用している場合はそれを使用できます。また、カスタムSWTコントロールを使用している場合はISelectionProviderインターフェイスを実装できます(これは私のケースでした)。


記事 "Eclipse Workbench: Using the Selection Service" もあなたにいくつかのポインタを与えることができます。

alt text

+0

ありがとう。私のビューにパラメータを渡すことはまさに問題です。私はすぐに記事を読んで始めます。 –

+0

VonC - 「選択サービスの使用」の記事を読んでいます。これは私が探しているものではないようです。ビュー(クラスB)が作成され、createPartControlメソッドが呼び出されると、クラスAのメソッドにアクセスする必要があります。あなたのビューが作成されて表示されると、Selection Serviceが機能するようです。他のアイデア? –

+0

上記のコメントは無視してください。私は読んだ後にそれを働かせました: this

関連する問題