打开表单编辑器的单个实例

时间:2018-01-16 16:52:34

标签: eclipse-plugin eclipse-rcp

我有表单编辑器,在编辑器输入的每次双击事件中,我都需要避免打开表单编辑器的重复实例。我按setPartName设置了编辑器名称 我需要检查该名称并且只打开一个实例

1 个答案:

答案 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()之前提前拒绝它,   因为那种方法可能很昂贵。