`
singba
  • 浏览: 30957 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse (3) Perspective和View

阅读更多

<o:p> </o:p>

一.Perspective View<o:p></o:p>

在开始进入新的一课之前,我们先来回顾一下上一章的内容。在上一章,我们创建了一个HelloWorld插件,在这个插件里添加了一个Action,并在一个HelloAction 里实现了具体的操作。这个例子扩展了一个扩展点:org.eclipse.ui.actionSets,然后又创建了一个对应的类,让这个action被点击的时候,弹出一个消息框。对于我们使用的这第一个扩展点,我们即没有详细说明actionSets扩展点的配置过程,也没有仔细看对应类的实现。而下面,我们将给予更多的注意。

在本章,我们将接触到另外3个扩展点,它们是:org.eclipse.ui.perspectives org.eclipse.ui.views org.eclipse.ui.perspectiveExtensions Eclipse 平台、JDTPDE总计约提供了近200个扩展点。随着各种各样的插件开发,你的系统中可用的扩展点会更多。学会怎样去学习比学会一些基本的扩展点更重要。

<o:p> </o:p>

<o:p> </o:p>

在上一章中,我们已经看到了perspectiveview(不记得了,那回头看看吧)View是我们最常使用的东西,它可以用于显示各种信息或输入等。而perspective则是容纳ViewEditor的容器。在一个perspective里,可以容纳多个ViewPart和一个EditorPart.注意这里是ViewPartEditorPart,而不是ViewEditor。在一个perspective里,只能有一个地方显示Editor,那就是下面红框位置,而其他的 View的位置,都是相对editor来确定的。<o:p></o:p>

<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 415.5pt; HEIGHT: 272.25pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\QIHONG~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" o:title=""></v:imagedata></v:shape><o:p></o:p>

<o:p> </o:p>

21 定义透视图<o:p></o:p>

下面我们来定义我们的第一透视图:<o:p></o:p>

1.打开我们前面创建的HelloWorld项目,双击plugin.xml文件。<o:p></o:p>

2.打开Extensions(扩展),点击”Add”,选择:org.eclipse.ui.perspectives,确定<o:p></o:p>

3.选择刚添加的org.eclipse.ui.perspectives,点击鼠标右键,选择newàperspective<o:p></o:p>

4. Detail中,在id中输入:HelloWorld.MyPerspective ,在name中输入 MyPerspective,如下:<o:p></o:p>

<v:shape id="_x0000_i1026" style="WIDTH: 415.5pt; HEIGHT: 219pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\QIHONG~1\LOCALS~1\Temp\msohtml1\01\clip_image003.png" o:title=""></v:imagedata></v:shape><o:p></o:p>

5.点击Class连接,输入类名:MyPerspective,点击“Finish”,如下:<o:p></o:p>

<v:shape id="_x0000_i1027" style="WIDTH: 371.25pt; HEIGHT: 444pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\QIHONG~1\LOCALS~1\Temp\msohtml1\01\clip_image005.png" o:title=""></v:imagedata></v:shape><o:p></o:p>

你可以已经注意到了,系统自动添加了一个接口:IPerspectiveFactory。这是透视图所需要要实现的接口。在扩展其他扩展点时,我们也将发现,很多有对应实现类的扩展点,都定义了所需要要实现的接口或者父类。那么怎么知道这些信息呢,当然是help.我们来打开help看一下这个扩展点的具体信息。打开帮助,打开Platform plug-in Developer GuideàReferenceàExtension Points Referenceàorg.eclipse.ui.perspectives:<o:p></o:p>

Configuration Markup 说明了每一项的用法<o:p></o:p>

API Information 说明了对应类所应实现的接口或者父类。<o:p></o:p>

<o:p> </o:p>

4.  保存Plugin.xml文件和新建的MyPerspective.java文件。<o:p></o:p>

5.  运行插件。在打开的运行时工作台中,选择:WindowàOpen PerspectiveàOther.. ,在打开的对话框中,可以看到我们刚才创建的MyPerspective。点击打开,我们的第一个没有任何内容的透视图就出现了:<o:p></o:p>

<v:shape id="_x0000_i1028" style="WIDTH: 415.5pt; HEIGHT: 297.75pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\QIHONG~1\LOCALS~1\Temp\msohtml1\01\clip_image007.png" o:title=""></v:imagedata></v:shape><o:p></o:p>

<o:p> </o:p>

22 定义view<o:p></o:p>

透视图定义完了,可是里面还没有东西,现在我们需要向里面添加东西了。而在添加之前,我们先定义几个我们自己的view,以便添加到透视图中。<o:p></o:p>

1.  打开 plugin.xml文件,点击extensions(扩展)页,点击”Add..”,选择 org.eclipse.ui.views,确定。在右边Detail中,输入ID值为:HelloWorld.views<o:p></o:p>

   <v:shape id="_x0000_i1029" style="WIDTH: 415.5pt; HEIGHT: 219pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\QIHONG~1\LOCALS~1\Temp\msohtml1\01\clip_image009.png" o:title=""></v:imagedata></v:shape><o:p></o:p>

2.  选中org.eclipse.ui.views,点击鼠标右键,选择NewàView,在Detail里修改id值为:HelloWorld.LeftViewname 值为:LeftView<o:p></o:p>

<v:shape id="_x0000_i1042" style="WIDTH: 415.5pt; HEIGHT: 219pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\QIHONG~1\LOCALS~1\Temp\msohtml1\01\clip_image011.png" o:title=""></v:imagedata></v:shape><o:p></o:p>

<o:p> </o:p>

3.  点击Class连接,在弹出的对话框中输入类名:LeftView,然后点击“Finish”系统将创建一个扩展了ViewPart 的类:LeftView.在这个类中,有一个方法:public void createPartControl(Composite parent) {},这个方法就是用来创建view中内容的。现在我们来添加些简单的组件<o:p></o:p>

4.  添加代码,让它成为如下的样子:<o:p></o:p>

public void createPartControl(Composite parent) {<o:p></o:p>

       parent.setLayout(new GridLayout());<o:p></o:p>

       Label l_title=new Label(parent,SWT.NONE);<o:p></o:p>

       l_title.setText("This is my first view.");<o:p></o:p>

       <o:p></o:p>

    }<o:p></o:p>

输入完成,按Ctrl+shift+o (字母o,不是零哦),先后然后选择Import: org.eclipse.swt.widget.Labelorg.eclipse.swt.layout.GridLayout 类。保存文件。<o:p></o:p>

5.  先来看看我们的成果吧,运行起来看看。在运行时工作台中,选择 windowàshow viewàOther,在这里可以看到我们刚才创建的LeftView:<o:p></o:p>

<v:shape id="_x0000_i1041" style="WIDTH: 207pt; HEIGHT: 295.5pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\QIHONG~1\LOCALS~1\Temp\msohtml1\01\clip_image013.png" o:title=""></v:imagedata></v:shape><o:p></o:p>

打开,即可看到我们的LeftView:<o:p></o:p>

<v:shape id="_x0000_i1043" style="WIDTH: 415.5pt; HEIGHT: 297.75pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\QIHONG~1\LOCALS~1\Temp\msohtml1\01\clip_image015.png" o:title=""></v:imagedata></v:shape><o:p></o:p>

 OK,恭喜,第一个view已经出现了,很容易是不是?<o:p></o:p>

  Eclipse提供了很多扩展点,在刚才查看org.eclipse.ui.perspectives扩展点的时候我想你已经看到了,我们已经见过三个扩展点,每一个都很简单,不是吗?以后,在我们使用新的扩展点时,会更多的关注帮助中对扩展点的描述。<o:p></o:p>

2.3 控制透视图中的Parts.<o:p></o:p>

一个空空的透视图是没有意义的,下面该是我们来为刚才创建的透视图添加内容的时候了。<o:p></o:p>

<o:p> </o:p>

下面是一个Eclipse提供的透视图:<o:p></o:p>

<v:shape id="_x0000_i1030" style="WIDTH: 414.75pt; HEIGHT: 302.25pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\QIHONG~1\LOCALS~1\Temp\msohtml1\01\clip_image017.png" o:title=""></v:imagedata></v:shape><o:p></o:p>

<o:p> </o:p>

下面,我们来把刚才创建的透视图布置成类似的样子,只不过,我们把左下角的view替换成我们的LeftView。来看看要怎么做吧。首先,来分析一下透视图中都显现些什么,左上角,是Package Explorer 视图,左下角,我们将显示我们的LeftView,右上部是Editor,右下部是Problem视图。对于我们的LeftView很好处理,它就是我们自己定义的,而Editor呢,在点击Package Explorer时即可显示,似乎也比较好办,那么,对于另外两个试图,他们是Eclipse里面早已有的,怎么把他们加到我们的透视图中呢?

分享到:
评论
3 楼 singba 2007-08-16  
看了看eclipse的源代码,终于知道怎么关闭了:

IWorkbench w=PlatformUI.getWorkbench();
IPerspectiveRegistry pr=w.getPerspectiveRegistry() ;
IPerspectiveDescriptor persdes=pr.findPerspectiveWithId("perspectiveID");

WorkbenchPage p=(WorkbenchPage)w.getActiveWorkbenchWindow().getActivePage();
Perspective persp = p.getActivePerspective();
p.closePerspective(persdes,false,false);

try {
w.showPerspective("nextperspectiveID", w.getActiveWorkbenchWindow());
} catch (WorkbenchException e) {
e.printStackTrace();
}
2 楼 singba 2007-08-16  
调用的系统的action,具体如何实在的,有时间看看源码在说
1 楼 singba 2007-08-16  
前断间找了好久如何关闭perspective,终于找到了:
关闭当前perspective,并打开一个新的perspective:

IWorkbench w=PlatformUI.getWorkbench();

ActionFactory.IWorkbenchAction closePerspectiveAction
    = ActionFactory.CLOSE_PERSPECTIVE.create(w.getActiveWorkbenchWindow());
closePerspectiveAction.run();

try {
PlatformUI.getWorkbench().showPerspective("com.ibm.demo.saic.ui.views.NextPerspective", w.getActiveWorkbenchWindow());
} catch (WorkbenchException e) {
e.printStackTrace();
}

相关推荐

    Eclipse 3高级编程

    此外,Eclipse的透视图(Perspective)和视图(View)概念是理解其多任务环境的重要组成部分,它们允许开发者根据工作需求自由切换和定制工作环境。 其次,Eclipse的插件系统是其强大功能的核心。通过学习如何开发...

    Eclipse 3 技术详解 cd

    Eclipse的透视图(Perspective)和视图(View)系统也是其特色之一。透视图允许用户根据当前任务切换不同的工作环境,而视图则提供特定功能的显示区域,如问题视图用于查看代码错误,包浏览器用于浏览项目结构。掌握...

    eclipse 获得透视图切换事件

    在Eclipse这样的集成开发环境中(IDE),透视图(Perspective)是组织工作空间的重要方式,它定义了不同类型的编辑器、视图和控制台的布局,以适应不同的开发任务。例如,Java开发者可能会使用Java透视图,而数据库...

    java 开发者指南Eclipse 3 编程指南

    Eclipse 3的界面由透视图(Perspective)、视图(View)、编辑器(Editor)和操作(Action)组成。了解这些元素,以及如何在它们之间切换,能帮助你更高效地组织和执行任务。例如,熟悉常用的操作如快捷键、菜单命令...

    eclipse帮助文档,中文版本

    Eclipse的基础界面由工作台(Workbench)组成,包括透视图(Perspective)、视图(View)、编辑器(Editor)和操作栏(ToolBar)。透视图允许用户根据工作需求定制显示的视图和编辑器,例如,Java透视图专注于Java...

    Eclipse基础教程(中文)

    Eclipse的界面通常由工作台(Workbench)、透视图(Perspective)、视图(View)和编辑器(Editor)等组成,这些都是开发者日常操作的核心元素。 接下来,教程会详细讲解如何创建和管理项目。在Eclipse中,项目是...

    打造基于Eclipse的IDE产品

    例如,Eclipse的视图(View)、透视图(Perspective)、菜单(Menu)和动作(Action)等,都是通过扩展点实现的。开发插件时,可以通过PDE来创建和测试这些扩展。 4. Eclipse提供的基本功能 Eclipse提供了一系列...

    eclipse api 帮助文档

    5. **UI框架**:`org.eclipse.ui`包是Eclipse用户界面的基石,包括视图(View)、编辑器(Editor)、透视图(Perspective)和命令(Command)等元素。开发者可以基于这些组件创建自定义的用户界面。 6. **调试框架*...

    Eclipse教程,Eclipse电子书

    - **透视图(Perspective)**:是一种预定义的工作台布局,可以包含特定的视图和编辑器。通过切换透视图,可以快速改变工作台的布局以适应不同的任务。 - **重新排列视图和编辑器**:用户可以根据自己的喜好重新...

    Eclipse插件开发系列

    2. 视图和透视图:视图(View)是Eclipse界面中的窗口,可以展示数据或提供操作。透视图(Perspective)则是一组视图的组合,定义了特定的工作环境。通过实现`IViewPart`和`IPerspectiveDescriptor`接口,可以自定义...

    Eclipse基础整合工具

    - Eclipse的核心是其工作台,它由多个视图(View)、编辑器(Editor)和透视图(Perspective)组成,可根据不同开发任务灵活切换。 3. **透视图(Perspective)**: - 透视图是一种组织工作空间的方式,如Java...

    eclipse支持lomboz插件

    - **服务器视图**(Servers View):展示已配置的Java EE服务器,允许用户添加、删除和管理服务器实例。 - **部署描述符编辑器**(Deployment Descriptor Editor):提供XML界面来编辑Web应用的部署描述符(如web....

    Eclipse RCP.pdf清晰版

    3. **SDK(Software Development Kit)**: Eclipse SDK包含开发Eclipse插件所需的所有工具和库。 #### 七、开发流程简述 1. **创建新的Eclipse插件项目**: 在Eclipse中选择File -&gt; New -&gt; Other -&gt; Plug-in ...

    Eclipse Rcp

    RCP应用通常拥有和Eclipse类似的外观与操作体验,例如动态的菜单栏(Menubar)、工具栏(Toolbar)、编辑器(Editor)、视图(View)、工作台窗口(WorkbenchWindow)以及工作区(WorkSpace)等。这些组件共同构成了...

    Eclipse开发技术详解 源码

    3. **透视图(Perspective)**:透视图定义了不同工作模式下的视图和编辑器布局。源码分析能让我们明白如何定义新的透视图,以及如何在不同透视图之间切换。 4. **视图(View)和编辑器(Editor)**:Eclipse的视图...

    Eclipse中文教程

    3. Eclipse 的项目管理和编辑功能: - 项目与资料夹:Eclipse 中的项目可以视为代码和其他资源的容器。资料夹是项目结构中的基本元素,用来组织源代码、文档、配置文件等资源。 - 按钮和快捷操作:用户可以通过...

    Eclipse IDE Pocket Guide

    在Eclipse IDE中,用户界面主要由透视图(Workbench Perspective)构成,其中包括了编辑器(Editor),视图(View)和透视图(Perspective)。透视图是Eclipse的一种工作空间布局,可以按照不同类型的开发任务进行定制。例如...

    Eclipse插件开发之入门和进阶

    3. 视图和编辑器:Eclipse插件可以创建自定义视图(View)和编辑器(Editor)。视图用于显示信息,编辑器用于编辑文件或数据。它们可以通过菜单、工具栏按钮或其他视图中的链接触发。 4. 事件模型:Eclipse的事件...

    Eclipse RCP开发详解

    Eclipse RCP由多个组件构成,包括Workbench、Perspective、View、Editor、Command和Handler等。**Workbench**是应用程序的主要工作区,它管理窗口、视图和编辑器。**Perspective**定义了工作区的布局,可以根据不同...

    Eclipse插件开发文档

    4. 可视化元素:如视图(View)、透视图(Perspective)、编辑器(Editor)等的定义和实现。 四、扩展点和贡献点 Eclipse插件通过扩展点(Extension Point)和贡献点(Extension)机制实现功能扩展。扩展点是...

Global site tag (gtag.js) - Google Analytics