`

开发透视图插件(转)

 
阅读更多

开发透视图插件

  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 插件开发01

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

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

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

    Eclipse插件开发

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

    Eclipse插件开发学习笔记

    第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、透视图(P 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

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

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

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

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

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

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

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

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

    Eclipse+插件开发学习笔记

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

    Eclipse插件开发+学习笔记(完整 清晰) part1

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

    Eclipse+插件开发 学习笔记(完整 清晰).part4.rar

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

    Eclipse插件开发学习笔记 第三四篇(26-28)+原代码.rar

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

    Eclipse插件开发学习笔记(第二篇 核心技术 9-13章)

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

    Eclipse插件开发学习笔记(第二篇 核心技术 14-18章)

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

    Eclipse插件开发学习笔记 第三四篇(22-25).rar

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

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

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

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

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

    eclipse 插件开发02

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

    Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar

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

    Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar

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

Global site tag (gtag.js) - Google Analytics