`
streamfly
  • 浏览: 89400 次
社区版块
存档分类
最新评论

实现 RCP 中 VIEW 视图 全窗口 显示

阅读更多
最近做产品用到了这一功能,说实话让我头疼了好一会。不过还好,偶然让我发现了解决方法,写在这里。

先看下面一段代码:
java 代码
  1. IViewPart viewpart = getSite().getPage().findView(View.ID);  
  2.                 PlatformUI.getWorkbench().getActiveWorkbenchWindow().  
  3. getActivePage().hideView(viewpart);  

上面的代码可以让当前活动的 视图隐藏。这会原理也就差不多清楚了把。那具体怎样样其他视图隐藏呢,代码如下:

java 代码
 
  1. public void run(IAction action)   
  2.     {  
  3.         boolean Flag = false;  
  4.           
  5.         IWorkbenchWindow[] workbechWindows = PlatformUI.getWorkbench().getWorkbenchWindows();  
  6.         for(int i = 0;i
  7.         {  
  8.             IWorkbenchPage[] workbechPages = workbechWindows[i].getPages();  
  9.             for(int j = 0;j
  10.             {  
  11.                 IViewPart mapViewPart = workbechPages[j].findView(View.ID);//保持显示的视图  
  12.                 if(mapViewPart == null)  
  13.                 {  
  14.                     Flag = true;  
  15.                 }  
  16.             }  
  17.             if(Flag)  
  18.             {  
  19.                 for(int j = 0;j
  20.                 {                     
  21.                     IViewPart[] viewParts = workbechPages[j].getViews();  
  22.                     for(int k = 0; k
  23.                     {  
  24.                         workbechPages[j].hideView(viewParts[k]);  
  25.                     }  
  26.                 }  
  27.             }  
  28.         }  
  29.     }  


但经过测试后发现行不通,因为我所在的工程只有一个workbenchWindow,一个workbenchPage.

经过多方查证和实验,总算搞定了,代码如下:

java 代码
  1. public void run(IAction action) {   
  2.         try {   
  3.             window.getActivePage().showView(MapView.ID);   
  4.         }catch (PartInitException e) {   
  5.             e.printStackTrace();   
  6.         }   
  7.            
  8.         IWorkbenchAction action1 = ActionFactory.MAXIMIZE.create(window);   
  9.         action1.run();   
  10.     }  

这里要说明下showView()函数,如果View没有显示,则显示并置为当前活动的view,如果已经显示了,则只把它置为当前活动的view.      ActionFactory.MAXIMIZE.create(window);只对当前活动的view起作用。

 

分享到:
评论
2 楼 streamfly 2010-06-18  
window.getActivePage() 是null不太可能吧,你总要有一个工作页是处于激活状态的。
1 楼 ylc2010 2010-06-09  
window.getActivePage()这里是null怎么办?

相关推荐

    RCP中adapter实现属性视图

    本文将深入探讨如何在RCP应用中通过适配器实现属性视图(Property View),以展示对象的属性信息。 首先,理解适配器模式的基本原理至关重要。适配器模式是一种结构型设计模式,它允许不兼容的接口之间进行通信。在...

    RCP入门 View Editor

    你可以创建自定义的EditPart来实现特定的编辑行为,并通过透视图来安排其在工作台窗口中的位置。 **总结** Eclipse RCP提供了一个强大的平台,用于构建功能丰富的桌面应用程序。通过理解并利用RCP中的视图和编辑器...

    eclipse rcp demo例子 view editor 图表

    本示例是一个Eclipse RCP的实战演示,展示了如何在Eclipse RCP应用中实现View和Editor,以及可能涉及图表的展示。 在Eclipse RCP中,View和Editor是两种主要的用户界面组件。View通常用于显示辅助信息或工具,而...

    RCP中文入门教程.rar

    5. **视图(View)**和**编辑器(Editor)**:视图是用来显示特定数据或状态的部分,而编辑器则是用来编辑或操作数据的区域。两者都是工作台的重要组成部分。 6. **命令(Command)**和** Handler**:RCP中的命令...

    rcp.zip_DEMO_RCP dialog_java rcp_rcp

    在RCP应用中,视图(View)是显示数据和提供用户操作的区域,它们可以独立于编辑器(Editor)存在。"demo_rcp_view"应该是演示如何创建和管理视图的实例,包括视图的注册、显示、隐藏和更新数据的方法。 再来看...

    RCP 常见的扩展点指南

    然后,在插件中创建一个名为 View1 的类,实现视图的功能。 结论 ---- RCP 的扩展点是其核心组成部分之一,插件可以通过定义自己的扩展点来提供特定的功能。在 Eclipse 中,插件可以通过 plugin.xml 文件中的扩展...

    RCP 中文文档

    5. **视图(View)**:视图是用户界面中显示特定信息或功能的部分,如日历视图、属性视图等。开发者可以创建自定义视图以满足特定需求。 6. **编辑器(Editor)**:编辑器是用于处理特定类型文件或数据的组件,如...

    RCP的VIEWER和EDITOR

    Composite则是一种容器,可以包含多个Part,这样就可以在一个窗口中同时显示和操作多个视图和编辑器。 在实际开发中,开发者可以通过实现IViewer、IEditorPart等接口来自定义VIEWER和EDITOR的行为。同时,Eclipse ...

    Eclipse rcp深入浅出中英文版及配套代码

    2. **工作台(Workbench)**:Eclipse RCP的核心组件,负责管理窗口、视图和编辑器。理解工作台的工作原理对于构建用户界面至关重要。 3. **模型-视图-控制器(MVC)**:Eclipse RCP遵循MVC设计模式,分离了数据...

    RCP中文入门教程。。

    在RCP中,工作台(Workbench)是整个应用的核心,它管理着所有视图、编辑器和窗口。视图(View)是显示数据或提供操作的地方,编辑器(Editor)则用于编辑内容。透视图(Perspective)是工作台中的布局,可以按照...

    通过例子学习EclipseRCP开发

    视图是Eclipse RCP中显示信息的小型窗口,可以动态地显示数据。创建视图涉及定义视图的类,并实现必要的接口方法来显示内容。还可以通过代码将视图添加到特定的透视图中。 #### 使用编辑器、视图交互及模型更新 ...

    eclipse-rcp开发培训PPT

    4. **模型(Model)**:Eclipse RCP采用MVC(Model-View-Controller)设计模式,模型负责数据的存储和处理,视图负责显示,控制器负责两者间的交互。 **二、Eclipse RCP开发流程** 1. **环境搭建**:首先,你需要...

    RCP程序设计教程打包

    - **视图(View)**:显示特定信息或提供操作功能的区域,如 Outline 视图、Console 视图等。 - **编辑器(Editor)**:用于编辑文件或其他数据的组件,如代码编辑器。 2. **入门实例** - **第一个RCP程序**:...

    RCP 资料

    2. **工作台(Workbench)**:RCP中的核心组件,负责管理窗口、视图、编辑器等元素。工作台提供了标准的用户界面元素,如菜单、工具栏和快捷键,帮助用户与应用交互。 3. **透视图(Perspective)**:类似于操作...

    EclipseRcp 例子程序

    3. **视图(View)**:视图是用户界面中显示特定信息或提供操作的地方,如项目浏览器、问题视图等。学习例子程序可以了解如何创建和注册视图,并控制它们的显示和隐藏。 4. **编辑器(Editor)**:编辑器用于处理...

    Eclipse RCP开发详解

    在"**Eclipse Plug-in RCP开发方法详解**"中,你可能会学到如何创建基本的UI元素,如视图和编辑器。视图通常通过实现`IViewPart`接口创建,而编辑器则是通过实现`IEditorPart`接口。此外,你还会学习如何定义和注册...

    Eclipse RCP

    5. **视图(View)**和**编辑器(Editor)**:视图是显示特定信息或功能的UI组件,如项目浏览器、问题视图等。编辑器则是用来编辑文件或数据的组件,如Java源代码编辑器。 6. **服务(Service)**:Eclipse RCP提供...

    rcp 学习资料下载,一个简单的rcp例子

    视图是显示特定数据或功能的窗口,可以被独立打开或关闭;编辑器则用于编辑和查看数据,类似于传统IDE中的代码编辑器;透视图则是对工作台布局的组织,允许用户根据工作需求自定义视图和编辑器的排列。 压缩包中的...

    eclipse rcp 例子 源码

    2. **RCP架构**:理解RCP的核心概念,如工作台(Workbench)、窗口(Window)、视图(View)、编辑器(Editor)以及透视图(Perspective)。 3. **SWT组件使用**:掌握各种SWT控件的用法,如按钮、文本框、表格等,...

    RCP中文入门教程

    5. 添加视图(View)和编辑器(Editor),实现具体功能。 6. 配置菜单、工具栏和其他用户交互元素。 7. 测试和调试应用,确保所有功能正常运行。 **总结** RCP中文入门教程提供了从零开始创建RCP应用的基本指导,...

Global site tag (gtag.js) - Google Analytics