Eclipse插件开发之添加简单的GUI元素

2016-02-19 12:00 44 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享Eclipse插件开发之添加简单的GUI元素教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - 编程语言 】

编写Eclipse插件的方法很简单,你只需要编写一个应用程序,并把它"添加"到Eclipse上。但是与编写音乐类似,在能够创作一部著作之前,首先必须学习大量的相关知识。

本文将讨论少许几个简单的GUI元素:

· 工具条按钮

· 菜单项

· 对话框

为了使用这些元素,我们将稍微修改已有的插件,顺便编写一个可供使用的工具类。

扩展点(Extension Points)

我们不能随意地向Eclipse用户界面的任何地方添加窗口小部件,只能在特殊的、指定的、有记载的位置添加。这些位置被称为扩展点(extension points)。在基本的Eclipse安装中存在数以百计可供使用的扩展点。插件自身也可以发布新的扩展点。我们来看一看列表中的扩展点。打开Invokatron项目(见天极网《Eclipse插件开发快速入门》)中的plugin.xml文件,进入"扩展"(Extensions)属性页。"所有扩展"树列出了插件的不同的窗口部件,根据它们出现时所在的扩展点来分类。例如Invokatron编辑器位于编辑器(org.eclipse.ui.editor)扩展点中。图1显示了这个属性页。

图1:扩展页

现在请点击"添加"(ADD)按钮,出现了图2所示的列表。

图2:新增扩展向导,扩展列表

上下滚动这个列表可以看到很多可供使用的扩展点。你可能注意到了有两种类型的扩展点:带有扩展模板的(用加号标识)和不带扩展模板的。大多数经常用到的扩展点都带有用于辅助开发扩展的模板。图2中选择的扩展点Action Set,带有一个叫做"Hello World"操作集的模板。当你选择某个模板的时候,会出现简短的描述。"下一个"页面将询问模板使用的参数。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

现在请关闭向导并返回到"扩展"属性页。选择"Invokatron编辑器"。在这个属性页中,你可能注意到了我们在向导中为Invokatron编辑器输入的信息。正常的扩展需要一个唯一的标识符(ID字段)、一个供显示的名称(Name字段)和它所属的扩展点(Point字段)。从模板中建立的扩展(例如Invokatron编辑器)需要更多的参数。没有模板的扩展点也需要更多的信息,但是这些信息只能在文本编辑器中输入。

添加工具条按钮

现在我们已经了解了扩展点是什么,让我们来添加一个扩展吧。我们首先添加的是一个工具条按钮。这个按钮将调用我们前面建立的新的Invokatron向导。

添加工具条按钮有三个步骤:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

1.声明一个新扩展。

2.用特定的标记来扩充该声明。

3.编写操作委托类

1.声明一个新扩展

我们已经知道怎样实现这个步骤了。简单地返回到扩展点下的plugin.xml编辑器。点击"添加"。工具条按钮在org.eclipse.ui.actionSets扩展点下面。不要使用模板,直接点击"完成"。输入下面一些内容:

· Id: NewInvokatronAction

· Name: New Invokatron Document Action

· Point: (使用默认值:org.eclipse.ui.actionSets)

返回plugin.xml属性页,Eclipse给这个文件添加了新的代码片断。

2.用特定的标记来扩充该声明

这个新扩展几乎毫无内容。我们在下面添加一些标记(tag)。你知道可以使用哪些标记吗?你可以右键点击"所有扩展"树中的元素,选择"新增"菜单,会得到一个列表。你也可以查看Eclipse文档。

现在我们看到自己可以在<extension>标记内部添加一个<actionSet>标记。它可以包含零个或多个<menu>标记,后面跟着零个或多个<action>标记,还可以选择使用<description>标记。但是其中最重要的标记是<action>。它可以同时描述工具条按钮和菜单项。BR下面是我们将添加的工具条按钮的XML代码片断。其中的新代码是黑体的。我们在后面会剖析这段代码。

<extension id="NewInvokatronAction"

name="New Invokatron Document Action"

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

<actionSet id="invokatron.actionSet"

label="Invokatron Actions"

visible="true">

<action id="invokatron.wizard.RunWizardAction"

toolbarPath="org.eclipse.ui.workbench.file/new.ext"

icon="icons/InvokatronIcon16.gif"

tooltip="Starts the New Invokatron Document Wizard."

class="invokatron.wizard.RunWizardAction">

</action>

</actionSet>

</extension>

所有这些操作都可以在plugin.xml编辑器中用图形化的方式来完成,但是我们查看XML以明确字段的完整文本内容。此处的<actionSet>标记只含有一个操作(action)。操作表现为菜单中的项或工具条中的按钮的对象。操作的属性实在太多了,你可以在在线文档中查阅。其中最有趣的一些属性是:

