我有表单编辑器,在编辑器输入的每次双击事件中,我都需要避免打开表单编辑器的重复实例。我按setPartName
设置了编辑器名称
我需要检查该名称并且只打开一个实例
答案 0 :(得分:0)
您可以在编辑器的matchingStrategy
定义中指定org.eclipse.ui.editors
类,以便控制使用哪个编辑器打开文件,
例如,这是PDE plugin.xml / MANIFEST.MF / build.properties编辑器的定义:
<extension
point="org.eclipse.ui.editors">
<editor
default="true"
name="%editors.pluginManifest.name"
icon="$nl$/icons/obj16/plugin_mf_obj.png"
class="org.eclipse.pde.internal.ui.editor.plugin.ManifestEditor"
contributorClass="org.eclipse.pde.internal.ui.editor.plugin.ManifestEditorContributor"
matchingStrategy="org.eclipse.pde.internal.ui.editor.plugin.ManifestEditorMatchingStrategy"
id="org.eclipse.pde.ui.manifestEditor">
<contentTypeBinding contentTypeId="org.eclipse.pde.pluginManifest"/>
<contentTypeBinding contentTypeId="org.eclipse.pde.fragmentManifest"/>
<contentTypeBinding contentTypeId="org.eclipse.pde.bundleManifest"/>
</editor>
matchStrategy class must implement
IEditorMatchingStrategy`有一个方法:
public boolean matches(IEditorReference editorRef, IEditorInput input)
返回由给定编辑器引用表示的编辑器 匹配给定的编辑器输入。
实现应首先检查给定的编辑器输入,然后尝试 在调用IEditorReference.getEditorInput()之前提前拒绝它, 因为那种方法可能很昂贵。