【问题标题】:Replacing confirm exit dialogue by custom dialogue in Eclipse RCP 3.x application用 Eclipse RCP 3.x 应用程序中的自定义对话框替换确认退出对话框
【发布时间】:2015-03-26 19:37:12
【问题描述】:

我想用自定义对话框替换应用程序退出对话框,或者换句话说,我想在单击工作台窗口上的退出按钮时获得一个钩子,这样我就可以在对话框中显示消息。目前我正在添加窗口侦听器并在窗口关闭事件中执行一些操作,但此事件仅在窗口关闭后触发。

有没有办法为此添加一个钩子。我正在使用 eclipse 3.x 应用程序。 在此先感谢

【问题讨论】:

    标签: eclipse-plugin eclipse-rcp


    【解决方案1】:

    在您的org.eclipse.ui.application.WorkbenchAdvisor 中,您可以覆盖preShutdown()

    @Override
    public boolean preShutdown() {
        return MessageDialog.openConfirm(Display.getDefault().getActiveShell(), "Shutdown?", "Should I shutdown?");
    }
    

    您的WorkbenchAdvisor 应该位于您的应用程序被声明为 APPLICATIONNAMEWorkbenchAdvisor 的插件中。

    【讨论】:

    • 嗨...我正在使用现有的应用程序“org.eclipse.ui.ide.application”。我没有 IApplication 类,因为我挖掘它使用“org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor”,我如何访问这个类。希望我在解释属性
    • 好吧,你有自己的 RCP 应用程序。我不知道这是否有一个钩子。对话框在此处打开:org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor.promptOnExit(Shell)。您可能需要将 IDEInternalPreferences.EXIT_PROMPT_ON_CLOSE_LAST_WINDOW 设置为 false,因此不会提示默认对话框。
    • 感谢您指向“org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor.promptOnExit(S‌​hell)”。我在该方法上添加 aspectj 并执行自定义操作而不是设置首选项值(它说不鼓励访问)。它现在工作正常。我不知道添加 aspetj 是正确的方法。再次感谢:)
    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多