尽量避免eclipse编辑器的多个实例打开同一个文件

时间:2012-05-21 19:07:52

标签: eclipse eclipse-rcp rcp

我使用eclipse扩展点“org.eclipse.ui.editors”注册了一个自定义编辑器,如下所示。

<extension
     point="org.eclipse.ui.editors">
     <editor 
            class="com.xxx.designer.scxml.ui.ScxmlDiagramEditor" 
            id="com.xxx.designer.scxml.ui.ScxmlDiagramEditor"
            extensions="scdiagram"
            name="SCXML Editor">
</editor>

它工作正常,这个编辑器与.scdiagram文件相关联。但是,每次单击同一个.scdiagram文件时,它都会为我打开一个新实例,而不是突出显示打开的文件。对此有何想法?

谢谢,

2 个答案:

答案 0 :(得分:3)

您需要做的就是让IEditorInput对于相同的文件返回true。您可以通过比较文件的规范名称来实现此目的。不要忘记也覆盖hashCode()方法。 What issues should be considered when overriding equals and hashCode in Java?

有关使用编辑器的更多详细信息,请参阅Lars Vogel的优秀教程Eclipse Editor Plugin Tutorial

答案 1 :(得分:2)

以下是我的问题最终得到解决的方法。它与Graphiti有关,解决方案也与框架有关。

由于我将Graphiti的图编辑器子类化,我需要做的就是将org.eclipse.graphiti.ui.editor.DiagramEditorMatchingStrategy设置为plugin.xml中编辑器的匹配策略。