0
動的アプリケーションを作成したいのですが、他のプラグインがロードされたときににTreeItem
を追加します。例えばEclipse RCP、RAP、プラグインの別のビューからツリーを作成する方法
:
- 私はプラグインがあります
com.project.startup
をし、このプラグインは内部Tree
とView
を持っています。この - 私はプラグインを持っています:
com.project.populator
。私はcom.project.populator
は私が項目を追加する方法を知っているが、いつ、どこで、私は私のコードを記述する必要が私にはわからない
を開始したときcom.project.startup
からTree
を移入します。
は、これまでのところ私はorg.eclipse.ui.IStartup
を使用してこれをしたが、私はこのエラーを取得:
!MESSAGE Unable to execute early startup code for an extension
!STACK 0
java.lang.NullPointerException
at ro.project.populator.TreePopulator.earlyStartup(TreePopulator.java:18)
私のコードは次のようになります。
public class TreePopulator implements IStartup
{
@Override
public void earlyStartup()
{
ViewMenuOffers viewMenuOffers = (ViewMenuOffers) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(ViewMenuOffers.ID);
TreeViewer treeViewer = viewMenuOffers.getTreeViewer();
Tree tree = treeViewer.getTree();
TreeItem trtmItem = new TreeItem(tree, SWT.NONE);
trtmItem.setText("Item 1");
}
}
私はTreeViewerが初期化されていないと思います..しかし、それはですcreatePartControl
のViewMenuOffers
。
どうすればこの作品を作成できますか?他のプラグインonStartupから何かをView
に追加するにはどうすればよいですか?
初期起動プラグインを登録しています。ワークベンチが開いているか、アクティブなページがあるときに 'earlyStartup()'メソッドが呼び出されるという保証はありません。新しい「ジョブ」をスケジュールすることもできます。ワークベンチが開かれるとすぐに 'JobManager'が起動され、そこで作業を行うことができます。これにより、呼び出されたときにUIが実行されていることが保証されます。 –
私は同じことをやっていますが、 'job'を使っていますが、今私はこのエラーを受け取ります:'内部のエラーが発生しました: "訪問:メニューを読み込む"。 リクエストサービスのライフサイクルの外でコンテキストを利用できません。 ' – Alex
RAP FAQ - > http://wiki.eclipse.org/RAP/FAQ#No_context_available_outside_of_the_request_service_lifecycle –