我喜欢在单个拖放窗口上创建两个图形,即在单个拖放时,应创建两个具有单独的EditPart和Model类的图形。
提前致谢
答案 0 :(得分:2)
有多种方法可以实现这一点:最简单的方法是让你使用creationFactory返回 数组或对象列表。然后,在你
protected Command getCreateCommand(final CreateRequest request) {
if (request.getNewObject() instanceof List<?>/Object[]) {
...
}
}
或者,另一种方法是将CreationTool转换为创建工厂列表。然后,创建自定义请求类型,例如
public class MultiCreateRequest extends Request {
...
}
并覆盖它将处理该情况的getCommand(请求请求)调度方法:
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。相反,您可以只复制实现(实际上很容易)并根据需要进行更改。