使编辑器不可关闭

时间:2017-07-25 07:48:32

标签: eclipse-plugin eclipse-rcp e4

我在当前的E4世界中有一个标准的E3编辑器:

public class ProjectEditor extends EditorPart {
     // implement
}

像这样注册:

<extension point="org.eclipse.ui.editors">
   <editor
        class="com.qualitype.gpm.project.rcp.ProjectEditor"
        icon="icons/obj16/project.gif"
        id="com.qualitype.gpm.project.rcp.ProjectEditor"
        name="%view.project" >
   </editor>
</extension>

我希望该编辑器始终开放。但是扩展点中缺少类似于视图的参数。

此外,对于视图,这将起作用:

public class ProjectPerspective implements IPerspectiveFactory {

    public void createInitialLayout(IPageLayout layout) {
        final IViewLayout projectLayout = layout.getViewLayout(ProjectEditor.ID);
        projectLayout.setCloseable(false);
    }
}

但当然不适合编辑。由于编辑器和视图在技术上是相同的(工作台部件),因此应该是可能的。

如何阻止用户关闭我的编辑器?

2 个答案:

答案 0 :(得分:0)

编辑在概念上并不意味着可以关闭。它们在特定资源(或其他输入)上打开,并且意图在用户意愿关闭。

如果您需要不可关闭的部分,请使用视图。您可以让视图实现ISaveable以使其参与保存生命周期。

答案 1 :(得分:0)

您可以删除关闭的&#39; X&#39;在编辑器选项卡上清除MPart可关闭标志。您可以在编辑器的init方法中执行此操作:

@Override
public void init(IEditorSite site, IEditorInput editorInput) throws PartInitException
{
  super.init(site, editorInput);

  MPart part = getSite().getService(MPart.class);
  part.setCloseable(false);

&#39;文件&gt;关闭&#39;动作仍然可以关闭编辑器,因为它没有检查可关闭的标志,也没有不可关闭的编辑器的概念。