8 个解决方案
#1
0.专业说法叫编辑器,不叫视图。编辑器和视图有严格的区别
1. MultipageEditor
由于它又用了Forms,所以实际继承的是FormEditor,FormEditor继承自MuiltiPageEditor
2. 多个文件其实是自己实现的,双击文件打开传入编辑器的就只有一个,由于plugin.xml和MANIFEST.MF文件是固定的,所以编辑器可以通过其中一个文件检查另外一个是否存在。
1. MultipageEditor
由于它又用了Forms,所以实际继承的是FormEditor,FormEditor继承自MuiltiPageEditor
2. 多个文件其实是自己实现的,双击文件打开传入编辑器的就只有一个,由于plugin.xml和MANIFEST.MF文件是固定的,所以编辑器可以通过其中一个文件检查另外一个是否存在。
#2
org.eclipse.ui.editors里面是不是不支持定义多个editor的
<extension point="org.eclipse.ui.editors">
<?gmfgen generated="true"?>
<editor
id="com.huawei.hacontrol.hostmanager.HostManagerEditorID"
name="主机管理"
icon="icons/MindmapDiagramFile.gif"
extensions="mindmap_diagram"
default="true"
class="com.huawei.hacontrol.hostmanager.HostManageEditor"
matchingStrategy="com.huawei.hacontrol.part.MindmapMatchingStrategy"
contributorClass="com.huawei.hacontrol.part.MindmapDiagramActionBarContributor">
</editor>
<editor
id="com.huawei.hacontrol.part.MindmapDiagramEditorID"
name="HA监控"
icon="icons/MindmapDiagramFile.gif"
extensions="mindmap_diagram"
default="true"
class="com.huawei.hacontrol.part.MindmapDiagramEditor"
matchingStrategy="com.huawei.hacontrol.part.MindmapMatchingStrategy"
contributorClass="com.huawei.hacontrol.part.MindmapDiagramActionBarContributor">
</editor>
</extension>
<extension point="org.eclipse.ui.editors">
<?gmfgen generated="true"?>
<editor
id="com.huawei.hacontrol.hostmanager.HostManagerEditorID"
name="主机管理"
icon="icons/MindmapDiagramFile.gif"
extensions="mindmap_diagram"
default="true"
class="com.huawei.hacontrol.hostmanager.HostManageEditor"
matchingStrategy="com.huawei.hacontrol.part.MindmapMatchingStrategy"
contributorClass="com.huawei.hacontrol.part.MindmapDiagramActionBarContributor">
</editor>
<editor
id="com.huawei.hacontrol.part.MindmapDiagramEditorID"
name="HA监控"
icon="icons/MindmapDiagramFile.gif"
extensions="mindmap_diagram"
default="true"
class="com.huawei.hacontrol.part.MindmapDiagramEditor"
matchingStrategy="com.huawei.hacontrol.part.MindmapMatchingStrategy"
contributorClass="com.huawei.hacontrol.part.MindmapDiagramActionBarContributor">
</editor>
</extension>
#3
支持的,但是你的编辑器
extensions="mindmap_diagram" default="true"
每个都一样的话,就同时只能有一个是作为.mindmap_diagram文件的默认编辑器,其他的都只能通过右键-->Open With来打开
建议注册不同的扩展名
extensions="mindmap_diagram" default="true"
每个都一样的话,就同时只能有一个是作为.mindmap_diagram文件的默认编辑器,其他的都只能通过右键-->Open With来打开
建议注册不同的扩展名
#4
谢谢,这个问题已经搞定了,是ID写错了。
还有一个问题咨询一下。我的eclipse里面的create new visual classes点了后,为什么SWT、JFace、RCP、Form、Swing的下一层全部是灰的呢?不能使用,是不是什么插件没有安装。
还有一个问题咨询一下。我的eclipse里面的create new visual classes点了后,为什么SWT、JFace、RCP、Form、Swing的下一层全部是灰的呢?不能使用,是不是什么插件没有安装。
#5
灰的?没遇到过这种情况。
应该不是插件没装的问题,插件没装的话,根本就不会有这个向导
应该不是插件没装的问题,插件没装的话,根本就不会有这个向导
#6
我现在要操作同一个文件,但是需要在不同view来显示。
IEditorPart EditorPart = page.openEditor(new URIEditorInput(fileURI), editorDescriptor.getId(), true, 1);
最后一个参数用1,问题是只能出一个视图,如果用0,对应的调用不到所有的MindmapDocumentProvider的createElementInfo方法,这里的info不等于null了。
请大狭指导一下方向,应该如何处理?不胜感激。
public final void connect(Object element) throws CoreException {
ElementInfo info= (ElementInfo) fElementInfoMap.get(element);
if (info == null) {
info= createElementInfo(element);
if (info == null)
info= new ElementInfo(null);
info.fElement= element;
addUnchangedElementListeners(element, info);
fElementInfoMap.put(element, info);
if (fElementInfoMap.size() == 1)
connected();
}
++ info.fCount;
}
IEditorPart EditorPart = page.openEditor(new URIEditorInput(fileURI), editorDescriptor.getId(), true, 1);
最后一个参数用1,问题是只能出一个视图,如果用0,对应的调用不到所有的MindmapDocumentProvider的createElementInfo方法,这里的info不等于null了。
请大狭指导一下方向,应该如何处理?不胜感激。
public final void connect(Object element) throws CoreException {
ElementInfo info= (ElementInfo) fElementInfoMap.get(element);
if (info == null) {
info= createElementInfo(element);
if (info == null)
info= new ElementInfo(null);
info.fElement= element;
addUnchangedElementListeners(element, info);
fElementInfoMap.put(element, info);
if (fElementInfoMap.size() == 1)
connected();
}
++ info.fCount;
}
#7
MindmapDocumentProvider是GMF样例生成的,com.huawei.hacontrol.part.MindmapDiagramEditor类也是GMF样例,类com.huawei.hacontrol.hostmanager.HostManageEditor是我自己的。
#8
但是需要在不同view来显示。
说错了。需要在不同的edit中显示。一个edit(MindmapDiagramEditor)继承于DiagramDocumentEditor,一个edit(HostManageEditor)继承于FormEditor。这两个edit共同基于同一个文件。在edit左边是树,双击不同的节点显示不同的edit。
说错了。需要在不同的edit中显示。一个edit(MindmapDiagramEditor)继承于DiagramDocumentEditor,一个edit(HostManageEditor)继承于FormEditor。这两个edit共同基于同一个文件。在edit左边是树,双击不同的节点显示不同的edit。
#1
0.专业说法叫编辑器,不叫视图。编辑器和视图有严格的区别
1. MultipageEditor
由于它又用了Forms,所以实际继承的是FormEditor,FormEditor继承自MuiltiPageEditor
2. 多个文件其实是自己实现的,双击文件打开传入编辑器的就只有一个,由于plugin.xml和MANIFEST.MF文件是固定的,所以编辑器可以通过其中一个文件检查另外一个是否存在。
1. MultipageEditor
由于它又用了Forms,所以实际继承的是FormEditor,FormEditor继承自MuiltiPageEditor
2. 多个文件其实是自己实现的,双击文件打开传入编辑器的就只有一个,由于plugin.xml和MANIFEST.MF文件是固定的,所以编辑器可以通过其中一个文件检查另外一个是否存在。
#2
org.eclipse.ui.editors里面是不是不支持定义多个editor的
<extension point="org.eclipse.ui.editors">
<?gmfgen generated="true"?>
<editor
id="com.huawei.hacontrol.hostmanager.HostManagerEditorID"
name="主机管理"
icon="icons/MindmapDiagramFile.gif"
extensions="mindmap_diagram"
default="true"
class="com.huawei.hacontrol.hostmanager.HostManageEditor"
matchingStrategy="com.huawei.hacontrol.part.MindmapMatchingStrategy"
contributorClass="com.huawei.hacontrol.part.MindmapDiagramActionBarContributor">
</editor>
<editor
id="com.huawei.hacontrol.part.MindmapDiagramEditorID"
name="HA监控"
icon="icons/MindmapDiagramFile.gif"
extensions="mindmap_diagram"
default="true"
class="com.huawei.hacontrol.part.MindmapDiagramEditor"
matchingStrategy="com.huawei.hacontrol.part.MindmapMatchingStrategy"
contributorClass="com.huawei.hacontrol.part.MindmapDiagramActionBarContributor">
</editor>
</extension>
<extension point="org.eclipse.ui.editors">
<?gmfgen generated="true"?>
<editor
id="com.huawei.hacontrol.hostmanager.HostManagerEditorID"
name="主机管理"
icon="icons/MindmapDiagramFile.gif"
extensions="mindmap_diagram"
default="true"
class="com.huawei.hacontrol.hostmanager.HostManageEditor"
matchingStrategy="com.huawei.hacontrol.part.MindmapMatchingStrategy"
contributorClass="com.huawei.hacontrol.part.MindmapDiagramActionBarContributor">
</editor>
<editor
id="com.huawei.hacontrol.part.MindmapDiagramEditorID"
name="HA监控"
icon="icons/MindmapDiagramFile.gif"
extensions="mindmap_diagram"
default="true"
class="com.huawei.hacontrol.part.MindmapDiagramEditor"
matchingStrategy="com.huawei.hacontrol.part.MindmapMatchingStrategy"
contributorClass="com.huawei.hacontrol.part.MindmapDiagramActionBarContributor">
</editor>
</extension>
#3
支持的,但是你的编辑器
extensions="mindmap_diagram" default="true"
每个都一样的话,就同时只能有一个是作为.mindmap_diagram文件的默认编辑器,其他的都只能通过右键-->Open With来打开
建议注册不同的扩展名
extensions="mindmap_diagram" default="true"
每个都一样的话,就同时只能有一个是作为.mindmap_diagram文件的默认编辑器,其他的都只能通过右键-->Open With来打开
建议注册不同的扩展名
#4
谢谢,这个问题已经搞定了,是ID写错了。
还有一个问题咨询一下。我的eclipse里面的create new visual classes点了后,为什么SWT、JFace、RCP、Form、Swing的下一层全部是灰的呢?不能使用,是不是什么插件没有安装。
还有一个问题咨询一下。我的eclipse里面的create new visual classes点了后,为什么SWT、JFace、RCP、Form、Swing的下一层全部是灰的呢?不能使用,是不是什么插件没有安装。
#5
灰的?没遇到过这种情况。
应该不是插件没装的问题,插件没装的话,根本就不会有这个向导
应该不是插件没装的问题,插件没装的话,根本就不会有这个向导
#6
我现在要操作同一个文件,但是需要在不同view来显示。
IEditorPart EditorPart = page.openEditor(new URIEditorInput(fileURI), editorDescriptor.getId(), true, 1);
最后一个参数用1,问题是只能出一个视图,如果用0,对应的调用不到所有的MindmapDocumentProvider的createElementInfo方法,这里的info不等于null了。
请大狭指导一下方向,应该如何处理?不胜感激。
public final void connect(Object element) throws CoreException {
ElementInfo info= (ElementInfo) fElementInfoMap.get(element);
if (info == null) {
info= createElementInfo(element);
if (info == null)
info= new ElementInfo(null);
info.fElement= element;
addUnchangedElementListeners(element, info);
fElementInfoMap.put(element, info);
if (fElementInfoMap.size() == 1)
connected();
}
++ info.fCount;
}
IEditorPart EditorPart = page.openEditor(new URIEditorInput(fileURI), editorDescriptor.getId(), true, 1);
最后一个参数用1,问题是只能出一个视图,如果用0,对应的调用不到所有的MindmapDocumentProvider的createElementInfo方法,这里的info不等于null了。
请大狭指导一下方向,应该如何处理?不胜感激。
public final void connect(Object element) throws CoreException {
ElementInfo info= (ElementInfo) fElementInfoMap.get(element);
if (info == null) {
info= createElementInfo(element);
if (info == null)
info= new ElementInfo(null);
info.fElement= element;
addUnchangedElementListeners(element, info);
fElementInfoMap.put(element, info);
if (fElementInfoMap.size() == 1)
connected();
}
++ info.fCount;
}
#7
MindmapDocumentProvider是GMF样例生成的,com.huawei.hacontrol.part.MindmapDiagramEditor类也是GMF样例,类com.huawei.hacontrol.hostmanager.HostManageEditor是我自己的。
#8
但是需要在不同view来显示。
说错了。需要在不同的edit中显示。一个edit(MindmapDiagramEditor)继承于DiagramDocumentEditor,一个edit(HostManageEditor)继承于FormEditor。这两个edit共同基于同一个文件。在edit左边是树,双击不同的节点显示不同的edit。
说错了。需要在不同的edit中显示。一个edit(MindmapDiagramEditor)继承于DiagramDocumentEditor,一个edit(HostManageEditor)继承于FormEditor。这两个edit共同基于同一个文件。在edit左边是树,双击不同的节点显示不同的edit。