【原创】开发视图插件(十六)
上一篇 / 下一篇 2008-07-04 12:50:38 / 个人分类:Eclipse插件开发
zG+E!UJ0视图是工作台页面内的可视组件,通常用来浏览信息的层次结构(如工作空间)、打开编辑器或显示活动编辑器的属性。用户可以通过“Window”→“Show view”菜单显示视图,也可以从视图局部标题栏关闭视图。
+T E Bbg%[8dJ&V0\0视图分类
ITPUB个人空间:dl7pA4j0Q
在Eclipse中用户可以在同一时间打开多个视图(编辑器在同一时间只能打开一个),每个视图能够有自己的位置布局信息,Eclipse会根据上一次视图布局的信息初始化视图。
Ro$QG$Ym0Eclipse视图一般来说有两种表现形式,一种是用户通过视图扩展点“org.eclipse.ui.views”实现自定义的视图,另一种是实现Eclipse中视图提供的扩展,用户可以通过实现Eclipse的相应接口实现,如Outline视图和Properties视图,如图1所示。
)e7h[MHllyTF}0
7\i }l-\] G2_0O:^5N_0图1 Eclipse视图
在Eclipse中,用户可以按自己的要求建立自己的视图,即扩展Eclipse的视图扩展点。也能实现Eclipse的接口,通过Eclipse的Adapter机制实现Eclipse的扩展。其中,Outline和Properties视图也是通过这种方式实现的,在后面的章节会介绍Outline视图和Properties视图的实现。ITPUB个人空间:vOO3{w
当用户定义了自己的视图后能通过“Window”→“Show view”菜单打开自定义的视图。如图2所示。ITPUB个人空间8gZ8W#w$u3k u
!?.v ?1xE\V/L0图2 选择视图
ITPUB个人空间T!Pcl]V.r
常用视图可实现的功能
;{9w.x*?
IzX
LX0Eclipse的视图就功能来说一般有两种形式,一种是功能性视图,例如Java的Default视图,default负责用树形目录组织Java的项目结构,并且能通过双击节点在编辑器中打开相应的资源。另一种视图是辅助型的视图,例如Console负责控制台信息的显示。ITPUB个人空间^m1e7R3o
不管是哪种类型的视图,它们的实现原理是一样的。在Eclipse中视图可以实现的功能有如下一些。ITPUB个人空间 ~`
kZHE@]zm5bXv
右键菜单:可以通过视图中的树、表弹出的菜单完成相应的功能。ITPUB个人空间C'nV$DMy,RTJ
工具栏:可以定制视图的工具栏,完成当前视图的功能。
i|m!_,p7by9m5R0 表格:视图中可以加入表格以显示相应的表结构信息。
B.iy(R]$QZ3\0 树:视图中可以加入树结构以显示相应的树结构信息。ITPUB个人空间AX7It-G
Log 输出:视图中可以直接输出信息。ITPUB个人空间y4I!Jf)~#h;TH
这些只是一般在Eclipse中可以看到的实现,用户可以把视图当做操作Eclipse接口。
!_2Y0h5?+Hq"H8s2r
I*S0提示:任何SWT的组件都可以作为视图的一部分,用户可以按自己的需求定制自己的视图。
ITPUB个人空间F!w^/UEb6K
创建“Tree viewer”视图
ITPUB个人空间
|)Q{Y5O#z5o$E+{
创建“Tree viewer”视图插件项目,步骤如下:ITPUB个人空间0J8Q+Vc:?|Apkk+M
1. 打开新建向导。
P(d
FoJ;m0单击Eclipse的“File”→“New”→“Other”菜单项,在弹出的对话框中选择Select对话框左边的 Plug-in Development 向导。
P/h7{&ivE o2r02. 建立一个空的插件项目。ITPUB个人空间 ~8fC5C(t(j
输入插件工程的名字为“com.free.view. treeview”。
V6o9~ m6]2b#dj0 输入插件的ID为“com.free.view.treeview”。
d.f!RKQ0 输入插件的Name为“helloworld Plug-in”。ITPUB个人空间.S4Q4O$\8X!_M
选择使用模板建立插件项目,如图3所示。
+qPmHf*Y:x0 单击“Next”按钮,选择“Tree viewer”选项。
8P5U|"@ Q5B5TE2]U#V0 单击“Finish”按钮,完成项目的建立。ITPUB个人空间2A8W8QE {"^s~ y
ITPUB个人空间{\/j/D0Ws0s
图3 选择插件模板对话框
DO(L6?4c:|!T0通过这种方式建立了一个包含JFace的“Tree viewer”组件的插件项目,此项目已经具备了视图插件常用的功能。
8qUz5Rz7]/`0视图扩展点
ITPUB个人空间8jNBxl7L
通过插件模板创建了“Tree viewer”视图插件,此插件只实现了一个视图分类节点和视图节点。如例程1所示。ITPUB个人空间Ok!ccne]g
例程1 plugin.xmlITPUB个人空间B!@_@IbRT[
<plugin>
N
},mI)V%z6J*w0
:_5W M"sRi-fmRT0<extensionITPUB个人空间{"h+Dm/q/q
point="org.eclipse.ui.views">ITPUB个人空间fZ)mL s)Y
<categoryITPUB个人空间m,mB1p:X:w^+H
name="tree view"
)JtP|
`| M0|b0id="com.free.view.categoryall">
~.K+wZ(lZ0</category>ITPUB个人空间sfCc!q7_ky*x,WU
<view


