【问题标题】:Show but disable a view in Eclipse-RCP在 Eclipse-RCP 中显示但禁用视图
【发布时间】:2012-05-26 16:59:32
【问题描述】:

我的 RCP 应用程序中有两个视图,其中我正在执行一个任务(后台操作),操作的状态显示在 view1 中。我想要实现的是,在执行任务期间,用户不应该能够移动/遍历到其他视图。它们(其他视图)应该被禁用。

作为一种解决方法,我尝试使用 IWorkbenchPage 的 showView 方法。

activePage.showView(view.ID,null,IWorkbenchPage.VIEW_VISIBLE);

我使用了三个常量 VIEW_VISIBLE、VIEW_ACTIVATE、VIEW_CREATE。但是在我的情况下没有一个工作。顺便说一下,在 showView 方法签名中,我无法弄清楚什么是辅助 id。

下面是我的问题的模拟演示

这里用户可以在操作过程中遍历查看Demo,实际上不应该。 请问如何解决这个问题?

【问题讨论】:

    标签: eclipse-plugin eclipse-rcp


    【解决方案1】:

    您不能真正禁用视图(没有“禁用视图”的概念)。你唯一能做的就是隐藏它。使用 hideView() 方法来做到这一点。

    【讨论】:

    • 感谢宝贵建议
    【解决方案2】:

    另一种方法是使用ProgressService 在操作进行时显示模态进度对话框。这样,用户必须等到操作完成后才能与 UI 交互。

    PlatformUI.getWorkbench().getProgressService().run(true, false, runnable);  
    

    http://wiki.eclipse.org/FAQ_Why_should_I_use_the_new_progress_service%3F

    【讨论】:

      【解决方案3】:

      您可以像禁用任何其他 SWT 控件一样禁用视图:通过在顶部设置 setEnabled(false) Composite。通常通过覆盖ViewPart.showBusy(...)...

      【讨论】:

        猜你喜欢
        • 2023-04-08
        • 1970-01-01
        • 2014-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-13
        • 2019-01-28
        相关资源
        最近更新 更多