workbench的菜单、工具栏
1扩展org.eclipse.ui.actionSets。该action的label(操作集合的名称)显示在“定制透视图”的对话框中。
2创建menu(如果将action插入到已有的菜单中,不需要创建)。label就是菜单在菜单栏中的名字。
3.创建action。指定action在菜单上的位置,在toolbar上的位置。
其中retarget表示重定目标操作时需要的属性,当试图或编辑器中需要使用全局工作台菜单或工具栏中的操作时,将retarget设置为true。
enableFor的取值:!、?、+、n、*、2+/multiple
view中的action
扩展org.eclipse.ui.viewActions.这些action放在View菜单或是工具栏中。
viewAction:viewContribution
其内的上下文菜单同样扩展自popmenu:viewerContribution、objectContribution见弹出菜单popmenu扩展点。
editor的action
扩展org.eclipse.ui.editorActions.
给editor添加顶层工作台菜单,与一般的工作台菜单不同,编辑器的工作台菜单只有当该编辑器使用时,才会出现(或enable)。其中的targetID值为org.eclipse.ui.DefaultTextEditor.
给编辑器添加上下文菜单时,其popmenu中的viewerContribution中的targetID值为#TextEditorContext,eclipse默认文件编辑器上下文菜单标识符,见弹出菜单popmenu扩展点。
菜单的快捷键
快捷键可以用编程方式实现,也可以通过添加扩展点方式。
由于eclipse的开源性,实现不冲突的快捷键需要解决3个问题。
1 相同功能操作,不同的开发者有了不同的快捷键。
2 不同的功能操作,有了相同的快捷键。
3 快捷键可能与平台定义的快捷键冲突。
为此,引入org.eclipse.ui.commands扩展点。命令与键绑定、操作和处理程序相关,但不定义操作的实现。该实现由操作本身来完成。
还需要添加扩展点org.eclipse.ui.bindings,在该扩展点新增key元素,包括sequence(键组合)、schemeId(激活该快捷键使用的配置,一般情况将键绑定添加到默认的eclipse的配置org.eclipse.ui.defaultAcceleratorConfiguration)、contextId(激活该快捷键所使用的上下文标识符,默认使用org.eclipse.ui.context.windows)、commandId(命令)。
最后将commandId添加到菜单属性中的definitionId中。
菜单扩展点org.eclipse.ui.menus
org.eclipse.ui.menus (Eclipse3.3)
——负责显示。如菜单的位置、文字、图标、提示信息、样式、是否可见等。
org.eclipse.ui.commands (Eclipse2.1)
——负责定义菜单ID。同时可以指定实现该菜单行为的类。
org.eclipse.ui.handlers (Eclipse3.1)