2017-07-25 13 views
0

我在目前的世界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); 
    } 
} 

不过,当然不是为编辑。由于编辑器和视图在技术上都是相同的东西(工作台部件),所以它应该是可能的。

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

回答

0

您可以通过清除MPart可关闭标志来删除编辑器选项卡上的关闭'X'。你可以在编辑器中的init方法做到这一点:

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

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

“文件>关闭”的行动仍然可以关闭编辑器,因为它不检查关闭的标志,没有联合国的概念 - 可编辑的编辑。

+0

如何在e3 ui模型上做同样的事情? – Raghu

+0

@Raghu这个答案适用于e3编辑器(但仅限于使用Eclipse 4.x版本时)。 –

+0

我试过这个,但它不工作。我正在使用开普勒。这里是我的代码Object mPart = getSite()。getService(MPart.class);如果(MPart的实例实例)MPart part =(MPart)mPart; part.setCloseable(false); } 它执行得很好,但我仍然可以看到编辑器上的关闭按钮 – Raghu

0

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

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

+0

这不是我需要的保存,而是在同一个堆栈中堆叠视图和编辑器。这就是为什么这部分是编辑。 –

+0

为什么你想混合编辑和意见?编辑和观点的概念有着根本的不同,它们不能叠加在一起,至少在e3中是如此。你能提供一些背景吗? –

+0

E4将视图和编辑人员集中在一起,因此他们不会有所不同。而且客户也不了解其中的差异(这也是我需要堆叠编辑器和视图的原因)。 –