· id:操作的唯一标识符。可以用于在运行时引用操作。

· toolbarPath:放置工具条按钮的位置。

· icon:工具条按钮或菜单项左侧显示的图标。它是一个与开发目录关联的16×16的GIF文件。请把 图片存放到Invokatronicons文件夹中。这个文件夹已经被包含到二进制建立路径中,因此该图标将放入插件的文档目录中。

· tooltip:当鼠标停留在工具条按钮上的时候出现的文本内容。

· class:这些操作的完整的合格的类名称。
关于工具条路径

工具条路径(toolbar path)指出了添加工具条按钮的位置。由于任何人都可以建立工具条,而且有时候一个按钮可以包含子选项,因此我们用分层的标识符列表来访问这个位置。下面是经常用到的工具条列表和它们的路径:

· 文件: org.eclipse.ui.workbench.file 带有一些公共的分组标志(你可以添加按钮的更多的位置):

o "新建"区:new.ext

o "保存"区:save.ext

o "打印"区:print.ext

o "建立"区:build.ext

· 导航: org.eclipse.ui.workbench.navigate

· 载入: org.eclipse.debug.ui.launchActionSet

· 编辑器表示:org.eclipse.ui.edit.text.actionSet.presentation

· 搜索: org.eclipse.search.searchActionSet

· Java元素建立:org.eclipse.jdt.ui.JavaElementCreationActionSet

· 组: Team

· CVS: CVS

如果你提供的工具条ID不带有标志ID,你的按钮就会被添加到紧挨着这个工具条的一个新工具条之上。接着这个新工具条就可以被添加到Eclipse GUI上了。有时候你会看到使用工具条路径"正常的(Normal)"的插件。这是旧的名称转换。在Eclipse 3中这样使用的时候会建立一个叫作"Normal"的新工具条。如果你建立一个新工具条ID,你的工具条会被添加到"文件"工具条后面。

请注意"文件"工具条的"新建"组标志。这是我们添加自己的按钮的地方。由于标志ID是new.ext,完整的路径就是:

org.eclipse.ui.workbench.file/new.ext

3.编写操作委托类

最后一步是编写少量的用于实现操作的Java。这个类称为操作委托。

package invokatron.wizard;

来源:http://www.tulaoshi.com/n/20160219/1599470.html

延伸阅读
引言 前面几篇文章已经介绍了Eclipse及其工作环境的安装、配置过程,并完成各项相关预备工作。因此从本文开始将讲述如何使用前面配置好的Eclipse开发环境来创建J2ME项目,开始真正的J2ME开发之旅。由于这是创建的第一个J2ME程序,按照程序开发的惯例,这头把交椅自然又是非"Hello World"莫属了。HelloWorld虽然功能简单,但是麻...
在本文里,通过编辑一个小小的可以将温度从摄氏转换到华氏的程序,我们将亲身体会到C# GUI开发过程。阅读本文最基本的要求是您要具有C#及面向对象程序设计的基本知识。本文的写作宗旨是介绍C#,如果您希望编译或是运行本文所列举的程序,则需要有.NET Framework SDK的支持。 创建一个视窗应用程序主要包括以下的基本步骤:创建适合...
标签: Web开发
对于想进行Dreamweaver扩展(插件)开发的用户来说,一般需要有这样的前提知识: 1,需要了解到Dreamweaver扩展(插件)制作的基本步骤,即了解扩展文件(.mxp)在打包前的文件结构及文件内容。可参看使用扩展管理器帮助文档(Macromedia扩展管理器菜单帮助); 2,应了解打包前的扩展安装文件(.mxi)的结构及相关语法应用,可参考Dreamweav...
标签: Java JAVA基础
Hibernate是对JDBC的轻量级对象封装,Hibernate本身是不具备Transaction处理功能的,Hibernate的Transaction实际上是底层的JDBC Transaction的封装,或者是JTA Transaction的封装,下面我们详细的分析: Hibernate可以配置为JDBCTransaction或者是JTATransaction,这取决于你在hibernate.properties中的配置: #hibe...
标签: Web开发
经常有人询问一些技巧,因此干脆写这么一篇文章给各位jQuery爱好者,算是抛砖引玉吧。 a)样式 很多人会认为样式是个很复杂的东西,需要沉着冷静的心态加上非凡的审美观才能设计出赏心悦目的UI,抛开图片设计不说,其实css也就是那么些属性:position,margin,padding,width,height,left,top,float,border,background... UI设计的漂亮与...

经验教程

270

收藏

6
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部