From 390447c6d53eec093c7630ff0636cc5625dff219 Mon Sep 17 00:00:00 2001
From: Ralph Soika <ralph.soika@imixs.com>
Date: Tue, 21 Mar 2023 18:37:19 +0100
Subject: [PATCH] impl

Issue #221
---
 .../org/openbpmn/glsp/BPMNDiagramModule.java  | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/BPMNDiagramModule.java b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/BPMNDiagramModule.java
index b814acf1..39a7e171 100644
--- a/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/BPMNDiagramModule.java
+++ b/open-bpmn.glsp-server/src/main/java/org/openbpmn/glsp/BPMNDiagramModule.java
@@ -17,6 +17,7 @@
 
 import java.util.logging.Logger;
 
+import org.eclipse.glsp.server.actions.Action;
 import org.eclipse.glsp.server.actions.ActionHandler;
 import org.eclipse.glsp.server.di.DiagramModule;
 import org.eclipse.glsp.server.di.MultiBinding;
@@ -65,6 +66,7 @@
 import org.openbpmn.glsp.operations.BPMNChangeRoutingPointsOperationHandler;
 import org.openbpmn.glsp.operations.BPMNComputedBoundsActionHandler;
 import org.openbpmn.glsp.operations.BPMNDeleteNodeHandler;
+import org.openbpmn.glsp.operations.BPMNPropertyPanelUpdateAction;
 import org.openbpmn.glsp.provider.BPMNCommandPaletteActionProvider;
 import org.openbpmn.glsp.provider.BPMNToolPaletteItemProvider;
 import org.openbpmn.glsp.validators.BPMNModelValidator;
@@ -109,8 +111,19 @@ protected void configureActionHandlers(final MultiBinding<ActionHandler> binding
         // Edit lable actions..
         binding.add(BPMNComputedBoundsActionHandler.class);
 
+        // configure panelupdate action which is send from the server to the client
+        // binding.add(BPMNPropertyPanelUpdateAction.class);
+
     }
 
+    // @Override
+    // protected void configureClientActions(final MultiBinding<Action> binding) {
+    // //super.configureClientAction(binding);
+    // binding.add(BPMNPropertyPanelUpdateAction.class);
+    // }
+    // protected void configureClientActions(final MultiBinding<Action> binding) {
+    // }
+
     @Override
     protected void configureOperationHandlers(final MultiBinding<OperationHandler> binding) {
         super.configureOperationHandlers(binding);
@@ -165,6 +178,20 @@ protected void configureOperationHandlers(final MultiBinding<OperationHandler> b
 
     }
 
+    /**
+     * Each handler that should be handled by the GLSP client has to be
+     * configured as dedicated client action to indicate that it needs to be
+     * dispatched to the client.
+     * 
+     * The BPMNPropertyPanelUpdateAction is used by Extensions to signal the
+     * propertyPanel that we have an update of the current selected element
+     */
+    @Override
+    protected void configureClientActions(MultiBinding<Action> binding) {
+        super.configureClientActions(binding);
+        binding.add(BPMNPropertyPanelUpdateAction.class);
+    }
+
     /**
      * This method creates a new Multibinder to bind BPMNExension
      */