Eclipse plugin 使编辑器不可关闭

Eclipse plugin 使编辑器不可关闭,eclipse-plugin,eclipse-rcp,e4,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/pr

在当前的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>
但当然不是编辑。由于编辑器和视图在技术上是相同的(工作台部分),所以应该是可能的


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

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


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

您可以通过清除
MPart
closeable标志删除编辑器选项卡上的close“X”。您可以在编辑器的
init
方法中执行此操作:

@覆盖
public void init(IEditorSite站点,IEditorInput editorInput)引发PartInItemException
{
super.init(站点,编辑输入);
MPart part=getSite().getService(MPart.class);
部分。可设置关闭(假);

但是由于“文件>关闭”操作不检查可关闭标志,也没有不可关闭编辑器的概念,因此仍然可以关闭编辑器。

我需要的不是保存,而是将视图和编辑器堆叠在同一堆栈中。这就是为什么此部分是一个编辑器。为什么要混合编辑器和视图编辑器和视图的pts是根本不同的,而且它们不能叠加在一起,至少在e3中不能。你能提供一些上下文吗?E4将视图和编辑器放在一起,所以它们不能有那么大的不同。而且客户也不理解这种差异(这就是我需要叠加编辑器和视图的原因)。仅仅因为E4做了一些事情并不一定意味着这是一个好主意;-)如果你正在开发一个RCP应用程序,你可以隐藏/禁用编辑器,并重新定义一个“视图区域”。如果你正在开发IDE插件,你应该试着坚持编辑器和视图之间的区别。同样,很难给用户提供建议没有更多上下文。另请参见:以及如何在e3 ui模型上执行相同的操作?@Raghu此答案适用于e3编辑器(但仅适用于使用Eclipse 4.x版本)。我尝试了此方法,但不起作用。我使用的是开普勒。这是我的代码对象mPart=getSite().getService(mPart.class);if(mPart instanceof mPart){mPart part=(mPart)mPart;part.setCloseable(false);}它执行得很好,但我仍然可以看到编辑器上的close按钮。您不能在Comments上询问您遇到的问题。请提出新问题。
public class ProjectPerspective implements IPerspectiveFactory {

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