创建节点时通过对话框输入属性
来源:互联网 发布:yum 更新 编辑:程序博客网 时间:2024/05/18 20:50
我需要实现这样一种场景:
在创建节点时,从PaetteRoot中选择一个CreationEntry,然后在编辑区点击(或拖拽到编辑区),这时弹出一节点属性设置对话框。
之前在网上看到了两种实现方式,但都有一点问题。如下:
1、在Command中实现。也是就是在execute()方法中打开对话框。
问题:由于这个Command已经放入EditDomain的CommandStack中,如果用户选择了“Cancel”,这时Editor显示仍然是dirty,并且造成undo、redo等实现的复杂性(得判断Command中对话框中是否选择了ok)。
因为GEF中会一直监听鼠标事件,所以会一直触发policy事件,故而也不能在policy中打开对话框。否则只要鼠标在编辑区移动,就会不停地打开对话框。
2、使用自定义的CreationTool,在performCreation(int button)方法中打开对话框。
问题:这种方式,虽然解决了CommandStack混乱的问题,但是,如果用户要通过拖拽(非点击)方式创建节点的话,就不会打开对话框。因为拖拽方式是通过DragSourceListener和DropTargetListener来调用CommandStack的execut方法,不会使用到CreationTool。
解决方法:重写CommandStack的execute()方法。代码如下:
- 创建节点时通过对话框输入属性
- 通过关系找节点、创建节点,插入节点,设置节点属性
- jQuery创建属性节点
- 创建TextEntryDialog(输入对话框)
- 通过c++类创建对话框
- jquery DOM创建节点及节点属性
- DOM创建节点及节点属性
- DOM创建节点及节点属性
- linux sys属性节点创建
- VC:如何创建属性对话框
- 通过API调用文件的属性对话框
- 插入对话框,通过选择对话框的属性完成不同设置。
- android 通过构造创建进度对话框
- mfc树形控件选中的节点,在创建对话框时,选中没有生效 CHECKBOX
- 驱动学习--SYS属性节点创建
- DOM创建节点和添加属性
- js节点属性的创建 添加 删除
- DOM创建元素、属性、文本节点
- svn: 无法打开地址(URL)的 ra_local 会话
- SVN在linux下的检出
- 内存泄露检测工具
- STL容器 算法 函数表
- 为什么会出现警告:Data binding will not be able to detect assignments to “**”
- 创建节点时通过对话框输入属性
- qmake生成Makefile文件方法
- ORACLE中用rownum分页并排序的SQL语句
- LINQ操作说明
- Hadoop权威指南(中文版)
- oracle 存储过程
- [javascript]学习总结——浮动广告特效制作
- 常见网络问题——架设篇(转载自CSDN论坛)
- CUDA第一个程序优化二(有线程块)