`

开发透视图插件(转)

 
阅读更多

开发透视图插件

  Eclipse中的透视图(也称为视角)是一个比较有趣的概念,也非常有用。想象一下,Eclipse是一个插件的大拼图,在同一时间Eclipse如果实现了很多个视图,把这么多个视图同时展现给用户会是什么场景。因为大多的视图同时展现出来,布局一定会很乱,结果肯定是用户不会用Eclipse了。Eclipse中通过透视图来组织视图的显示,解决了视图显示的问题。

  简介

  如果把所有的视图都在同一时间展现给用户肯定是不行的,一方面,Eclipse在同一时间打开成千上万个视图的效率会很低(效率是Eclipse中的一个关注点),另一方面,如果在同一时间成千上万个视图堆在一块,肯定不美观(而且大多视图在某一时刻用户是不关心的)。

  Eclipse通过透视图(也称为视角)很好地解决了这个问题。就如同一个物体,这个物体有很多个面,从一个视角只能看到几个面。Eclipse中同一个视角可以有若干个视图,用户可以通过视角扩展点建立自己的视角,在此视角中包含自己感兴趣的视图,那么当用户选择此视角时,Eclipse就会自动打开此视角中包含的视图(从这个角度说,笔者觉得视角这个词可能较为准确)。

  可以通过“Window”→“Open perspectives”→“Other”打开选择透视图的对话框,如图1所示。

  

图1 选择透视图

  在Eclipse中,用户能够扩展Eclipse的扩展点实现自己的透视图,也可以实现扩展点把自己的视图加入到其他的透视图中,后面将简单介绍如何通过这两个方法实现透视图。

  提示:透视图只包含视图的引用,当选择了透视图后,此透视图会自动打开透视图中包含的视图引用。如果视图还未初始化,Eclipse会负责初始化此视图。一个透视图可以包含多个视图,一个视图也可以属于多个透视图。

  扩展透视图

  在Eclipse中,用户可以建立自己的透视图,把感兴趣的视图展现在自己的透视图中,也可以把自己的视图放在已经建立的透视图中。“org.eclipse.ui.perspectiveExtensions”为用户提供了把自己的视图放入相应透视图的扩展。

  例如用户有这样的场景:当切换Eclipse的Resource透视图后要显示用户的视图,如图2所示。

  

图2 Resource透视图

  当切换到Resource透视图后,Eclipse会自动把“Sample View”视图放在相应的位置。这就要求实现“org.eclipse.ui.perspectiveExtensions”扩展点。

  “org.eclipse.ui.perspectiveExtensions”扩展点没有实现类,此扩展点只是作为一个描述,告诉Eclipse怎样对Eclipse中的相应透视图进行布局。此扩展点有几个比较重要的描述信息:一是目标透视图的ID号,表示要对哪一个透视图的布局进行重定义;还要指定视图的ID,表示把哪一个视图的引用放入目标透视图;另外要指定视图在透视图中的相应位置。

  建立一个“org.eclipse.ui.perspectiveExtensions”扩展的步骤如下。

  1. 在Extensions页中添加一个“org.eclipse.ui.perspectiveExtensions”的扩展。

  2. 在“org.eclipse.ui.perspectiveExtensions”节点中添加一个“perspectiveExtension”节点,并指定它的targetID属性为“org.eclipse.ui.resourcePerspective”(表示Resource透视图的ID),如图3所示。

  

图3 目标透视图

  3. 在“perspectiveExtension”节点下建立一个view节点,并设置好view节点的属性,通过这些属性可以设置指定视图在指定透视图中的位置,如图4所示。

图4 视图节点属性

  视图节点属性解释如下。

  id:表示放入目标透视图的视图ID号。

  relative:相关视图的ID号(即和哪一个视图放在同一个区域)。

  relationship:放在区域的什么位置。

  ratio:视图在区域中的百分比。

  visible:如果视图没有被初始化,第一次打开透视图是否初始化此视图并显示。

  closeable:视图是否可关闭。

  moveable:视图是否可移动。

  standalone:是否是孤立的视图(即视图是否可以和其他视图放在一起)。

  showtitle:是否显示标题。

  “perspectiveExtension”扩展点相当于起到把透视图和视图ID绑定的作用,这样,Eclipse会通过透视图找到视图的引用。这种手法在Eclipse中是比较常见的。本例源程序可参考本书附带光盘,扩展点定义文件如例程1所示。

  例程1 plugin.xml

<plugin>

<extension

         point="org.eclipse.ui.perspectiveExtensions">

      <perspectiveExtension

            targetID="org.eclipse.ui.resourcePerspective">

         <view

               closeable="false"

               id="com.free.proj.persperctivetest.views.SampleView"

               moveable="false"

               ratio="0.5"

               relationship="right"

               relative="org.eclipse.ui.views.TaskList"

               visible="false">

         </view>

      </perspectiveExtension>

</extension>

</plugin>

  提示:用户不但可以把视图放到相应的透视图,也可以把“ActionSet”之类的扩展放入相应的透视图。

  实现透视图

  上面介绍了如何把自己的视图放入已有的透视图中,但是用户如果想建立自己的透视图应该如何实现呢?这就要求用户实现“org.eclipse.ui.perspectives”扩展点,步骤如下。

  1. 在清单文件的Extensions页添加“org.eclipse.ui.perspectives”节点。

  2. 在“org.eclipse.ui.perspectives”节点建立perspective节点,并设置相应的属性,如图5所示。

图5 perspertive节点属性

  perspertive节点属性解释如下。

  id:透视图的ID号。

  name:透视图的名称。

  class:透视图扩展点的实现类。

  icon:透视图的图标。

  透视图扩展点的描述信息如下。

<extension

    point="org.eclipse.ui.perspectives">

 <perspective

       class="com.free.proj.persperctivetest.PerspectiveFactory"

       id="com.free.proj.persperctivetest.perspective"

       name="persperctive test"/>

</extension>

 

  在此透视图中,实现类为“PerspectiveFactory”。透视图的实现类要求实现“IPerspectiveFactory”接口,通过createInitialLayout(IPageLayout layout)方法实现透视图中视图的布局。用户可以通过layout参数添加视图到当前的透视图中,如例程2所示,添加了一个ID为“com.free.proj. persperctivetest.views.SampleView”的视图到当前透视图。

  例程2 PerspectiveFactory.java

  package com.free.proj.persperctivetest;

  import org.eclipse.ui.IPageLayout;

  import org.eclipse.ui.IPerspectiveFactory;

  public class PerspectiveFactory implements IPerspectiveFactory {

  public void createInitialLayout(IPageLayout layout) {

  layout.setFixed(true);

  layout.addView("com.free.proj.persperctivetest.views.SampleView",

  IPageLayout.LEFT, 0.5f,

  IPageLayout.ID_PROBLEM_VIEW);

  layout.setEditorAreaVisible(true);

  }}

  IPageLayout的addView方法定义为“public void addView(String viewId, int relationship, float ratio, String refId);”,参数解释如下。

  viewId:被添加到透视图中的视图ID号。

  relationship:放在区域的什么位置。

  ratio:视图在区域中的百分比。

  refId:相关视图的ID号(即和哪一个视图放在同一个区域)。

  打开选择透视图的对话框,可以看到“persperctive test”透视图,选择“persperctive test”透视图,如图6所示。

 

图6 “persperctive test”透视图

  上例创建了用户自定义的透视图,在透视图中只添加了一个视图,如果在一些比较大的项目中,可能还会用到很多的视图,以及Eclipse原有的视图。用户也可以把这些视图添加到自定义的透视图中,只需要知道这些视图的ID即可。

分享到:
评论

相关推荐

    eclipse 获得透视图切换事件

    在Eclipse插件开发中,我们可以通过监听`IPerspectiveListener`接口来获取透视图切换的事件。这个接口定义了两个方法:`perspectiveChanged`和`perspectiveActivated`。`perspectiveChanged`方法在透视图被修改但未...

    Eclipse插件开发教程PPT Eclipse插件开发教程PPT

    开发插件时,可以创建新的透视图以适应特定的工作流程。 8. **视图(Views)**:视图是Eclipse UI中的组件,用于显示信息或提供交互功能。通过自定义视图,开发者可以为用户提供独特的查看和操作数据的方式。 9. *...

    eclipse 插件开发01

    第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、透视图(Perspective)等10章的内容;第三篇主要讲述插件开发的高级内容,包括开发高级内容...

    Eclipse插件开发学习笔记.pdf

    为了扩展工作台,开发者需要了解如何创建自己的编辑器,如何添加自定义视图以及如何设计透视图来组织这些界面元素。在这些工作中,插件开发人员需与Eclipse模型层进行交互,通过操作模型来反映用户界面的变化。 ...

    Eclipse插件开发学习笔记全篇+源码.rar

    5. Plugin.xml:定义插件的视图、透视图、命令、菜单和工具栏等UI元素。 第二篇:实践篇 这一部分将通过实例教你如何实际开发Eclipse插件: 1. 创建第一个插件:从简单的“Hello, World”插件开始,了解插件开发的...

    ECLIPSE插件开发 原书第3版.part1

    《Eclipse插件开发(原书第3版)(畅销插件开发指南新版)》主要介绍了开发Eclipse商业插件的完整过程,并从标准窗口小部件工具集、命令与操作、视图、透视图、实现帮助、国际化等方面对创建Eclipse商业插件进行了详细...

    Eclipse插件开发系列

    开发者可以创建新的插件,或者扩展已有的插件,以添加新的编辑器、视图、透视图、操作或其他功能。插件开发的基础是理解Eclipse的插件模型,包括插件的生命周期、依赖关系以及插件间的服务发现和交互。 Eclipse插件...

    Eclipse插件开发(第3版 - 高清).pdf.zip

    开发者可以通过编写插件来扩展Eclipse的功能,实现自定义的工作台视图、编辑器、透视图等。书中详细讲解了Eclipse插件的生命周期、插件结构、插件依赖关系以及如何使用Eclipse的Plug-in Development Environment ...

    Eclipse Plug-In插件开发.doc

    在插件开发中,创建一个专用的透视图可以提供更好的用户体验。具体步骤如下: 1. 准备工作:复制所需的图标资源到插件项目中。 2. 修改`plugin.xml`:添加透视图扩展点,定义透视图的名称、图标、对应的类和唯一ID...

    Eclipse插件开发

    它对Eclipse插件开发进行了全程详细指导,内容不仅包括Eclipse使用入门、Eclipse基础结构、SWT、JFace、操作、视图、透视图、标记、性质、构建器等插件开发必备知识,还介绍了实现帮助系统、国际化、创建扩展点、...

    ECLIPSE插件开发 原书第3版.part4 克莱伯格(Eric Clayberg)

    《Eclipse插件开发(原书第3版)(畅销插件开发指南新版)》主要介绍了开发Eclipse商业插件的完整过程,并从标准窗口小部件工具集、命令与操作、视图、透视图、实现帮助、国际化等方面对创建Eclipse商业插件进行了详细...

    Eclipse插件开发文档

    3. 在运行时工作台启动插件,通过菜单或透视图添加视图,查看结果。 七、Eclipse插件开发文档资源 提供的文档和资料可以帮助开发者深入理解Eclipse插件开发: 1. "eclipse插件开发.doc":可能包含了详细的步骤指南...

    Eclipse插件开发 第1篇到第4篇 开发基础 核心技术 高级进阶 综合实例 eclipse 插件安装方法

    4. **透视图(Perspectives)、视图(Views)、编辑器(Editors)和操作(Actions)**:这些是Eclipse插件开发中的基本元素,它们构成了用户界面的主要部分。学习如何创建和定制这些组件以提供特定功能。 5. **调试...

    eclipse插件开发ppt

    常见的扩展点包括视图(Views)、编辑器(Editors)、操作(Actions)、菜单(Menus)、对话框和向导(Dialogs & Wizards)、透视图(Perspectives)、首选项(Preferences)等,这些扩展点覆盖了Eclipse中的几乎...

    《Eclipse插件开发学习笔记》源码

    第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、透视图(Perspective)等10章的内容;第三篇主要讲述插件开发的高级内容,包括开发高级内容...

    开发 Eclipse 插件 快速入门

    在选择代码生成向导的选项时,可以选择添加动作集到资源透视图,以便在 Eclipse 中更方便地访问插件功能。 一旦插件创建完毕,可以在运行时工作台中启动和调试它,以测试其功能。调试插件通常涉及到设置断点、运行...

    Eclipse插件开发笔记—PDF—带目录

    第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、透视图(Perspective)等10章的内容;第三篇主要讲述插件开发的高级内容,包括开发高级内容...

    Eclipse插件开发(原书第3版)高清 插图版

    本书主要介绍了开发Eclipse商业插件的完整过程,并从标准窗口小部件工具集、命令与操作、视图、透视图、实现帮助、国际化等方面对创建Eclipse商业插件进行了详细描述。本书既包含了开发Eclipse插件的基础理论,也...

    Eclipse 插件开发学习笔记.rar

    3. 实现功能:编写Java代码,定义插件的功能组件,如视图、透视图、编辑器、命令等。 4. 测试插件:使用Eclipse的运行配置,选择“Plug-in Debugging”模式启动一个新的Eclipse实例,测试插件功能。 四、Eclipse...

    《Eclipse 插件开发》源代码

    5. **透视图(Perspectives)**:Eclipse的透视图定义了工作区的布局,比如Java透视图专注于Java开发,而Debug透视图则用于调试。 6. **视图(Views)**:自定义视图可以展示特定的信息,如日志、项目依赖关系等,...

Global site tag (gtag.js) - Google Analytics