我正在开发一个编辑器来设计基于eclipse GMF的用户界面。
到目前为止,我已经开发了一个带调色板的编辑器。用户可以从托盘拖放UI元素并在画布上设计UI。我需要实现该工具来对这些UI元素进行分组。
EX:用户首先通过将元素拖放到画布来设计UI。然后他选择一组UI元素(比如标签和文本框)并按“组”按钮。它会自动将元素放在虚线矩形内。
我打算开发一个插件,可以获取有关所选ui元素的信息,删除它们,在画布中创建一个组元素(虚线矩形)并将删除的元素插入其中。
但我不知道从哪里开始。
所以,我想知道如何在GMF中以编程方式创建/删除节点。
如果您知道相关代码,请分享,并请指出一些有用的资源。
答案 0 :(得分:1)
从调色板中拖动某些内容时,会在gmf中创建以下命令。您必须指定元素类型并向编辑部分询问元素的相应命令。
CreateUnspecifiedTypeRequest request = new
CreateUnspecifiedTypeRequest(
Collections.singletonList(EcoreElementTypes.EClass_1001),
diagramEditPart.getDiagramPreferencesHint());
Command command = diagramEditPart.getCommand(request);
command.execute();
Object newObject = request.getNewObject(); // these are the newly created objects
答案 1 :(得分:1)
通过使用例如从调色板拖动某物时添加附加元素也是可能的。延迟命令。这些命令是在创建调色板元素请求时创建的,但是最终位置和视图尚未知道(仅在丢弃时)。相应的视图稍后会解决。
使用此机制的现有命令类是: DeferredCreateConnectionViewAndElementCommand 或 DeferredSetValueCommand
要使用此类,您必须在请求创建过程中找到正确的位置,其中View(s)是通过CreateViewRequest创建的。此请求包含所需的信息( request.getNewObject()),只要调色板中的对象被丢弃,就会获得一个View。
有关详细信息,请参阅此示例:http://wiki.eclipse.org/GMF_Tutorial_Part_3