java-RCP
来源:互联网 发布:mac剪切图片 编辑:程序博客网 时间:2024/05/29 03:12
Rich Client Platform富客户平台
eclipse3.7下:
ApplicationActionBarAdvisor:简单的说这个类是用来配置程序的菜单栏和工具栏的
ApplicationWorkbenchAdvisor:这个类是RCP程序的Workbench,RCP是Eclipse的简化,但是所有的组件都是和Eclipse一样的。一个RCP程序也只能有一个Workbench。
ApplicationWorkbenchWindowAdvisor:这个类是RCP的WorkbenchWindow,隶属于当前的Workbench。可以有多个WorkbenchWindow。
Perspective:是我们新建的RCP的默认透视图。可以在这个类中指定View和Editor的排布。
plugin.xml:这个文件是我们插件的配置文件,包括我们的插件用了哪些其他的插件,具体是怎么配置这些插件的等等。
build.properties:这个文件是用来配置我们插件的编译信息的,用来指定如何编译我们的插件。
MANIFEST.MF:这个文件用来指定我们插件的元数据,比如插件的版本信息。一般来说,这个文件不用手动的去更改。
具体实现:
package demo;import org.eclipse.jface.action.Action;import org.eclipse.jface.resource.ImageDescriptor;import org.eclipse.swt.SWT;import org.eclipse.swt.widgets.MessageBox;import org.eclipse.ui.IWorkbenchWindow;import org.eclipse.ui.internal.IWorkbenchGraphicConstants;import org.eclipse.ui.internal.WorkbenchImages;public class HelloAction extends Action {private IWorkbenchWindow window;public HelloAction(IWorkbenchWindow window) { //由于Action是一个UI元素,所以往往创建一个带IWorkbenchWindow参数的构造函数,以便在Action内部调用this.window = window;this.setText("Hello");ImageDescriptor imgDes = WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_ETOOL_EDITOR_TRIMPART);//用Eclipse Workbench自带的图标。this.setImageDescriptor(imgDes);}public void run() {MessageBox mb = new MessageBox(window.getShell(), SWT.OK);mb.setMessage("Hello world!");mb.setText("Demo");mb.open();}}
package demo;import org.eclipse.jface.action.ICoolBarManager;import org.eclipse.jface.action.IMenuManager;import org.eclipse.jface.action.IToolBarManager;import org.eclipse.jface.action.MenuManager;import org.eclipse.jface.action.ToolBarContributionItem;import org.eclipse.jface.action.ToolBarManager;import org.eclipse.swt.SWT;import org.eclipse.ui.IWorkbenchWindow;import org.eclipse.ui.application.ActionBarAdvisor;import org.eclipse.ui.application.IActionBarConfigurer;public class ApplicationActionBarAdvisor extends ActionBarAdvisor {HelloAction helloAction;public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {super(configurer);}protected void makeActions(IWorkbenchWindow window) { //用来初始化action的,所有要用到的action可以都在这里初始化super.makeActions(window);helloAction = new HelloAction(window);}protected void fillMenuBar(IMenuManager menuBar) {super.fillMenuBar(menuBar);MenuManager demoMenu = new MenuManager("&Demo", ""); //菜单栏增加Demo子菜单,Demo有两个名为Hello的下拉按钮demoMenu.add(helloAction); demoMenu.add(helloAction);menuBar.add(demoMenu);}protected void fillCoolBar(ICoolBarManager coolBar) //工具栏增加Hello按钮{IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);coolBar.add(new ToolBarContributionItem(toolbar, "main"));toolbar.add(helloAction);}}
可以用同样的方法创建一个EditorPart,名字就叫HelloEditor。在editor上面放一个text组件吧,这样看起来像个editor,然后把HelloEditor的layout改成FillLayout。当然也要为HelloEditor添加一个ID属性。这里需要改一下Editor的init方法,否则editor无法正常运行。
this.setSite(site);//setSite是让editor能够使用workbench所提供的一些功能
this.setInput(input);
public void createInitialLayout(IPageLayout layout) {layout.addStandaloneView(helloview.ID, true,IPageLayout.LEFT, .50f, layout.getEditorArea()); //当前的Perspective添加一个独立的Viewlayout.getViewLayout(helloview.ID).setCloseable(false);//去除了关闭View的功}
设置并打开Editor
// TODO Auto-generated method stub
return "Hello";
}
// TODO Auto-generated method stub
return "Demo";
}
@Override
public void widgetSelected(SelectionEvent e) {
try {
getViewSite().getWorkbenchWindow().getActivePage()
.openEditor(new HelloEditorInput(), HelloEditor.ID);
} catch (Exception e2) {
System.out.println(e2);
}
}
});
导出rcp程序:
- java-RCP
- Java RCP
- java绝对路径(RCP)
- RCP 引用 java project
- RCP
- rcp
- RCP
- RCP
- RCP
- RCP
- rcp
- rcp
- RCP
- 定制SWT/RCP界面(java UI思路拓展rcp/swt)
- JAVA视频教程(三) - Plugin & RCP开发
- 如何快速开发Java RCP企业级项目
- 如何快速开发Java RCP企业级应用?
- Eclipse RCP “Caused by: java.lang.ClassNotFoundException”
- Matlab7.0安装之后Runtime Error警告解决办法
- 设置字符串中某一字为不同的颜色
- 《Linux4.0设备驱动开发详解》笔记--第十三章:Linux块设备驱动
- AndroidStudio应用调试技巧(下)
- Android:通过意图启动其他程序、Uri、setAction、setData、setDataAndType
- java-RCP
- oracle sql学习四
- 《Linux4.0设备驱动开发详解》笔记--第十四章:Linux网络设备驱动
- 【Android Error】Unable to execute dex: Multiple dex files define错误
- 收藏
- Html基础标签了解及用法(一)
- Java之第一个Java程序HelloWorld
- 删除链表的中间节点
- 数据结构课后题目源码