- 浏览: 498350 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
devon.k:
推荐的一种解决方案:https://developer.jbo ...
JBoss应用遇到问题记录 -
liuzl121:
楼主你好,我遇到了你说的第一个问题,能不能详细一些?
JBoss应用遇到问题记录 -
showzh:
...
MySQL5.1列类型 -
zijie110:
...
使用SpringSide的PropertyFilter无法实现 where 属性名1 like '%值1%' or 属性名1 like '%值2%' 的效果 -
JAVA-JVM:
您好,我看了您的一篇文章“用Maven构建Flex4项目实践记 ...
用Maven构建Flex4项目实践记录
----------------------------------------------------------------------------------------------
学习:http://www.blogjava.net/youxia/archive/2006/11/20/82388.html
----------------------------------------------------------------------------------------------
1. 以编辑 ApplicationActionBarAdvisor.java 这个类的方式进行:
1) 编写菜单action类:
package hellorcp.action; import hellorcp.dialog.FirstDialog; import org.eclipse.jface.action.Action; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; public class FirstAction extends Action implements IWorkbenchAction { private IWorkbenchWindow workbenchWindow; public FirstAction(IWorkbenchWindow window) { if (window == null) { throw new IllegalArgumentException(); } this.workbenchWindow = window; } public void run() { // make sure action is not disposed if (workbenchWindow != null) { // 在这里添加功能 FirstDialog dg = new FirstDialog(workbenchWindow.getShell()); dg.open(); } } public void dispose() { workbenchWindow = null; } }
2) 该菜单的动作为打开对话框,故还需编写对话框类:
package hellorcp.dialog; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Dialog; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class FirstDialog extends Dialog { protected Shell shell; private int result; public FirstDialog(Shell parent, int style) { super(parent, style); } public FirstDialog(Shell parent) { this(parent, SWT.NONE); } public int open() { createContents(); shell.open(); shell.layout(); Display display = getParent().getDisplay(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } return result; } protected void createContents() { shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); shell.setSize(150, 70); shell.setText(" 第一个对话框 "); final Button okButton = new Button(shell, SWT.NONE); okButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { result = 1; shell.dispose(); } }); okButton.setText(" OK "); okButton.setBounds(10, 10, 48, 22); final Button cancelButton = new Button(shell, SWT.NONE); cancelButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { result = 2; shell.dispose(); } }); cancelButton.setText(" Cancel "); cancelButton.setBounds(89, 10, 48, 22); } }
3) 编辑方法makeActions, 注册菜单action; 然后编辑方法 fillMenuBar 画出菜单:
package hellorcp; import hellorcp.action.FirstAction; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; import org.eclipse.ui.application.ActionBarAdvisor; import org.eclipse.ui.application.IActionBarConfigurer; public class ApplicationActionBarAdvisor extends ActionBarAdvisor { private IWorkbenchAction action1; private IWorkbenchAction action2; public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) { super(configurer); } protected void makeActions(IWorkbenchWindow window) { action1 = new FirstAction(window); action1.setText("FirstMenu1"); action1.setId(action1.getClass().getName()); register(action1); action2 = new FirstAction(window); action2.setText("FirstMenu2"); action2.setId(action2.getClass().getName()); register(action2); } protected void fillMenuBar(IMenuManager menuBar) { MenuManager newMenu = new MenuManager("第一个菜单", "hellorcp.firstmenu1"); menuBar.add(newMenu); newMenu.add(action1); MenuManager newMenu2 = new MenuManager("第一个菜单", "hellorcp.firstmenu2"); menuBar.add(newMenu2); newMenu.add(action2); } }
4) 运行效果如下图:
2. 以编辑 plugin.xml 的方式添加菜单:
1) 编写菜单action类:
package hellorcp.action; import hellorcp.dialog.FirstDialog; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.IWorkbenchWindowActionDelegate; public class Action2 implements IWorkbenchWindowActionDelegate { private IWorkbenchWindow window; public void dispose() { // TODO } public void init(IWorkbenchWindow window) { // TODO this.window = window; } public void run(IAction action) { // TODO FirstDialog dg = new FirstDialog(window.getShell()); dg.open(); } public void selectionChanged(IAction action, ISelection selection) { // TODO } }
2) 双击 plugin.xml 打开 Extensions 编辑窗口,点击 "All Extensions" 下的 "Add..." 打开 Extension 选择窗口,并选择 org.eclipse.ui.actionSets, 如下图:
3) 回到 Extensions 编辑界面,选中"org.eclipse.ui.actionSets",并在右侧 "Extension Details" 的 "ID"、"Name" 中输入内容,保存,如下图:
4) 点击 "plugin.xml" 选项卡,可以看到该文件中出现了如下代码:
<extension id="hellorcp.actionset" name="菜单" point="org.eclipse.ui.actionSets"> </extension>
直接将该片段编辑为如下内容:
<extension id="hellorcp.actionset" name="菜单" point="org.eclipse.ui.actionSets"> <actionSet description ="第一个扩展" id ="RCP_Start.actionSet1" label ="RCP_Start.actionSet1" visible ="true"> <action class ="hellorcp.action.Action2" icon ="icons/alt_window_16.gif" id ="RCP_Start.action2" label ="第二个菜单项" menubarPath ="hellorcp.firstmenu/additions" style ="push" toolbarPath ="additions" tooltip ="第二个菜单项的按钮" /> </actionSet> </extension>
5) 再次切换到 "Extensions" 选项卡,可以看到相应内容也出现了,如下图:
6) 运行程序,效果如下图:
注:需要将类 ApplicationWorkbenchWindowAdvisor 方法 preWindowOpen() 中的 configurer.setShowCoolBar(false); 改为 configurer.setShowCoolBar(true); 才会出现该图标菜单。
发表评论
-
Eclipse RCP开发记要
2012-07-05 20:21 1329Eclipse RCP开发学习——一些基础概念 Ec ... -
《Eclipse插件开发学习笔记》要点摘记
2010-08-28 18:40 1214一、Chapter 3. SWT编程基础 1. 开发多 ... -
实用的SWT代码片段收集记录
2010-07-01 18:54 12181. 窗体相对屏幕居中 shell.setLocation( ... -
SWT开发入门学习笔记——01.Hello SWT
2010-06-19 23:36 1650创建一个典型的 SWT 应 ... -
Eclipse RCP开发学习——学习资源收集
2010-03-12 11:15 1474某位达人的学习整理,很好: 简单RCP框架源码分析 R ... -
GUI开发之AWT、Swing、SWT和JFace的比较
2010-03-12 10:46 1454------------------------------- ... -
Eclipse RCP开发学习——一些基础概念
2010-03-12 10:07 1437------------------------------- ... -
Eclipse RCP开发插件—— Visual Editor安装
2010-03-10 11:15 6640------------------------------- ... -
Eclipse RCP插件使用记录索引
2010-03-10 11:03 1526------------------------------- ... -
Eclipse RCP开发入门学习笔记——07.小结
2010-03-02 13:52 1478跟着“海边沫沫”的系列文章进行了入门学习,对RCP的开发有了个 ... -
Eclipse RCP开发入门学习笔记——06.OpenGL
2010-03-02 13:18 2154------------------------------- ... -
Eclipse RCP开发入门学习笔记——05.2D绘图
2010-03-02 11:08 3623------------------------------- ... -
Eclipse RCP开发入门学习笔记——04.在Windows中使用Active X控件
2010-03-02 09:47 1682------------------------------- ... -
Eclipse RCP开发入门学习笔记——03.视图
2010-03-02 09:08 2296------------------------------- ... -
Eclipse RCP开发入门学习笔记——01.Hello RCP
2010-02-26 15:00 4323最近急于想要了解桌面客户端开发的方方面面,除了在刚踏入工作岗位 ...
相关推荐
eclipse rcp 插件开发学习笔记.pdf 15-24章
eclipse rcp 插件开发学习笔记.pdf 1-14章
1.2 ECLIPSE RCP 建设风格——插件,扩展和扩展点 ..................................................................... 9 1.3 RCP与PLUGIN ....................................................................
Eclipse RCP允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序,可重用Eclipse中已存在的方法和编码模式。俗话说,万事开头难。Eclipse RCP入手可能会比较困难、费时。接下来我们将主要讲述如何让RCP工作. ...
Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT Eclipse RCP开发教程,RCP入门教程,教你如何使用SWT
一个 Eclipse RCP 的入门教程
Eclipse RCP 开发资料打包下载 目录如下: RCP程序设计.pdf(推荐) Addison.Wesley.Eclipse.Rich.Client.Platform.Designing.Coding.and.Packaging.Java.Applications.Oct.2005.chm Eclipse+RCP入门.pdf example_...
ECLIPSE RCP应用系统开发方法与实战.pdf ECLIPSE RCP应用系统开发方法与实战.pdf
网络中最全面最合适学习或开发...包含eclipse rcp开发入门教程; eclipse rcp基础教程;eclipse rcp开发自学教程; eclipse rcp开发培训教程及ppt等相关资料;教程中包含一步步操作实例,包含对开发原理的讲解与说明;
最近抽些时间,更新到eclipse3.6上来,既作为为广大Eclipser入门plugin/RCP开发的一个方便之门,也是对自己近年来学习的一个总结吧。 每一章都会单独提取出来,并尽可能的独立于其他章节,更新中的源代码工程也会...
通过例子学习EclipseRCP开发通过例子学习EclipseRCP开发
1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主...... 5 1.3 什么是Eclipse?...... 6 1.3.1 工具与应用程序的集成平台..... 6 1.3.2 Java开发...
eclipse rcp应用系统开发方法与实战源代码.zip
[Eclipse.RCP深入浅出].Jeff.McAffer等.扫描版.pdf 还有其他两本在我的资源分享页面.
Eclipse RCP入门,初级的RCP开发介绍。
rcp org.eclipse.ui.newWizards扩展点例子,模仿新建java项目
eclipse RCP Plug-in开发自学教程 , 只要java基础好,自学没问题的。。。
org.eclipse.equinox.p2.examples.rcp.cloud.rarorg.eclipse.equinox.p2.examples.rcp.cloud.rarorg.eclipse.equinox.p2.examples.rcp.cloud.rar
《Eclipse RCP深入浅出》内容简介:Eclipse不只是一个单纯的流行IDE,其Rich ...《Eclipse RCP深入浅出》清楚展示了Eclipse RCP的细枝末节,全程实录了如何借助于Eclipse RCP设计、编码和打包优秀的Java应用程序。