【发布时间】:2012-08-23 20:59:13
【问题描述】:
我喜欢在调色板的一次拖放中创建两个图形,即在一次拖放中应该创建两个图形,它们都具有单独的 EditPart 和 Model 类。
提前致谢
【问题讨论】:
标签: eclipse-gef
我喜欢在调色板的一次拖放中创建两个图形,即在一次拖放中应该创建两个图形,它们都具有单独的 EditPart 和 Model 类。
提前致谢
【问题讨论】:
标签: eclipse-gef
有多种方法可以做到这一点:最简单的方法是让你从 creationFactory 返回 数组或对象列表。那么,在你里面
protected Command getCreateCommand(final CreateRequest request) {
if (request.getNewObject() instanceof List<?>/Object[]) {
...
}
}
或者,另一种方法是将 CreationTool 子类化为具有创建工厂的列表。然后,创建一个自定义请求类型,例如,
public class MultiCreateRequest extends Request {
...
}
并覆盖它将处理这种情况的 getCommand(Request request) 调度方法:
public Command getCommand(Request request) {
if (REQ_MULTI_CREATE.equals(request.getType()))
return getMultiCreateCommand((MultiCreateRequest) request);
}
子类化创建工具时应注意:
Constructor
createTargetRequest() (return MultiCreateRequest)
getCommandName() (return REQ_MULTI_CREATE)
getCreateRequest() (specify)
selectAddedObject(EditPartViewer viewer) (to select all created that way objects)
updateTargetRequest() (specify)
哦,我实际上想出了这个想法,创建新工具子类化 TargetingTool 比子类化 CreationTool 更好。相反,您可以复制实现(实际上很容易)并根据需要进行更改。
【讨论】: