如何在Eclipse RCP中使部件选项卡处于非活动状态(禁用)?

时间:2015-12-07 10:09:48

标签: java eclipse-rcp desktop-application e4

我有partStack,标签中有很多部分。我想知道当我不需要时,如何激活标签,并在我需要时激活。

不活跃我指的是可见的标签,但我无法点击它,就像禁用功能一样(例如上面的文字是灰色而不是黑色)。

我使用e4 RCP(使用Application.e4xmi)。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

零件堆栈中零件选择的处理由零件堆栈渲染器org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer处理,它基本上使用CTabFolder

您可以使用渲染器工厂覆盖堆栈渲染器see here

您可以扩展现有的StackRenderer类并覆盖方法以更改其行为。在这种情况下可能是hookControllerLogic方法。但是你必须仔细研究这个来源,看看需要做些什么。

答案 1 :(得分:0)

您可以尝试使用 EPartService 来操作零件,但我认为有效/无效部分只是意味着可见。

或者您可以手动循环并禁用所有swt控件

答案 2 :(得分:0)

使用渲染器工厂覆盖堆栈渲染器。 扩展现有的StackRenderer类,并使用空实现覆盖hookControllerLogic()或activate()方法。

实施例 -

public class MyE4Part extends ContributedPartRenderer {

/*
 * Don't activate the Part on part selection. part should not be gain the focus on any
 * selection on part .
 */

@Override
public void hookControllerLogic( MUIElement me )
{
    //Don't do anything.
    //super.hookControllerLogic( me );
}

}