0

ここに示す例に従って、ContextMenuをTreeViewerに追加しようとしています: http://www.vogella.com/articles/EclipseCommands/article.html#contextmenuただし、行でNPEを取得します

getSite().registerContextMenu(menuManager, viewer);

getSite() は、IWorkbenchPartSite ではなく null を返します。IWorkbenchPartSite が null である理由、または初期化する方法を説明できる人はいますか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

getSite()設定ページにはメソッドがありません。したがって、あなたはエディターまたはビューにいると思います。

initサイトは、メソッドを使用してプラットフォームによって注入されます。呼び出すときgetSite()は、プラットフォームがメソッドを呼び出した後に行う必要がありますinit

コンテキスト メニューの登録に適した場所はcreatePartControlメソッドです。

于 2012-10-15T13:11:10.640 に答える