2017-02-21 24 views
0

私はビュー数でRCPアプリケーションを持っています。 「ようこそ」ビューと他のビューがあります。 Iビューを「ようこそ」を選択するたびに、他のビューは、コードを使用して閉じられRCPアプリケーションでビューを閉じるにはどうすればいいですか?

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().hideView(viewID); 

(注:他のプラグインの依存性は、プラグインの「ようこそ」ビューが存在するに添加される。)

同様に、coolbarまたはShow viewダイアログから他のビューを選択すると、「Welcome」ビューを閉じたいと考えています。問題は、依存関係を追加して上記と同じコードを使用すると、アプリケーションに循環的な依存関係が発生し、エラーがスローされることです。サイクリック依存関係を起こさずに、どうすればいいですか?

+0

。あなたが得ている正確なメッセージは何ですか?あなたはこれをどこで使ってみようとしていますか? –

+0

@ greg-449:createPartControl()メソッドで使用しています。 「Welcome」ビューが存在するプラグインで、他のビューの依存関係を追加しています。今、「Welcome」ビューを隠すために他のプラグインに「Welcome」ビュープラグインの依存関係を追加すると、それは循環依存を引き起こしています。 –

+0

閉じるしようとしているビューを含むプラグインに依存関係を追加する必要はありません。ビューIDのみが必要です。巡回依存関係とは、お互いに依存する2つのプラグインがあることを意味します。これは、ビルダーが最初にビルドするものを見つけることができないという意味で許可されていません。 –

答えて

0

これは、ビューを閉じるための正しいコードです。

あなたは、プラグインビューを閉じるをしているプラ​​グインの依存関係を含むを作成する必要はありません。ビューIDのみが必要です。

循環依存を使用すると、きれいにプラグインを構築する方法がないので、BとBに応じて、Aに応じて、これが許可されていないとの2つのプラグインAとBがあることを意味します。サイクルを削除するには、依存関係を変更する必要があります。正しいコードであり、それ自体が、循環依存を作成しない

関連する問題