GMF中,编辑图元属性的方法
来源:互联网 发布:华云网络加速器 编辑:程序博客网 时间:2024/06/06 06:40
GMF中,经常需要修改图元属性。如果我们直接通过XXXImpl.setXXX();这种方法设置的话,运行后会报错,这是因为在GMF中,必须要在写事务中才能修改资源属性(这里的资源指真正存到图文件里的对象)。
首先要获得某个图元的EditPart,然后将其转换为此图元的语义模型,之后便可以进行图元属性的修改了:
XXXImpl xxxImpl = XXXEditPart.resolveSemanticElement();
TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(xxxImpl);
domain.getCommandStack().execute(new RecordingCommand(domain) {
protected void doExecute() {
xxxImpl.setName(); // 设置图元属性
}
});
如何获得某个图元的EditPart呢?在上一篇文章中,我已提供一种获得当前editor的EditPart,我们可以在此延伸:
XXXDiagramEditor xxxDiagramEditor= (XXXEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
XXXEditPart xxxEditPart = (XXXEditPart)xxxDiagramEditor.getDiagramEditPart();//获得当前editor的EditPart
//获得选中的图元的EditPart
List<?> selectedList = xxxEditPart.getViewer().getSelectedEditParts(); //如果在菜单类(DiagramEditorContextMenuProvider.java)中,可以直接调用getViewer()方法
if (selectedList.size() == 1) {
if (selectedList.get(0) instanceof XXXEditPart) {
XXXEditPart xxxEditPart = (XXXEditPart) selectedList.get(0); //获得选中的图元的EditPart
....
}
}
当然,如果你希望找到图元中某个名称为“xxx”的图元模型对象,可以由editor的EditPart获得editor的模型对象,进而通过得到它的子图元集合找到你想要的图元模型对象。
- GMF中,编辑图元属性的方法
- GMF中,图元属性垂直居中布局
- GMF中,自动创建图元(create nodes programmatically)
- GMF中,如何给属性排序
- GMF学习笔记(二、图形编辑器中标记的元模型 Notation meta-model)
- GMF中修改的内容
- Javasciprt中设置编辑域只读属性的方法
- GMF中,由xxxEditPart获得模型对象的方法的方法
- gmf 中保存 xml resource 的方法
- GMF中,获得当前editor的EditPart
- MAPX中修改图元的属性值
- 用MathType编辑n元乘积的方法
- 实现PointF和SizeF的属性在PropertyGrid中可编辑的方法
- Quest3D中编辑Max导出组合模型物理属性的方法
- GMF中,如何给节点的输入和输出赋值
- GMF中,删除节点和连线的实现
- GMF中,删除节点和连线的另一种实现
- 自己理解的GMF
- Linux进程描述符
- Driver Catalog Items (Windows Embedded CE 6.0)
- 六级词汇 3
- 评判一个程序员好坏的标准到底是什么?
- ext 中进行占位
- GMF中,编辑图元属性的方法
- 总结的几个 sql 分页存储过程
- MonkeyRunner_Examples(2)
- 六级词汇 1
- PL/SQL跳转/判断/循环语句块
- WebSocket(1)-- WebSocket API简介
- Hibernate中session的操作
- 六级词汇 2
- 常用词