2017-11-08 6 views
0

私はGet TreeViewer in RCP from another Pluginというポストに続きました。PlatformUI.getWorkbench()はIllegalStateExceptionをスローします:ハンドラで実行されたときにまだWorkbenchが作成されていません

@PostConstruct 
public void createComposite(Composite parent) { 
    IWorkbench wb = PlatformUI.getWorkbench(); 
} 

私は知らない。私は、部分的にこのコードを実行すると

@Execute 
public void execute() { 
    IWorkbench wb = PlatformUI.getWorkbench(); 
} 

が、例外はありません:私はハンドラにこのコードを追加すると、私は例外を「java.lang.IllegalStateException: Workbench has not been created yet.」ですなぜ。手伝って頂けますか?ありがとう!

答えて

1

純粋なe4アプリケーションでは、PlatformUI(およびIWorkbench,IWorkbenchWindow,IWorkbenchPage)はまったく使用できません。 Eclipseのさまざまな場所で説明されている多くのテクニックは、3.x互換モードRCPでしか動作しません。

あなたの部分の呼び出しは、例外をスローする可能性が最も高いですが、ログに記録されている(または破棄されている)だけです。

e4アプリケーションではのfindPartメソッドを使用して別の部分を検索します。

関連する問題