在Eclipse工作台上增加一个菜单是很简单的事情,插件可以使用 org.eclipse.ui.actionSets 扩展点来向工作台菜单和工具栏添加菜单、菜单项和工具栏项。同时,Eclipse工作台的插件开发环境还为实现org.eclipse.ui.actionSets 扩展点提供了Hello World模板,用于向Eclipse工作台的菜单中添加一个“样本操作”菜单和向工具栏增加一个“样本操作”按钮。但这个模板提供的菜单项只有一级,如何实现如下图所示的像Eclipse工作台已经具有的菜单项中多级结构呢?
其实不难,问题的关键在于正确设置菜单和工具栏的属性。下面,我们实现上图中的多级菜单项。
在Eclipse工作台创建一个插件项目,采用Hello World模板,项目名可定为简单的“menuplugin”,此外,我们不对模板生成的代码做任何的修改而只对配置文件plugin.xml做修改。
我们把模板对org.eclipse.ui.actionSets的扩展修改成如下的结构:
现在在同一个操作集下,有一个id为menu的目录项,标签为“目录”,另外有一个id为submenu的目录项,标签为“子目录”,用于当作“目录”这个目录项的子目录项。在“目录”和“子目录”这两个目录项下,我们定义了几个seperator,在名称为“目录”的目录项下,定义了两个seperator,名称分别是“slot1”和“slot2”;在名称为“子目录”的目录项下,定义了一个seperator,名称为“slot3”。此处,我们定义了四个action:“样本操作1”、“样本操作2”、“样本操作3”、“样本操作4”,分别用来放在“目录”目录项和“子目录”目录项下面。“样本操作1”和“样本操作2”这两个action直接放在“目录”目录项下,所以,对于它们的menubarpath,我们只需要类似于模板原来的设置把它设置为menu/slot1。我们来看一下“子目录”这个目录项如何成为“目录”这个目录项的子目录项:
像上图一样,我们设置“子目录”这个目录项的path属性值为menu/slot1。其中,menu是“目录”这个目录项的id,slot1是它所包含的一个seperator。这样就把“子目录”这个目录项当放到了“目录”这个目录项的slot1这个seperator下面了。当然,如果你不在“子目录”这个目录项中放入任何的action,这个目录项并不会显示出来。下面我们在“子目录”这个目录项中放入两个action,“样本操作3”和“样本操作4”。
如上图我们看到,“样本操作3”这个action的menubarpath属性被设置为:menu/submenu/slot3。其中menu是“目录”这个目录项的id,submenu是“子目录”这个目录项的id,而slot3是“子目录”这个目录项下面包含的一个seperator。
这样,“样本操作3”就被放到了“目录”这个目录项下面“子目录”这个子目录项下面的slot3这个seperator中了。
下面给出plugin.xml文件的内容,你可能需要注意一下标有“<---”的地方。
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
<extension
point="org.eclipse.ui.actionSets">
<actionSet
label="样本操作集"
visible="true"
id="menuplugin.actionSet">
<menu
id="menu" <---
label="目录"
>
<separator
name="slot1"> <---
</separator>
<separator
name="slot2"> <---
</separator>
</menu>
<action
class="menuplugin.actions.SampleAction"
icon="icons/sample.gif"
id="Acion1"
label="样本操作1"
menubarPath="menu/slot1" <---
tooltip="Hello,Eclipse world">
</action>
<action
class="menuplugin.actions.SampleAction"
icon="icons/sample.gif"
id="Acion2"
label="样本操作2"
menubarPath="menu/slot1" <---
tooltip="Hello,Eclipse world">
</action>
<menu
id="submenu"
label="子目录"
path="menu/slot2"> <---
<separator
name="slot3">
</separator>
</menu>
<action
class="menuplugin.actions.SampleAction"
icon="icons/sample.gif"
id="Action3"
label="样本操作3"
menubarPath="menu/submenu/slot3" <---
tooltip="Hello,Eclipse world">
</action>
<action
class="menuplugin.actions.SampleAction"
icon="icons/sample.gif"
id="Acion4"
label="样本操作4"
menubarPath="menu/submenu/slot3" <---
tooltip="Hello,Eclipse world">
</action>
</actionSet>
</extension>
</plugin>
对于工具栏的路径的设置应该可以采用类似的方法。关于菜单和工具栏路径的更多信息,你可以查看Eclipse帮助中《平台插件开发者指南》里《高级工作台概念》一章中的《菜单和工具栏路径》这一节。
分享到:
相关推荐
改进的多级树形菜单dtree,eclipse开发。mysql数据库,S2SH架构,有源码和jar包。 共两部分。这是第一部分
在Android开发中,构建多级树状菜单是一个常见的需求,特别是在构建导航系统或者展示层级关系数据时。本项目提供了一种使用原生Android ListView实现多级树菜单的方法,并且已经封装成了一个名为`otree.jar`的库。...
改进的多级树形菜单dtree,eclipse开发。mysql数据库,S2SH架构,有源码和jar包。 共两部分。这是第二部分
它提供了一个可自定义的、易于使用的API,使得开发者可以轻松地在Android界面上创建多级折叠/展开的节点,这对于展示目录结构、组织复杂的分类数据或构建导航菜单非常有用。 **AndroidTreeView详解:** 1. **基本...
struts hibernate树形菜单,只是简单的实现树形菜单,有一种业务逻辑没有考虑,就是当类别目录下同时拥有子目录和具体商品的时候只会显示子目录,而具体商品没显示,只需在标签处理类RecursionTag.java中的...
- 在 `org.eclipse.ui.menus` 扩展点中定义菜单贡献。 - 指定命令ID以将命令添加到特定菜单中。 - **示例**: ```xml allPopups="false" locationURI="menu:mainMenu?after=additions"> ``` 3. **在...
在Android开发中,"三级联动省市联动多级联动"是一种常见的功能,常见于地图应用、电商网站、生活服务类APP等,例如美团和58同城。这个功能涉及到多个选择项的联动更新,用户首先选择省份,接着根据省份选择城市,...
在IT行业中,前端开发经常会遇到需要展示层次结构数据的情况,比如组织架构、文件目录等,这时树形菜单就显得尤为重要。LayUI是一款优秀的前端框架,它提供了丰富的组件和样式,便于快速构建美观且功能强大的Web应用...
在Eclipse这样的集成开发环境(IDE)中,这一功能通常用于快速导航和管理复杂的代码结构。本篇文章将详细介绍Eclipse中的代码折叠工具——com.cb.eclipse.folding插件的使用方法。 Eclipse作为一个开源且高度可扩展...
3. **多级目录预览**:用户可以在不离开当前窗口的情况下,查看和展开文件夹的多层次结构,快速跳转到目标位置。 4. **快捷操作**:ExploreFile 提供了一些便捷操作,如直接打开文件、复制文件路径、重命名或删除...
这些图可能会展示下拉菜单在不同状态下的表现,如打开、关闭、悬停等。 6. **javascript**: 这个目录可能包含了JavaScript文件,这是一种脚本语言,用于增加网页的交互性。在这个项目中,JavaScript可能被用来实现...
可以使用递归辅助方法或Bootstrap等前端框架来实现多级菜单的样式化。 在实际开发中,你可能还需要考虑其他因素,如国际化支持,使菜单可以根据用户的语言偏好显示相应的文本。此外,通过结合AJAX技术,你可以实现...
在Android开发中,下拉菜单通常指的是Spinner组件,它是一个常用的UI控件,用于在有限的选项中让用户做出选择。Spinner提供了一个下拉列表,用户点击后会展示一系列可选项,用户可以选择其中一个并关闭列表。下面...
在实际部署和运行过程中,开发者需要确保Eclipse环境已经正确配置,包括JDK、Tomcat服务器、相关库的导入等。同时,为了系统能够正常运行,数据库的连接配置也必须准确无误,包括数据库URL、用户名和密码等信息。 ...
在Android开发中,创建一个类似QQ的“我的应用”菜单是一项常见的需求,这涉及到界面设计和数据展示的技巧。此项目实现的核心在于ListView内嵌GridView,这是一个复合视图的组合,能够有效地展示多级信息。下面我们...
- `MenuBar`是JavaFX中的一个类,它允许开发者创建一个多级的菜单结构,每个菜单项可以包含子菜单项。 - 菜单项由`Menu`对象表示,而子菜单项则由`MenuItem`对象表示。 - 使用`MenuBar`时,你需要将`Menu`对象...
这个组件能够帮助开发者轻松地管理和展示应用程序中的菜单结构,支持自定义样式和多级菜单,大大简化了在Struts项目中构建用户界面的工作。 Struts是一个开源的MVC(Model-View-Controller)框架,它被广泛用于Java...
LittlevGL是一个免费的开源图形库,提供了创建嵌入式GUI所需要的一切易于使用的图形元素,具有漂亮的视觉效果和低内存占用。具有功能强大的单元块,对输入设备支持较完善,同时具有低内存...3、eclipse开发环境搭建方法
系统介绍与美图 该版本支持多级菜单 部署方法 将 /src/main/resources/sql/jrbac.sql 数据库脚本运行在本地数据库 将 src/main/resources/jdbc.properties 中 jdbc.username=root jdbc.password=cheng ...