【问题标题】:Events of Properties View in my own eclipse editor我自己的 Eclipse 编辑器中的属性视图事件
【发布时间】:2016-08-09 01:59:49
【问题描述】:

我在 eclipse 中自己的编辑器中实现了一个属性视图,并使用代码启动此视图:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("org.eclipse.ui.views.PropertySheet");

1) 当属性视图变得可见或不可见时,是否有侦听器被触发,从而失去焦点?

2) 我用什么代码知道属性视图是否关闭?

3) 我用什么代码知道属性视图是否打开但不可见?喜欢这张图片:

图一

4) 我怎么知道它是否可见并且有焦点?喜欢图片:

图2

5) 如果它是可见的并且没有焦点,例如:

图 3

【问题讨论】:

    标签: java eclipse eclipse-plugin swt


    【解决方案1】:

    使用IPartListener2 监听所有部分事件。

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

    您将获得所有部分的事件,因此您必须检查事件是否适合您。侦听器获取部件所有状态更改的事件(打开、关闭、激活、置顶……)

    还有一个非常相似的IPartListener,但如果可能,应该使用IPartListener2

    【讨论】:

    • 嗨,格雷格,感谢您的回答。问题是当“属性视图”失去焦点并被停用时。我不知道视图是否可见。例如,在示例 3 的图 1 和示例 5 的图 3 中,执行了函数 partDeactivated。但是在代码上我不知道视图是否仍然可见。
    • 您收到partVisiblepartHidden 事件,您必须跟踪这些事件。
    • IPartListener2 有 partVisible 和 partHidden 并且有效。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多