0

CommonNavigator を拡張するビューを持っています。

CustomProjectCreation ウィザードを使用してカスタム プロジェクトを作成しています。

以下のように更新するだけで機能しますが、新しいプロジェクトが作成されるたびにすべてのプロジェクトが更新されますが、これは避けるべきです。

CommonNavigator resNav;
try {
resNav = (CommonNavigator)activePage.findView("view id");
resNav.getCommonViewer().refresh();
//resNav.getCommonViewer().refresh(newProject); //doesn't work
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

ContentProvider looks as below
if(parentElement instanceof IWorkspaceRoot){
List customProjects = getCustomProjects();
return customProjects.toArray(new CustomProject[customProjects.size()]);
}

デバッグでは、getCommonViewer().refresh() がコンテンツ プロバイダの getChildren() メソッドを呼び出します。getCommonViewer().refresh(newProject) は ContentProvider を呼び出しません

expandtolevel と setExpandedState が機能していません...

特に新しく作成されたプロジェクトを更新するにはどうすればよいですか? 作成したプロジェクトを展開するには?

よろしく、 アラヴィンド

4

1 に答える 1

1

問題は共通のナビゲーターにありますか? Eclipse 以外のリソース アクセス メソッド (IResource、IFile、および関連コードではなく、通常の Java ファイル IO) を使用して新しいプロジェクト内にアーティファクトを作成した場合、モデルは新しいコンテンツを認識しません。この場合、yourProjectResource.refreshLocal()最初に必要になります。

于 2012-07-08T16:23:18.230 に答える