您可以使用自定义堆栈渲染器执行此操作。您覆盖populateTabMenu
方法:
public class MyStackRenderer extends StackRenderer
{
@Override
protected void populateTabMenu(Menu menu, MPart part)
{
// TODO your menu items
}
}
您使用渲染器工厂设置了渲染器:
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);
}
}
您使用产品定义中的rendererFactoryUri
向Eclipse介绍了渲染器工厂。
<extension
id="product"
point="org.eclipse.core.runtime.products">
<product
....
<property
name="rendererFactoryUri"
value="bundleclass://xxxxx.MyRendererFactory">
</property>