[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.modeling.gmf] Re: Problems with Duplicate action
|
Hi Mario,
my solution below:
1. Create a new class called DuplicateAnythingCommand (see attached file).
2. In your generated XXXBaseItemSemanticEditPolicy, add the following
lines to your generated <getCommand>-method as follows:
public Command getCommand(Request request) {
[...]
Command result = super.getCommand(request);
if (request instanceof EditCommandRequestWrapper) {
IEditCommandRequest ier = ((EditCommandRequestWrapper)
request).getEditCommandRequest();
if (ier instanceof DuplicateElementsRequest && result == null) {
//call your new DuplicateCommand
return new ICommandProxy(new
DuplicateAnythingCommand(getEditingDomain(), (DuplicateElementsRequest)
ier));
}
}
[...]
return result;
}
Does the trick for me.
HTH
Regards, Thomas
Mario Cervera schrieb:
Hello,
I've noticed in my graphical editor that I can only duplicate elements that
are contained in the canvas element but not in compartments. I'd like to be
able to duplicate all elements. Does anyone know how to do this? I've seen
that the Duplicate action is contributed in the plug-in
"org.eclipse.gmf.runtime.diagram.ui.providers" so I can't modify those
classes.
Thanks in advance.
Mario
package XXX.diagram.custom.command;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gmf.runtime.emf.commands.core.commands.DuplicateEObjectsCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest;
/**
* Command that allows the duplication of any notational element with its
* underlying domain model element.
*
*/
public class DuplicateAnythingCommand extends DuplicateEObjectsCommand {
/**
* Constructor
*
* @param editingDomain
* @param req
*/
public DuplicateAnythingCommand(TransactionalEditingDomain editingDomain,
DuplicateElementsRequest req) {
super(editingDomain, req.getLabel(), req.getElementsToBeDuplicated(),
req.getAllDuplicatedElementsMap());
}
}