专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » eclipsegef:[Eclipse]GEF入门系列( 6、添加菜单和工具条) »正文

eclipsegef:[Eclipse]GEF入门系列( 6、添加菜单和工具条)

来源: 发布时间:星期四, 2009年1月8日 浏览:109次 评论:0
  我发现旦稍稍体会到GEF妙处就会很自然被它吸引住不仅是用它做出图形界面好看更重要UI中最复杂和细微问题在GEF设计中无不被周到考虑并以适当模式解决当你了解了这些完全可以把这些解决思路方法加以转换用来解决其他领域设计问题去年黄老大在个GEF项目结束后仍然没有放弃对它继续研究现在甚至利用业余时间开发了基于GEFSWT/JFace增强软件Software包Eclipse和GEF魅力可见我相信在未来两年里由于RCP/GEF等技术成熟Java Standalone应用必将有所发展在B/S模式难以实现那部分领域里扮演重要角色

  本篇主题是实现菜单功能由于Eclipse可扩展设计在GEF应用中添加菜单要多几处考虑所以我首先介绍Eclipse里有关菜单些概念然后再通过例子描述如何在GEF里添加菜单、工具条和上下文菜单

  我们知道Eclipse本身只是个平台(Platform)用户并不能直接用它来工作作用是为那些提供实际功能部件提供个基础环境所有部件都通过平台指定方式构造界面和使用资源在Eclipse里这些部件被称为插件(Plugins)例如Java开发环境(JDT)、Ant支持、CVS客户端和帮助系统等等都是插件由于我们从eclipse.org下载Eclipse本身已经包含了这些常用插件所以不需要额外安装就好象Windows本身已经包含了记事本、画图等等工具如果我们需要新功能就要通过下载安装或在线更新方式把它们安装到Eclipse平台上常见如XML编辑器、Properties文件编辑器J2EE开发支持等等包括GEF开发包也是这类插件插件般都安装在Eclipse安装目录plugins子目录下也可以使用link方式安装在其他位置

  Eclipse平台个优秀的处在于如此众多插件能够完美集成在同个环境中要知道每个插件都可能具有编辑器、视图、菜单、工具条、文件关联等等复杂元素要让它们能够和平共处可不是件容易事为此Eclipse提供了系列机制来解决由此带来各种问题由于篇幅限制这里只能简单讲下菜单和工具条部分更多内容请参考Eclipse随机提供插件开发帮助文档

  大多数情况下我们说开发个基于Eclipse应用就是指开发个Eclipse插件(plugin)Eclipse里每个插件都有个名为plugin.xml文件用来定义插件里各种元素例如这个插件都有哪些编辑器哪些视图等等在视图中使用菜单和工具条请参考以前贴子本篇只介绍编辑器情况GEF应用大多数是基于编辑器

  }
  public void buildContextMenu(IMenuManager menu) {
    // Add standard action groups to the menu
    GEFActionConstants.addStandardActionGroups(menu);
    // Add actions to the menu
    menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getAction(ActionFactory.UNDO.getId));
    menu.appendToGroup(GEFActionConstants.GROUP_UNDO, getAction(ActionFactory.REDO.getId));
    menu.appendToGroup(GEFActionConstants.GROUP_EDIT, getAction(ActionFactory.DELETE.getId));
    menu.appendToGroup(GEFActionConstants.GROUP_REST,getAction(IConstants.ACTION_MARK_PRIORITY_HIGH));
    menu.appendToGroup(GEFActionConstants.GROUP_REST,getAction(IConstants.ACTION_MARK_PRIORITY_MEDIUM));
    menu.appendToGroup(GEFActionConstants.GROUP_REST,getAction(IConstants.ACTION_MARK_PRIORITY_LOW));
  }
  private IAction getAction(String actionId) {
     actionRegistry.getAction(actionId);
  }
}



  注意buildContextMenu思路方法里句是创建缺省那些组如果没有忽略了这步后面语句会提示组不存在你也可以通过这个思路方法看到GEF是怎样建组以及都有哪些组让编辑器使用这个类代码般写在configureGraphicalViewer思路方法里

  顺便介绍了Eclipse些基本概念加上代码比较多所以这篇贴子看起来比较长其实通过查看GEF对内置UNDO/REDO等实现很容易就会明白菜单使用思路方法



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: