`
gdwrx_winson
  • 浏览: 131552 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

GMF context 菜单工具栏

阅读更多
转自http://blog.csdn.net/wu_07/archive/2009/06/21/4286300.aspx GMF 经验点滴积累(二)-菜单工具栏篇 收藏 一、增加主菜单和工具栏项(printPreviewAction) 1、在plugin.xml中配置contributionItemProvider扩展点。 view plaincopy to clipboardprint? <extension point="org.eclipse.gmf.runtime.common.ui.services.action.contributionItemProviders"><?gmfgen generated="true"?><contributionitemprovider class="providers.×ContributionItemProvider"><priority name="Low"></priority><partcontribution id="diagram.part.×DiagramEditorID"><partaction menubarpath="/file/print" id="printPreviewAction"></partaction></partcontribution></contributionitemprovider></extension> 2、在定义的×ContributionItemProvider.java中修改createAction方法,根据actionId.equals??的结果返回相应的Action。 view plaincopy to clipboardprint? protected IAction createAction(String actionId, IWorkbenchPartDescriptor partDescriptor) { if (actionId.equals(PrintPreviewAction.ID)) { return new RenderedPrintPreviewAction( new EnhancedPrintActionHelper()); } return super.createAction(actionId, partDescriptor); } 二、删除ContextMenu子项(addGroup、autoSizeAction) 1、利用扩展点的方法 view plaincopy to clipboardprint? <extension point="org.eclipse.gmf.runtime.common.ui.services.action.contributionItemProviders"><?gmfgen generated="true"?><contributionitemprovider class="providers.×ContributionItemProvider"><priority name="Low"></priority><popupcontribution class="diagram.part.DiagramEditorContextMenuProvider"><popupstructuredcontributioncriteria objectclass="..diagram.edit.parts.*DiagramEditPart"></popupstructuredcontributioncriteria><popuppredefineditem id="addGroup" remove="true"></popuppredefineditem><popuppredefineditem id="autoSizeAction" path="/formatMenu/" remove="true"></popuppredefineditem></popupcontribution></contributionitemprovider></extension> 2、直接编辑代码的方法 view plaincopy to clipboardprint? public class CustomContextMenuProvider extends DiagramContextMenuProvider { public CustomContextMenuProvider (IWorkbenchPart part, EditPartViewer viewer) { super(part, viewer); // TODO Auto-generated constructor stub } public void buildContextMenu(IMenuManager menu) { // SampleAction action = new SampleAction("Sample"); // menu.add(action); super.buildContextMenu(menu); } // 过滤不需要的上下文菜单 public IContributionItem[] getItems() { IContributionItem[] ic = super.getItems(); filterSystemPopMenu(ic); return ic; } } view plaincopy to clipboardprint? //将DiagramEditor的configureGraphicalViewer方法中替换为自定义的ContextMenuProvider protected void configureGraphicalViewer() { super.configureGraphicalViewer(); IDiagramGraphicalViewer viewer = getDiagramGraphicalViewer(); /* customize popup menu */ ContextMenuProvider provider = new CustomContextMenuProvider(this, viewer); viewer.setContextMenu(provider); getSite().registerContextMenu(ActionIds.DIAGRAM_EDITOR_CONTEXT_MENU, provider, viewer); } 三、修改Diagram菜单和工具栏 view plaincopy to clipboardprint? public class CustomDiagramActionBarContributor extends DiagramActionBarContributor { /** * 重载init方法 * @generated NOT */ // public void init(final IActionBars bars) { super.init(bars); IActionBars bar=getActionBars(); IContributionItem[] items=bar.getMenuManager().getItems(); //IContributionItem[] items=bar.getToolBarManager().getItems(); for (IContributionItem i:items) { if (i.getId().equals("diagramMenu")) { SubContributionItem diagramMenu=(SubContributionItem)i; IContributionManager diagramMenuMagager=(IContributionManager) diagramMenu.getInnerItem(); IContributionItem[] subDiagramsMenu=diagramMenuMagager.getItems(); //在diagramMenu下增加一个子菜单 diagramMenuMagager.add(new AboutAction()); for (IContributionItem j:subDiagramsMenu) { //删除arrangeMenu if (j.getId().equals("arrangeMenu")) { diagramMenuMagager.remove(j); } } } } } /** * @generated */ protected Class getEditorClass() { return DfdDiagramEditor.class; } /** * @generated */ protected String getEditorId() { return DfdDiagramEditor.ID; } /** * @generated NOT */ public static class AboutAction extends Action { public AboutAction() { setText("About"); setId("About"); } public void run() { MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "About", "This is a example."); } } }
分享到:
评论

相关推荐

    GMF Tutorial中文版

    工具定义模型则允许开发者设计工具栏、菜单等用户界面元素。 通过本教程,读者将逐步了解如何使用GMF来设计和实现图形化建模工具,包括如何创建模型,设计图形界面,以及集成编辑功能。同时,教程还探讨了GMF如何...

    gmf 1.7 最新版的gmf

    GMF(Generic Model Framework)是Eclipse平台下的一款强大的图形建模框架,它为开发者提供了构建图形用户界面(GUI)的工具,特别是用于创建复杂的图形编辑器和图表应用程序。GMF 1.7是最新的版本,它在前一版本的...

    GMF Tourial中文版(一)

    - **工具定义模型(tooling definition model)**:这是一个可选组件,用于定义调色板(palette)、菜单、工具栏等图形化或工具组件,旨在提供一致的用户体验,无论面对何种领域的模型。 #### 六、GMF的工作流程 - **...

    GMF教程.doc

    【GMF教程】GMF(Graphics Modeling Framework)是Eclipse平台下的一个图形建模框架,用于构建基于模型的图形编辑工具。本教程是基于英文教程的实践与翻译,旨在帮助读者理解并掌握如何使用GMF创建一个Mindmap编辑器...

    GMF数据表建模例子

    GMF(Generic Modeling Framework)是Eclipse平台下的一个开源项目,它为开发可扩展的图形化建模工具提供了基础框架。这个"GMF数据表建模例子"显然是一个利用GMF构建的数据库设计工具,可以帮助用户以图形化的方式...

    15 分钟学会 Eclipse GMF

    Eclipse GMF(Graphics Modeling Framework)是Eclipse平台下的一个开源工具,用于构建图形化建模和编辑环境。本教程将带你快速掌握Eclipse GMF的核心概念和使用方法,让你在15分钟内对GMF有初步的认识。 一、...

    GMF EMF

    - GMF广泛应用于软件建模、系统设计和架构等领域,因为它能快速生成专业级的图形编辑工具。 - 在实际项目中,GMF可以帮助开发人员构建定制化的模型编辑环境,提高生产力。 通过深入研究GMF ѧϰ和GMF 学习这两个...

    org.eclipse.gmf.rar

    EMF提供了一套强大的工具,用于创建和管理模型,而GMF RAR则负责将这些模型转化为直观的图形表示。 总结来说,"org.eclipse.gmf.rar"是Eclipse GMF框架中用于构建图形用户界面的关键组件,它为模型驱动的开发提供了...

    GMF开发FSM的完整的例子

    4. **Tooling Definition Model(工具定义模型)**:接下来是定义编辑器工具栏中的各种工具,如添加状态、删除转换等操作。这一步骤对于增强编辑器的功能性至关重要。 5. **Mapping Model(映射模型)**:映射模型...

    GMF 开发文档

    ### GMF开发文档知识点...GMF提供了一套完整的工具链,使开发者能够轻松地构建图形化的编辑器。通过本文介绍的知识点,读者可以了解到GMF开发的关键步骤和技术要点,从而更好地掌握如何使用GMF进行图形编辑器的开发。

    GMF实例解析.pdf

    【GMF实例解析】 GMF,全称是Graphical Modeling Framework,是Eclipse建模项目中的一个重要组成部分,它建立在GEF(Graphical Editor Framework)和EMF(Eclipse Modeling Framework)之上,为开发基于图形界面的...

    GMF实例解析(PDF版)

    GMF的出现极大地推动了图形化编辑器的开发进程,它不仅简化了复杂的编程任务,还为开发者提供了强大的工具集,使得图形界面的设计与实现变得更加高效和直观。通过Taipan实例的深度分析,我们不仅能够深入了解GMF的...

    GMF相关资料

    GMF是一个命令行工具,它提供了丰富的地图制作功能,包括投影变换、数据导入导出、符号化、图层管理等。通过熟练掌握GMF,用户可以创建专业级别的地图,对地理信息进行可视化展示。 在学习GMF的过程中,首先要掌握...

    Eclipse插件 GMF

    Eclipse插件GMF,全称为Graphical Modeling Framework,是Eclipse平台上的一个重要组成部分,主要用于构建可视化的建模工具。这个框架提供了一种强大的方式,让开发者能够创建出具有图形界面的模型编辑器,用于设计...

    图形建模框架GMF综述

    ### 图形建模框架GMF综述 #### 引言 在软件开发过程中,图形建模...无论是对于希望快速构建自定义建模工具的企业还是对于那些寻求深入研究图形建模技术的研究人员来说,GMF都是一个值得深入了解和探索的重要工具。

    eclipse gef ve gmf

    在Eclipse中,GEF(Graphical Editing Framework)、VE(Visual Editor)和GMF(Graphical Modeling Framework)是三个重要的插件或框架,主要用于图形化界面设计和建模。 1. GEF(Graphical Editing Framework) ...

    一个简单的GMF实例

    总结来说,这个“一个简单的GMF实例”提供了学习和实践GMF技术的机会,帮助开发者理解如何利用GMF创建图形化编辑工具。通过阅读博文和研究提供的源码,可以深入理解GMF的工作原理,并能够将其应用到自己的项目中。

    gmf-runtime-2.1.2.zip

    GMF(Graphical Modeling Framework)是Eclipse基金会推出的一个开源项目,主要用于构建图形化建模工具。这个"gmf-runtime-2.1.2.zip"压缩包文件包含了Eclipse图形化开发插件GMF的运行时组件,版本为2.1.2。此插件...

Global site tag (gtag.js) - Google Analytics