Show but disable a view in Eclipse

I have two views in my RCP application, wherein I'm performing a task(background operation),the status of the operation is shown in view1. What I'm trying to achieve is that,during the task in progress, user shouldn't able to move/traverse to other views.They(other views) should be disabled.

As a workaround i tried using the showView method of IWorkbenchPage.

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

I've used the three constants VIEW_VISIBLE,VIEW_ACTIVATE,VIEW_CREATE. None worked in my case though.By the way in showView method signature, i could not figure out what is a secondary id.

Below is the simulated demo of my problem 在这里输入图像描述

here the user can traverse to view Demo,during the operation, which shouldn't be actually. How can i resolve this, any ideas please?


You can't really disable a view (there is no notion of "disabled views"). The only thing you can do is hide it. Use the hideView() method to do that.


Another way of doing it would be to use the ProgressService to display a modal progress dialog while the operation is progressing. This way the user must wait until the operation is complete before they can interact with the UI.

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

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


You can disable a view like you disable any other SWT control: by setting setEnabled(false) on the top Composite . Often done by overriding ViewPart.showBusy(...) ...

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

上一篇: 在eclipse rcp中关闭一个视图

下一篇: 在Eclipse中显示但禁用视图