在Eclipse中显示但禁用视图

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

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

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

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

以下是我的问题的模拟演示 在这里输入图像描述

这里用户可以遍历来查看演示,在操作过程中,这不应该是实际的。 我该如何解决这个问题,有什么想法?


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


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

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

请参阅http://wiki.eclipse.org/FAQ_Why_should_I_use_the_new_progress_service%3F


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

链接地址: http://www.djcxy.com/p/18679.html

上一篇: Show but disable a view in Eclipse

下一篇: Eclipse RCP: Generating views from form values