Eclipse plugin 在Eclipse RCP中显示但禁用视图

Eclipse plugin 在Eclipse RCP中显示但禁用视图,eclipse-plugin,eclipse-rcp,Eclipse Plugin,Eclipse Rcp,在我的RCP应用程序中有两个视图,其中我正在执行一个任务(后台操作),操作的状态显示在视图1中。我试图实现的是,在正在进行的任务期间,用户不应该能够移动/遍历到其他视图。它们(其他视图)应该被禁用 作为一种解决方法,我尝试使用IWorkbenchPage的showView方法 activePage.showView(view.ID,null,IWorkbenchPage.VIEW_VISIBLE); 我使用了三个常量:视图可见、视图激活和视图创建。但在我的例子中没有一个有效。顺便说一句,在sh

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

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

activePage.showView(view.ID,null,IWorkbenchPage.VIEW_VISIBLE);
我使用了三个常量:视图可见、视图激活和视图创建。但在我的例子中没有一个有效。顺便说一句,在showView方法签名中,我不知道什么是次要id

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

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

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

您不能真正禁用视图(没有“禁用视图”的概念)。你唯一能做的就是把它藏起来。使用hideView()方法执行此操作。

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

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

请参见

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

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

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

可以禁用视图,就像禁用任何其他SWT控件一样:通过在顶部
复合
上设置
设置启用(false)
。通常通过覆盖
ViewPart.showBusy(…)

感谢有价值的建议感谢有价值的建议