Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit4CreateCommand.java')
-rw-r--r--org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit4CreateCommand.java96
1 files changed, 96 insertions, 0 deletions
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit4CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit4CreateCommand.java
new file mode 100644
index 0000000..7aaa287
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/SequentialUnit4CreateCommand.java
@@ -0,0 +1,96 @@
+/*
+ *
+ */
+package comrel.diagram.edit.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.notation.View;
+
+import comrel.ComrelFactory;
+import comrel.SequentialUnit;
+import comrel.SingleQueuedUnit;
+
+/**
+ * @generated
+ */
+public class SequentialUnit4CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public SequentialUnit4CreateCommand(CreateElementRequest req) {
+ super(req.getLabel(), null, req);
+ }
+
+ /**
+ * FIXME: replace with setElementToEdit()
+ * @generated
+ */
+ protected EObject getElementToEdit() {
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ if (container instanceof View) {
+ container = ((View) container).getElement();
+ }
+ return container;
+ }
+
+ /**
+ * @generated
+ */
+ public boolean canExecute() {
+ SingleQueuedUnit container = (SingleQueuedUnit) getElementToEdit();
+ if (container.getRefactoringUnit() != null) {
+ return false;
+ }
+ return true;
+
+ }
+
+ /**
+ * @generated
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ SequentialUnit newElement = ComrelFactory.eINSTANCE
+ .createSequentialUnit();
+
+ SingleQueuedUnit owner = (SingleQueuedUnit) getElementToEdit();
+ owner.setRefactoringUnit(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(SequentialUnit newElement,
+ IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IElementType elementType = ((CreateElementRequest) getRequest())
+ .getElementType();
+ ConfigureRequest configureRequest = new ConfigureRequest(
+ getEditingDomain(), newElement, elementType);
+ configureRequest.setClientContext(((CreateElementRequest) getRequest())
+ .getClientContext());
+ configureRequest.addParameters(getRequest().getParameters());
+ ICommand configureCommand = elementType
+ .getEditCommand(configureRequest);
+ if (configureCommand != null && configureCommand.canExecute()) {
+ configureCommand.execute(monitor, info);
+ }
+ }
+
+}

Back to the top