パレットから1回のドラッグアンドドロップで2つの図を作成するのが好きです。つまり、1回のドラッグアンドドロップで、2つの図を作成する必要があります。両方とも別々のEditPartクラスとModelクラスがあります。
前もって感謝します
パレットから1回のドラッグアンドドロップで2つの図を作成するのが好きです。つまり、1回のドラッグアンドドロップで、2つの図を作成する必要があります。両方とも別々のEditPartクラスとModelクラスがあります。
前もって感謝します
これを実現するには複数の方法があります。最も簡単な方法は、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をサブクラス化するよりも優れたアイデアである。代わりに、実装をコピーして(実際には簡単です)、必要に応じて変更することができます。