diff --git a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNApplyPropertiesUpdateOperationHandler.java b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNApplyPropertiesUpdateOperationHandler.java index ad61fcc9..f014db28 100644 --- a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNApplyPropertiesUpdateOperationHandler.java +++ b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNApplyPropertiesUpdateOperationHandler.java @@ -26,9 +26,10 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.eclipse.emf.common.command.Command; import org.eclipse.glsp.graph.GModelElement; import org.eclipse.glsp.server.actions.ActionDispatcher; -import org.eclipse.glsp.server.operations.AbstractOperationHandler; +import org.eclipse.glsp.server.operations.GModelOperationHandler; import org.openbpmn.bpmn.elements.core.BPMNElement; import org.openbpmn.extensions.BPMNElementExtension; import org.openbpmn.glsp.bpmn.BPMNGEdge; @@ -44,7 +45,7 @@ * */ public class BPMNApplyPropertiesUpdateOperationHandler - extends AbstractOperationHandler { + extends GModelOperationHandler { private static Logger logger = LogManager.getLogger(BPMNApplyPropertiesUpdateOperationHandler.class); @Inject @@ -56,11 +57,15 @@ public class BPMNApplyPropertiesUpdateOperationHandler @Inject protected Set extensions; + @Override + public Optional createCommand(BPMNApplyPropertiesUpdateOperation operation) { + return commandOf(() -> executeOperation(operation)); + } + /** * */ - @Override - protected void executeOperation(final BPMNApplyPropertiesUpdateOperation operation) { + private void executeOperation(final BPMNApplyPropertiesUpdateOperation operation) { long l = System.currentTimeMillis(); String jsonData = operation.getJsonData(); String category = operation.getCategory(); diff --git a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNChangeBoundsOperationHandler.java b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNChangeBoundsOperationHandler.java index 8d7c2ef5..1d2971f4 100644 --- a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNChangeBoundsOperationHandler.java +++ b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNChangeBoundsOperationHandler.java @@ -23,15 +23,18 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.eclipse.emf.common.command.Command; +import org.eclipse.glsp.graph.GCompartment; import org.eclipse.glsp.graph.GDimension; import org.eclipse.glsp.graph.GModelElement; import org.eclipse.glsp.graph.GNode; import org.eclipse.glsp.graph.GPoint; import org.eclipse.glsp.graph.builder.impl.GLayoutOptions; import org.eclipse.glsp.graph.util.GraphUtil; -import org.eclipse.glsp.server.operations.AbstractOperationHandler; import org.eclipse.glsp.server.operations.ChangeBoundsOperation; +import org.eclipse.glsp.server.operations.GModelOperationHandler; import org.eclipse.glsp.server.types.ElementAndBounds; +import org.openbpmn.bpmn.elements.Activity; import org.openbpmn.bpmn.elements.Association; import org.openbpmn.bpmn.elements.BPMNProcess; import org.openbpmn.bpmn.elements.Lane; @@ -46,6 +49,7 @@ import org.openbpmn.bpmn.exceptions.BPMNInvalidReferenceException; import org.openbpmn.bpmn.exceptions.BPMNInvalidTypeException; import org.openbpmn.bpmn.exceptions.BPMNMissingElementException; +import org.openbpmn.glsp.bpmn.BPMNGNode; import org.openbpmn.glsp.bpmn.PoolGNode; import org.openbpmn.glsp.model.BPMNGModelState; import org.openbpmn.glsp.utils.BPMNGModelUtil; @@ -85,13 +89,18 @@ * @author rsoika * */ -public class BPMNChangeBoundsOperationHandler extends AbstractOperationHandler { +public class BPMNChangeBoundsOperationHandler extends GModelOperationHandler { private static Logger logger = LogManager.getLogger(BPMNChangeBoundsOperationHandler.class); @Inject protected BPMNGModelState modelState; + @Override + public Optional createCommand(ChangeBoundsOperation operation) { + return commandOf(() -> executeOperation(operation)); + } + /** * Update the bounds for all selected elements in the GModel and also in the * BPMNModel. @@ -100,8 +109,7 @@ public class BPMNChangeBoundsOperationHandler extends AbstractOperationHandler { +public class BPMNChangeRoutingPointsOperationHandler extends GModelOperationHandler { private static Logger logger = Logger.getLogger(BPMNChangeRoutingPointsOperationHandler.class.getName()); @Inject protected BPMNGModelState modelState; + @Override - public void executeOperation(final ChangeRoutingPointsOperation operation) { + public Optional createCommand(ChangeRoutingPointsOperation operation) { + return commandOf(() -> executeOperation(operation)); + } + + private void executeOperation(final ChangeRoutingPointsOperation operation) { List routingPoints = operation.getNewRoutingPoints(); logger.fine("=== ChangeRoutingPointsOperation - " + routingPoints.size() + " routing points"); diff --git a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNDeleteNodeHandler.java b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNDeleteNodeHandler.java index 1f8fa40b..92ccc40b 100644 --- a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNDeleteNodeHandler.java +++ b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNDeleteNodeHandler.java @@ -16,10 +16,12 @@ package org.openbpmn.glsp.operations; import java.util.List; +import java.util.Optional; import java.util.logging.Logger; -import org.eclipse.glsp.server.operations.AbstractOperationHandler; +import org.eclipse.emf.common.command.Command; import org.eclipse.glsp.server.operations.DeleteOperation; +import org.eclipse.glsp.server.operations.GModelOperationHandler; import org.openbpmn.bpmn.elements.Association; import org.openbpmn.bpmn.elements.BPMNProcess; import org.openbpmn.bpmn.elements.Message; @@ -37,14 +39,18 @@ * Lanes, Processes and * Messages. */ -public class BPMNDeleteNodeHandler extends AbstractOperationHandler { +public class BPMNDeleteNodeHandler extends GModelOperationHandler { private static Logger logger = Logger.getLogger(BPMNDeleteNodeHandler.class.getName()); @Inject protected BPMNGModelState modelState; @Override - public void executeOperation(final DeleteOperation operation) { + public Optional createCommand(DeleteOperation operation) { + return commandOf(() -> executeOperation(operation)); + } + + private void executeOperation(final DeleteOperation operation) { List elementIds = operation.getElementIds(); if (elementIds == null || elementIds.size() == 0) { diff --git a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNPasteOperationHandler.java b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNPasteOperationHandler.java index 58e57aff..db9ba549 100644 --- a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNPasteOperationHandler.java +++ b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/operations/BPMNPasteOperationHandler.java @@ -19,13 +19,15 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.eclipse.emf.common.command.Command; import org.eclipse.glsp.graph.GPoint; import org.eclipse.glsp.server.actions.ActionDispatcher; import org.eclipse.glsp.server.actions.SelectAction; -import org.eclipse.glsp.server.operations.AbstractOperationHandler; +import org.eclipse.glsp.server.operations.GModelOperationHandler; import org.eclipse.glsp.server.operations.PasteOperation; import org.openbpmn.bpmn.elements.BPMNProcess; import org.openbpmn.bpmn.elements.SequenceFlow; @@ -49,7 +51,7 @@ * @see {@link BPMNClipboardDataActionHandler} * @author rsoika */ -public class BPMNPasteOperationHandler extends AbstractOperationHandler { +public class BPMNPasteOperationHandler extends GModelOperationHandler { private static Logger logger = LogManager.getLogger(BPMNPasteOperationHandler.class); @@ -59,6 +61,11 @@ public class BPMNPasteOperationHandler extends AbstractOperationHandler createCommand(PasteOperation operation) { + return commandOf(() -> executeOperation(operation)); + } + /** * This method copies the current element selection into the diagram. The * selection is stored in the data structure with the key 'bpmn' which is @@ -70,8 +77,7 @@ public class BPMNPasteOperationHandler extends AbstractOperationHandler { +public class BPMNReconnectEdgeOperationHandler extends GModelOperationHandler { private static Logger logger = LogManager.getLogger(BPMNReconnectEdgeOperationHandler.class); @@ -42,7 +45,11 @@ public class BPMNReconnectEdgeOperationHandler extends AbstractOperationHandler< protected BPMNGModelState modelState; @Override - public void executeOperation(final ReconnectEdgeOperation operation) { + public Optional createCommand(ReconnectEdgeOperation operation) { + return commandOf(() -> executeOperation(operation)); + } + + private void executeOperation(final ReconnectEdgeOperation operation) { String edgeID = operation.getEdgeElementId(); String sourceElementID = operation.getSourceElementId();