如何保存rcp应用程序中突出显示的选定视图?

时间:2014-06-18 07:37:56

标签: java swt eclipse-rcp jface

我有一个Eclipse RCP应用程序。从视角来看,有四个视图,我想在每次点击时突出显示各自的视图。有可能吗? 我试过以下代码:

private void addFocusBackgroundOnSelectingView() {
    viewer.getControl().addListener(SWT.MouseEnter, new Listener() {

        @Override
        public void handleEvent(Event event) {
            viewer.getControl().setBackground(
                    PlatformUI.getWorkbench().getDisplay()
                            .getSystemColor(SWT.COLOR_GRAY));

        }
    });
    viewer.getControl().addListener(SWT.MouseExit, new Listener() {

        @Override
        public void handleEvent(Event event) {
            viewer.getControl().setBackground(
                    PlatformUI.getWorkbench().getDisplay()
                            .getSystemColor(SWT.COLOR_WHITE));

        }
    });

}

如果已经选择了该视图,即使我将鼠标悬停在外,我也想保存选择。

1 个答案:

答案 0 :(得分:0)

Eclipse PartService会跟踪哪个部分(编辑器,视图等)当前处于活动状态。您可以通过PlatfomUI类向服务添加侦听器:

IPartListener partListener = ...;
IPartService partService = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService();
partService.addPartListener(listener);

IPartListener界面具有partActivatedpartDeactivated方法,您可以在其中进行突出显示。