Java 如何在Eclipse RCP中使部件选项卡处于非活动状态(禁用)?
我有零件堆栈,选项卡中有很多零件。我想知道如何在不需要选项卡时使其处于非活动状态,在需要时使其处于活动状态 我所说的“非活动”是指选项卡,它是可见的,但我不能单击它,它类似于禁用功能(例如,它上的文本是灰色而不是黑色) 我使用E4RCP(与Application.e4xmi一起使用)Java 如何在Eclipse RCP中使部件选项卡处于非活动状态(禁用)?,java,eclipse-rcp,desktop-application,e4,Java,Eclipse Rcp,Desktop Application,E4,我有零件堆栈,选项卡中有很多零件。我想知道如何在不需要选项卡时使其处于非活动状态,在需要时使其处于活动状态 我所说的“非活动”是指选项卡,它是可见的,但我不能单击它,它类似于禁用功能(例如,它上的文本是灰色而不是黑色) 我使用E4RCP(与Application.e4xmi一起使用) 感谢您的帮助。零件堆栈中零件选择的处理由零件堆栈渲染器org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer处理,该渲染器基本上使用CTabFolder 可以
感谢您的帮助。零件堆栈中零件选择的处理由零件堆栈渲染器
org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer
处理,该渲染器基本上使用CTabFolder
可以使用渲染器工厂覆盖堆栈渲染器
您可以扩展现有的StackRenderer
类并重写方法以更改其行为。在这种情况下,可能是hookControllerLogic
方法。但是,您必须仔细研究源代码,看看需要做什么。您可以尝试使用EPartService来操作零件,但我认为活动/非活动零件仅表示可见或不可见
或者您可以自己手动循环并禁用所有swt控件使用渲染器工厂覆盖堆栈渲染器。 扩展现有的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 );
}
}这是e4 RCP(使用Application.e4xmi)还是3.x兼容RCP?我使用e4 RCP(有问题的更新)。