В приложении RCP я хотел бы создать представление Common Navigator Framework, начиная только с ресурсов локальной файловой системы.
Я сделал это в одном проекте, который включает org.eclipse.ui.ide плагин.Однако это создает пользовательский интерфейс, который является слишком сложным и неприемлемым для данного приложения.(Например, он добавляет около 20 панелей настроек, некоторые из которых связаны со сборками и контролем версий.)
Так что теперь я пытаюсь сделать это без плагина ~ .ide - и без org.eclipse.ui.navigator.resources подключаемый модуль, который зависит от него.
В приложении RCP мне удалось создать новый проект рабочей области (я думаю) с кодом ниже, в плагине с расширениями ~ navigator.viewer, показанными ниже.Но в представлении CNF ничего не появляется.
Вопросы:
- Поскольку я исключаю org.eclipse.ui.navigator.resources Плагин, мне нужно определить свой собственный поставщик контента?
- Является ли класс ResourceExtensionContentProvider в org.eclipse.ui.navigator.resources плагином, используемым для реализации контентапривязка org.eclipse.ui.navigator.resourceContent ?
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 + "]");
}