在RCP应用程序中,我想创建一个Common Navigator Framework视图,从本地文件系统上的资源开始。
我在一个包含 org.eclipse.ui.ide 插件的项目中完成了这项工作。但是,这会创建一个过于复杂且不适合此应用程序的UI。 (例如,它添加了大约20个首选项面板,其中一些与构建和版本控制相关联。)
所以现在我正在尝试在没有〜.ide插件的情况下执行它 - 并且没有依赖于它的 org.eclipse.ui.navigator.resources 插件。< / p>
在RCP应用程序中,我设法使用下面的代码在一个插件中创建一个新的工作区项目(我认为),其中包含如下所示的~navigator.viewer扩展。但CNF视图中没有任何内容。
问题:
plugin.xml摘录
<extension
point="org.eclipse.ui.navigator.viewer">
<viewerActionBinding
viewerId="com.mycompany.app.gen.workspace">
<includes>
<actionExtension pattern="org.eclipse.ui.navigator.resources.*" />
</includes>
</viewerActionBinding>
<viewerContentBinding
viewerId="com.dnastar.app.gen.workspace">
<includes>
<contentExtension pattern="org.eclipse.ui.navigator.resourceContent" />
<contentExtension pattern="org.eclipse.ui.navigator.resources.filters.*"/>
<contentExtension pattern="org.eclipse.ui.navigator.resources.linkHelper"/>
<contentExtension pattern="org.eclipse.ui.navigator.resources.workingSets"/>
</includes>
</viewerContentBinding>
</extension>
用于创建新项目的代码(为完整性而包含):
Path path = new Path( sPath );
File filePath = new File( sPath );
String fileBaseName = filePath.getName();
String projectName = fileBaseName; // For now
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IProjectDescription projDescr = workspace.newProjectDescription( projectName );
projDescr.setLocation( path );
IWorkspaceRoot root = workspace.getRoot();
IProject project = root.getProject( projectName );
try {
project.create( projDescr, null );
if ( ! project.isOpen() ) {
project.open( null );
}
} catch (CoreException e) {
MessageDialog.openError( Display.getCurrent().getActiveShell(),
"New Project Error", "Could not create new project." + "\n[" + e + "]");
}
答案 0 :(得分:2)
您需要扩展它,然后覆盖getInitialInput()方法,而不是使用CommonNavigator类。返回IWorkspaceRoot