Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortarendt2014-04-16 10:47:32 +0000
committertarendt2014-04-16 10:47:32 +0000
commitc7770b37490503d2e6a297bedbf800bc44e1e88a (patch)
tree4a24656b3727de61f6e559369c736a232b3e7d0b /org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit3CreateCommand.java
parent9f26d76211af63dfb1ac3e27d4edb08028b4666c (diff)
downloadorg.eclipse.emf.refactor.refactoring-c7770b37490503d2e6a297bedbf800bc44e1e88a.tar.gz
org.eclipse.emf.refactor.refactoring-c7770b37490503d2e6a297bedbf800bc44e1e88a.tar.xz
org.eclipse.emf.refactor.refactoring-c7770b37490503d2e6a297bedbf800bc44e1e88a.zip
initial commit CoMReL
Diffstat (limited to 'org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit3CreateCommand.java')
-rw-r--r--org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit3CreateCommand.java116
1 files changed, 116 insertions, 0 deletions
diff --git a/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit3CreateCommand.java b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit3CreateCommand.java
new file mode 100644
index 0000000..06e2969
--- /dev/null
+++ b/org.eclipse.emf.refactor.comrel.diagram/src/comrel/diagram/edit/commands/MultiFeatureUnit3CreateCommand.java
@@ -0,0 +1,116 @@
+/*
+ *
+ */
+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.CompositeRefactoring;
+import comrel.ComrelFactory;
+import comrel.ConditionalUnit;
+import comrel.MultiFeatureUnit;
+
+/**
+ * @generated
+ */
+public class MultiFeatureUnit3CreateCommand extends EditElementCommand {
+
+ /**
+ * @generated
+ */
+ public MultiFeatureUnit3CreateCommand(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() {
+ return true;
+
+ }
+
+ /**
+ * @generated NOT
+ */
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
+ IAdaptable info) throws ExecutionException {
+ /*
+ * changes: Liest aus einem Request die ID des Helpers und
+ * erstellt anhand dessen die HelperUnit
+ */
+ CreateElementRequest request = ((CreateElementRequest) getRequest());
+ String helperId = (String) request.getParameters().get(
+ comrel.diagram.part.ComrelPaletteFactory.UNIT_ID);
+ comrel.ComrelFactory factory = comrel.ComrelFactory.eINSTANCE;
+ EObject container = ((CreateElementRequest) getRequest())
+ .getContainer();
+ while (container.eContainer() != null) {
+ container = container.eContainer();
+ }
+ CompositeRefactoring cr = (CompositeRefactoring) container;
+ comrel.MultiFeatureHelper helper = cr.getMultiFeatureHelper(helperId);
+ if (helper != null && !cr.getHelper().contains(helper)) {
+ cr.getHelper().add(helper);
+ }
+ comrel.MultiFeatureUnit newElement;
+ if (helper != null) {
+ newElement = factory.createMultiFeatureUnit(helper);
+ } else {
+ newElement = factory.createMultiFeatureUnit();
+ }
+ /* end of change */
+
+ ConditionalUnit owner = (ConditionalUnit) getElementToEdit();
+ owner.getHelperUnits().add(newElement);
+
+ doConfigure(newElement, monitor, info);
+
+ ((CreateElementRequest) getRequest()).setNewElement(newElement);
+ return CommandResult.newOKCommandResult(newElement);
+ }
+
+ /**
+ * @generated
+ */
+ protected void doConfigure(MultiFeatureUnit 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