java - org.eclipse.ui.startup 与 WindowListener 一起使用 - 未捕获首次激活

标签 java eclipse-plugin eclipse-rcp

大家好,Stackoverflow 的 friend 们,

我正在开发一个 Eclipse RCP 应用程序,我想向 ProjectExplorer Eclipse View 添加一个监听器,并且需要在用户执行任何操作之前添加该监听器,但在 GUI 完成之后生成的。 不过,在启动时, PlatformUI.getWorkbench().getActiveWorkbenchWindow() 返回 null (哦,窗口未激活),因此我添加到已经创建了 WorkbenchWindowListener

PlatformUI.getWorkbench().addWindowListener(new IWindowListener() {
            @Override
            public void windowActivated(IWorkbenchWindow activatedWindow) {
                //do stuff here
                }
            }
            @Override
            public void windowClosed(IWorkbenchWindow arg0) {
                //remove stuff here
            }
            @Override
            public void windowDeactivated(IWorkbenchWindow arg0) {
                // stub
            }
            @Override
            public void windowOpened(IWorkbenchWindow arg0) {
                //stub
            }
        });

现在我遇到的问题是,即使填充了 ActiveWorkbenchWindowWindowListener 中的 windowActivated() 方法不被称为:(

有趣的是,当我单击另一个窗口,然后单击返回应用程序窗口时,会调用 windowActivated() 方法...因此监听器确实已注册。

感谢任何帮助和建议!

最佳答案

您可以使用 WorkbenchWindowAdvisorpostWindowCreatepostWindowOpen 方法的重写来进行设置。

关于java - org.eclipse.ui.startup 与 WindowListener 一起使用 - 未捕获首次激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20240691/

相关文章:

java - 如何在 JSON 中发送 map

java - 有没有办法检查 ComboBox 中是否有 JavaFX 中的任何项目?

java - 在 pde 中隐藏选项卡

java - 无法从窗口生成器中的调色板拖动项目

eclipse - 为什么 Eclipse API 使用数组而不是集合?

java - Eclipse 插件项目不显示在应用程序模型中添加的窗口

java - OSGi 服务架构 : creation of service at request of consumer

java - JOptionPane 自定义 JButton 选择后未关闭

Java Spring - 服务 Thymeleaf URI 和 JSON

eclipse - 如何根据产品配置和目标平台定义构建RCP应用程序?