【问题标题】:How to save selected view highlighted in rcp application?如何保存在 rcp 应用程序中突出显示的选定视图?
【发布时间】:2014-06-18 21:14:14
【问题描述】:

我有一个 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));

        }
    });

}

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

【问题讨论】:

  • 你是什么意思“突出各自的观点”?突出显示如何?
  • 用户如何知道一次哪个视图处于活动状态?假设在四个视图中我单击了一个视图,我想将其显示为选中的一个,其余的都是空闲的。希望你能得到我。
  • Eclipse 不是自动突出显示“活动”视图吗?
  • 是的..这样只有我也想将所选视图显示为活动视图。我的意思是在单击 Eclipse 时,我们会知道我们选择了哪个视图,无论是它的包资源管理器视图还是大纲视图还是其他视图,就像我也想在我的应用程序中做这些视图(1)项目资源管理器视图, (2)页面视图浏览器 (3)服务器视图浏览器 (4)设备库视图 (5)属性视图.....

标签: java swt eclipse-rcp jface


【解决方案1】:

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

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

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

【讨论】:

  • 我们可以更改视图标题的颜色吗?
猜你喜欢
  • 2017-11-21
  • 2013-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
相关资源
最近更新 更多