Java 从Eclipse RCP MPartStack中删除“分离”右键单击
有没有办法从MPartStack的上下文菜单中删除“分离右键单击”Java 从Eclipse RCP MPartStack中删除“分离”右键单击,java,eclipse-rcp,e4,Java,Eclipse Rcp,E4,有没有办法从MPartStack的上下文菜单中删除“分离右键单击” 通过添加标记,您可以告诉e4零件是不可拆卸的 节点 添加到Application.e4xmi中的零件或零件描述符标记。 也可以使用自定义堆栈渲染器完全替换选项卡菜单。您可以覆盖populateTabMenu方法: 使用渲染器工厂设置渲染器: public class MyRendererFactory extends WorkbenchRendererFactory { private MyStackRenderer my
通过添加标记,您可以告诉e4零件是不可拆卸的 节点 添加到Application.e4xmi中的零件或零件描述符标记。 也可以使用自定义堆栈渲染器完全替换选项卡菜单。您可以覆盖populateTabMenu方法: 使用渲染器工厂设置渲染器:
public class MyRendererFactory extends WorkbenchRendererFactory
{
private MyStackRenderer myStackRenderer;
@Override
public AbstractPartRenderer getRenderer(MUIElement uiElement, Object parent)
{
if (uiElement instanceof MPartStack) {
if (myStackRenderer == null) {
myStackRenderer = MyStackRenderer();
initRenderer(myStackRenderer);
}
return myStackRenderer;
}
return super.getRenderer(uiElement, parent);
}
}
您可以在产品定义中使用RenderFactoryURI向Eclipse介绍渲染器工厂
节点位于零件堆栈中的各个零件上,而不是零件堆栈上。堆栈渲染器使用当前零件计算菜单。我在这里测试了NoDetach,它确实有效。
public class MyRendererFactory extends WorkbenchRendererFactory
{
private MyStackRenderer myStackRenderer;
@Override
public AbstractPartRenderer getRenderer(MUIElement uiElement, Object parent)
{
if (uiElement instanceof MPartStack) {
if (myStackRenderer == null) {
myStackRenderer = MyStackRenderer();
initRenderer(myStackRenderer);
}
return myStackRenderer;
}
return super.getRenderer(uiElement, parent);
}
}