检查Eclipse视图是否可见

时间:2014-11-30 08:30:33

标签: eclipse eclipse-plugin

我创建了一个插件动作,显示了一个视图&隐藏一个视图。这是我的代码:

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
page.showView("com.sample.views.Example");
page.hideView(page.findView("com.sample.views.Example"));

但是如何检查此视图是否在当前前景中或是否已关闭?

2 个答案:

答案 0 :(得分:0)

如果视图未打开,

IWorkbenchPage.findView将返回null

IWorkbenchPage.getActivePart()返回活动部分(可能是编辑器或视图)。

您还可以使用IWorkbenchPage.addPartListener收听对部件的更改。

答案 1 :(得分:0)

IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
IWorkbenchPage page = window.getActivePage();
IEditorReference[] editors = page.getEditorReferences();
//  How many editor open..
//  System.out.println("Len : "+editors.length);

if(editors.length==0){
        System.out.println("View is not visible");
}
else{
        System.out.println("View is visible");
        System.out.println("View or Editor Name is :: "+page.getActiveEditor().getTitle());
}
  

当前工作视图或窗口名称显示

IPartService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService();
    MessageDialog.openInformation(HandlerUtil.getActiveWorkbenchWindow(
            event).getShell(), "Current Workbench Window", service.getActivePart().getTitle()+"");