GEF插件开发(二,画板元素创建)
2016-08-10 00:00
281 查看
本章节在上一章节基础上,实现编辑器右侧画板元素的添加(添加GEF默认画板工具单选与多选、自定义图形工具)。
1. 定义画板对象PalettRoot,通过工具类PaletteUtil创建画板对象。
关键代码如下:
2. 接下来在工具类中实现具体画板元素的创建。主要是通过在PaletteRoot对象中添加对应的分组信息与分组信息中的画板元素信息。
代码如下:
3. 为了将插件进一步规范,更改插件中Activator类为UserCaseChartPlugin,并在plugin.xml的Overview tab页的Activator类信息改为UserCaseChartPlugin类全名。
4. 最后,画板元素添加后效果如下。
ps:源码请参考http://bbs.hearker.com/read.php?tid=2158&fid=36 不知道怎么上传附件
1. 定义画板对象PalettRoot,通过工具类PaletteUtil创建画板对象。
关键代码如下:
private PaletteRoot root; // 调色板对象 /** * 配置编辑器右侧画板 */ @Override protected PaletteRoot getPaletteRoot() { if (root == null) { root = PaletteUtil.createPalette(); } return root; } |
代码如下:
public class PaletteUtil { public static PaletteRoot createPalette() { PaletteRoot logicPalette = new PaletteRoot(); //在画板跟元素中添加画板分组与元素信息 logicPalette.addAll(createCategories(logicPalette)); return logicPalette; } private static List createCategories(PaletteRoot root) { List<PaletteContainer> categories = new ArrayList<PaletteContainer>(); // 创建选择分组工具(一般有GEF自带单选与多选工具) categories.add(createControlGroup(root)); // 创建自定义分组工具(一般在此分组下放置自定义图形工具、可以用多个分组管理图形)在我们创建用例图的图形元素角色与用例 categories.add(createEntityGroup(root)); return categories; } private static PaletteContainer createEntityGroup(PaletteRoot root) { PaletteDrawer entities = new PaletteDrawer("元素"); entities.add(createEntityEntry("角色", "用例角色", Object.class, "icons/actor16.gif", "icons/actor16.gif")); entities.add(createEntityEntry("用例", "用例描述", Object.class, "icons/usecase.gif", "icons/usecase.gif")); return entities; } private static PaletteEntry createEntityEntry(String name, String tip, Class<?> clazz, String icon, String bigIcon) { // 创建自定义画板工具(参数含义分别为显示名称、提示信息:如果提示信息与显示名称一样将不显示提示、创建工厂(一般采用SimpleFactory,并创建对应的模型类)、显示小图标、显示大图标) CreationToolEntry entry = new CreationToolEntry(name, tip, new SimpleFactory(clazz), UserCaseChartPlugin.getImageDescriptor(icon), UserCaseChartPlugin.getImageDescriptor(bigIcon)); return entry; } private static PaletteContainer createControlGroup(PaletteRoot root) { PaletteGroup controlGroup = new PaletteGroup("画板"); List<ToolEntry> entries = new ArrayList<ToolEntry>(); ToolEntry tool = select(); entries.add(tool); root.setDefaultEntry(tool); // 多选画板工具 entries.add(new MarqueeToolEntry("多选", "选择多个图形")); controlGroup.addAll(entries); return controlGroup; } public static ToolEntry select() { // 单选画板工具 ToolEntry tool = new PanningSelectionToolEntry("单选", "选择图形"); return tool; } } |
4. 最后,画板元素添加后效果如下。
ps:源码请参考http://bbs.hearker.com/read.php?tid=2158&fid=36 不知道怎么上传附件
相关文章推荐
- 利用sirius定义图形样式
- 关于eclipse中安装maven插件的问题
- GEF-通过绑定键盘事件实现快捷键功能
- GEF-自定义Request、Command与Action
- Eclipse kepler4.3 SR1 安装配置maven插件m2eclipse
- draw2d 布局
- Draw2d中的布局管理器Layout比较
- GEF-whole-upload教程中遇到的问题及解决方案
- GEF插件开发(一,空白编辑器搭建)
- GEF学习笔记1
- GEF学习笔记2
- GEF学习笔记3
- GEF企业应用开发之--Introducing
- GEF企业应用开发之--Getting Start
- GEF企业应用开发之--基本原理一
- GEF企业应用开发之--辅助功能
- GEF企业应用开发之--企业应用支持
- GEF(Graphical Editing Framework)介绍
- GEF:应用示例列表
- GEF:使用Draw2D画流程图-(下)