- 浏览: 512324 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
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 1374Eclipse RCP开发学习——一些基础概念 Ec ... -
《Eclipse插件开发学习笔记》要点摘记
2010-08-28 18:40 1268一、Chapter 3. SWT编程基础 1. 开发多 ... -
实用的SWT代码片段收集记录
2010-07-01 18:54 12451. 窗体相对屏幕居中 shell.setLocation( ... -
SWT开发入门学习笔记——01.Hello SWT
2010-06-19 23:36 1691创建一个典型的 SWT 应 ... -
Eclipse RCP开发学习——学习资源收集
2010-03-12 11:15 1531某位达人的学习整理,很好: 简单RCP框架源码分析 R ... -
GUI开发之AWT、Swing、SWT和JFace的比较
2010-03-12 10:46 1499------------------------------- ... -
Eclipse RCP开发学习——一些基础概念
2010-03-12 10:07 1481------------------------------- ... -
Eclipse RCP开发插件—— Visual Editor安装
2010-03-10 11:15 6699------------------------------- ... -
Eclipse RCP插件使用记录索引
2010-03-10 11:03 1561------------------------------- ... -
Eclipse RCP开发入门学习笔记——07.小结
2010-03-02 13:52 1501跟着“海边沫沫”的系列文章进行了入门学习,对RCP的开发有了个 ... -
Eclipse RCP开发入门学习笔记——06.OpenGL
2010-03-02 13:18 2194------------------------------- ... -
Eclipse RCP开发入门学习笔记——05.2D绘图
2010-03-02 11:08 3691------------------------------- ... -
Eclipse RCP开发入门学习笔记——04.在Windows中使用Active X控件
2010-03-02 09:47 1732------------------------------- ... -
Eclipse RCP开发入门学习笔记——03.视图
2010-03-02 09:08 2370------------------------------- ... -
Eclipse RCP开发入门学习笔记——01.Hello RCP
2010-02-26 15:00 4374最近急于想要了解桌面客户端开发的方方面面,除了在刚踏入工作岗位 ...
相关推荐
在提供的压缩包中,包含了关于Eclipse RCP插件开发15至24章的学习笔记,这些章节覆盖了多个关键主题,下面将对这些主题进行详细解读。 1. **第15章:对话框和向导(Dialogs and Wizards)** - 在Eclipse RCP中,...
RCP插件式开发方式可以重用eclipse中的方法和编码模式,提高开发效率和代码复用率。然而,Eclipse RCP的学习曲线可能较陡,需要一定的Java基础和Eclipse基础知识。 本教程旨在帮助读者自学Eclipse RCP插件式开发,...
以下是对Eclipse RCP插件开发学习笔记1-14章的详细知识点解析: 1. **第1章 Eclipse平台简介**: - Eclipse平台是基于OSGi(Open Service Gateway Initiative)标准的,提供了插件模型,使得开发者可以构建、运行...
7. **源代码实践**:压缩包中的源代码提供了实际的开发示例,通过分析和运行这些代码,可以加深对Eclipse RCP开发的理解,学习如何将理论知识转化为实际应用。 8. **调试和测试**:Eclipse作为强大的IDE,提供了...
1.2 ECLIPSE RCP 建设风格——插件,扩展和扩展点 ..................................................................... 9 1.3 RCP与PLUGIN ....................................................................
### Eclipse RCP 开发入门详解 #### 一、Eclipse RCP 概述 Eclipse Rich Client Platform (RCP) 是一种基于Java的框架和技术集合,用于构建具有丰富用户体验的应用程序。Eclipse RCP 提供了一种灵活的方式来构建...
"使用Eclipse RCP进行桌面程序开发(二):菜单、工具栏和对话框 .doc"则专注于用户界面(UI)元素的创建和管理,包括如何定义菜单、工具栏,以及创建自定义对话框。这些组件是用户与应用程序交互的关键部分,开发者...
本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...
### 通过例子学习Eclipse RCP开发 #### Eclipse RCP概览 Eclipse RCP(Rich Client Platform,富客户端平台)是一种基于Java的框架和技术集合,用于构建具有丰富用户界面的应用程序。它允许开发者创建高度可定制且...
### Eclipse RCP 入门详解 #### 一、Eclipse RCP 概述 **Eclipse RCP**(Rich Client Platform)是一种构建丰富客户端应用程序的框架,它利用Eclipse平台的强大功能来创建高度定制化的桌面应用程序。通过RCP,...
**Eclipse RCP 开发教程** Eclipse Rich Client Platform (RCP) 是一个用于构建桌面应用程序的框架,它基于 Eclipse IDE ...开发者可以通过学习和实践,逐步掌握 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开发入门教程; eclipse rcp基础教程;eclipse rcp开发自学教程; eclipse rcp开发培训教程及ppt等相关资料;教程中包含一步步操作实例,包含对开发原理的讲解与说明;
这本书《Eclipse RCP系统开发与实战》显然是针对想要学习和掌握Eclipse RCP技术的程序员,通过实战案例帮助读者深入理解Eclipse RCP的开发过程。 1. **Eclipse RCP基础知识** - Eclipse RCP是一种基于Java的开发...
通过阅读《RCP开发入门》,读者将能全面了解Eclipse RCP的基本概念和开发流程,为进一步深入学习和实践打下坚实的基础。无论你是对桌面应用开发感兴趣的Java开发者,还是希望通过Eclipse RCP来构建企业级应用,这...
在Eclipse RCP(Rich Client Platform)开发中,创建自定义的新建项目向导是提升用户体验和增强应用程序功能的重要步骤。`rcp自己通过扩展点新建java项目`这个主题涉及了如何利用Eclipse的插件体系和扩展点机制来...
《ECLIPSE RCP应用系统开发方法与实战》是一本深入探讨Eclipse Rich Client Platform (RCP) 开发技术的书籍。Eclipse RCP是Eclipse IDE的一部分,它提供了一个框架,允许开发者构建功能丰富的桌面应用程序。这本书...
通过本文的学习,我们不仅了解了Eclipse RCP插件开发的基本过程,还掌握了不同的运行模式及其应用场景。无论是对于初学者还是有一定经验的开发者来说,掌握这些知识都将对实际工作大有裨益。希望本文能够帮助大家更...
1.1 Eclipse作为应用程序开发 工具的宿主...... 4 1.2 不仅仅是工具的宿主,Eclipse 还作为客户端应用程序的 宿主...... 5 1.3 什么是Eclipse?...... 6 1.3.1 工具与应用程序的集成平台..... 6 1.3.2 Java开发...