This is an automated email from the ASF dual-hosted git repository.

caponetto pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git


The following commit(s) were added to refs/heads/main by this push:
     new e344d2ccbd1 kie-tools-issues#2217: Combined editor > Diagram editor -  
The scrollbars are kept in light mode (#2233)
e344d2ccbd1 is described below

commit e344d2ccbd15d25a22e1c30965bfa777930e3df3
Author: Handreyrc <[email protected]>
AuthorDate: Fri Apr 26 06:19:52 2024 -0400

    kie-tools-issues#2217: Combined editor > Diagram editor -  The scrollbars 
are kept in light mode (#2233)
---
 .../client/widgets/editor/StunnerEditor.java       | 28 ++++++++++++---
 .../client/widgets/editor/StunnerEditorTest.java   | 40 ++++++++++++++++++++++
 .../stunner/core/client/theme/DefaultTheme.java    | 17 +++++++++
 .../core/client/theme/StunnerColorTheme.java       |  6 ++++
 .../client/widget/panel/impl/ScrollablePanel.java  | 17 +++++++++
 .../common/stunner/sw/client/theme/DarkMode.java   | 13 +++++++
 .../common/stunner/sw/client/theme/LightMode.java  | 10 ++++++
 .../stunner/sw/client/editor/DiagramEditor.java    | 12 +++----
 .../sw/client/editor/DiagramEditorTest.java        |  8 ++---
 9 files changed, 136 insertions(+), 15 deletions(-)

diff --git 
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-widgets/src/main/java/org/kie/workbench/common/stunner/client/widgets/editor/StunnerEditor.java
 
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-widgets/src/main/java/org/kie/workbench/common/stunner/client/widgets/editor/StunnerEditor.java
index b9391f68014..214ca215fa2 100644
--- 
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-widgets/src/main/java/org/kie/workbench/common/stunner/client/widgets/editor/StunnerEditor.java
+++ 
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-widgets/src/main/java/org/kie/workbench/common/stunner/client/widgets/editor/StunnerEditor.java
@@ -25,6 +25,7 @@ import java.util.function.Consumer;
 
 import com.ait.lienzo.client.core.types.JsCanvas;
 import com.ait.lienzo.client.widget.panel.LienzoBoundsPanel;
+import com.ait.lienzo.client.widget.panel.impl.ScrollablePanel;
 import elemental2.dom.CSSStyleDeclaration;
 import elemental2.dom.DomGlobal;
 import elemental2.dom.HTMLDivElement;
@@ -331,10 +332,10 @@ public class StunnerEditor {
     }
 
     public void clearAlerts() {
-            hasErrors = false;
-            if (null != alertsControl) {
-                alertsControl.clear();
-            }
+        hasErrors = false;
+        if (null != alertsControl) {
+            alertsControl.clear();
+        }
     }
 
     private String buildErrorMessage(ClientRuntimeError error, Throwable 
throwable, String errorTitle) {
@@ -351,6 +352,25 @@ public class StunnerEditor {
         return message;
     }
 
+    public void setScrollbarColors() {
+        if (null != getSession()) {
+            LienzoCanvas canvas = (LienzoCanvas) 
getSession().getCanvasHandler().getCanvas();
+            LienzoPanel panel = (LienzoPanel) canvas.getView().getPanel();
+            LienzoBoundsPanel lienzoPanel = panel.getView();
+
+            ((ScrollablePanel) 
lienzoPanel).setScrollbarColors(StunnerTheme.getTheme().getScrollbarColor(),
+                                                               
StunnerTheme.getTheme().getScrollbarBackgroundColor());
+        }
+    }
+
+    public void setCanvasBackgroundColor() {
+        if (null != getSession()) {
+            LienzoCanvas canvas = (LienzoCanvas) 
getSession().getCanvasHandler().getCanvas();
+
+            
canvas.setBackgroundColor(StunnerTheme.getTheme().getCanvasBackgroundColor());
+        }
+    }
+
     @PreDestroy
     public void destroy() {
         close();
diff --git 
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-widgets/src/test/java/org/kie/workbench/common/stunner/client/widgets/editor/StunnerEditorTest.java
 
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-widgets/src/test/java/org/kie/workbench/common/stunner/client/widgets/editor/StunnerEditorTest.java
index 73faf86bf82..2cb34ad202e 100644
--- 
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-widgets/src/test/java/org/kie/workbench/common/stunner/client/widgets/editor/StunnerEditorTest.java
+++ 
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-client/kie-wb-common-stunner-widgets/src/test/java/org/kie/workbench/common/stunner/client/widgets/editor/StunnerEditorTest.java
@@ -24,6 +24,7 @@ import java.util.function.Consumer;
 
 import com.ait.lienzo.client.core.shape.Layer;
 import com.ait.lienzo.client.widget.panel.LienzoBoundsPanel;
+import com.ait.lienzo.client.widget.panel.impl.ScrollablePanel;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -61,6 +62,7 @@ import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doCallRealMethod;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.lenient;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
@@ -241,4 +243,42 @@ public class StunnerEditorTest {
         doCallRealMethod().when(sessionEditorPresenter).getInstance();
         assertNull(sessionEditorPresenter.getInstance());
     }
+
+    @Test
+    public void testSetCanvasBackgroundColor() {
+        tested.setReadOnly(true);
+        openSuccess();
+        tested.setCanvasBackgroundColor();
+
+        verify(canvas, times(1)).setBackgroundColor(any());
+    }
+
+    @Test
+    public void testSetCanvasBackgroundColorNoSession() {
+        tested.setCanvasBackgroundColor();
+
+        verify(canvas, times(0)).setBackgroundColor(any());
+    }
+
+    @Test
+    public void testSetScrollbarColors() {
+        ScrollablePanel scrollablePanel = mock(ScrollablePanel.class);
+        when(panel.getView()).thenReturn(scrollablePanel);
+
+        tested.setReadOnly(true);
+        openSuccess();
+        tested.setScrollbarColors();
+
+        verify(scrollablePanel, times(1)).setScrollbarColors(any(), any());
+    }
+
+    @Test
+    public void testSetScrollbarColorsNoSession() {
+        ScrollablePanel scrollablePanel = mock(ScrollablePanel.class);
+        lenient().when(panel.getView()).thenReturn(scrollablePanel);
+
+        tested.setScrollbarColors();
+
+        verify(scrollablePanel, times(0)).setScrollbarColors(any(), any());
+    }
 }
diff --git 
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-core/kie-wb-common-stunner-commons/kie-wb-common-stunner-client-common/src/main/java/org/kie/workbench/common/stunner/core/client/theme/DefaultTheme.java
 
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-core/kie-wb-common-stunner-commons/kie-wb-common-stunner-client-common/src/main/java/org/kie/workbench/common/stunner/core/client/theme/DefaultTheme.java
index aa73901ebb4..84a15d62c4e 100644
--- 
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-core/kie-wb-common-stunner-commons/kie-wb-common-stunner-client-common/src/main/java/org/kie/workbench/common/stunner/core/client/theme/DefaultTheme.java
+++ 
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-core/kie-wb-common-stunner-commons/kie-wb-common-stunner-client-common/src/main/java/org/kie/workbench/common/stunner/core/client/theme/DefaultTheme.java
@@ -32,6 +32,8 @@ public class DefaultTheme implements StunnerColorTheme {
     // Transition text box
     static final String EDGE_TEXT_FILL_COLOR = "white";
     static final String EDGE_TEXT_STROKE_COLOR = "white";
+    //Canvas
+    static final String CANVAS_BACKGROUND_COLOR = "white";
 
     private DefaultTheme() {
     }
@@ -79,6 +81,21 @@ public class DefaultTheme implements StunnerColorTheme {
         return EDGE_TEXT_STROKE_COLOR;
     }
 
+    @Override
+    public String getScrollbarColor() {
+        return null;
+    }
+
+    @Override
+    public String getCanvasBackgroundColor() {
+        return null;
+    }
+
+    @Override
+    public String getScrollbarBackgroundColor() {
+        return CANVAS_BACKGROUND_COLOR;
+    }
+
     @Override
     public boolean isDarkTheme() {
         return false;
diff --git 
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-core/kie-wb-common-stunner-commons/kie-wb-common-stunner-client-common/src/main/java/org/kie/workbench/common/stunner/core/client/theme/StunnerColorTheme.java
 
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-core/kie-wb-common-stunner-commons/kie-wb-common-stunner-client-common/src/main/java/org/kie/workbench/common/stunner/core/client/theme/Stunner
 [...]
index ecbac7592f5..c4ffac0c3cd 100644
--- 
a/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-core/kie-wb-common-stunner-commons/kie-wb-common-stunner-client-common/src/main/java/org/kie/workbench/common/stunner/core/client/theme/StunnerColorTheme.java
+++ 
b/packages/serverless-workflow-diagram-editor/kie-wb-common-stunner/kie-wb-common-stunner-core/kie-wb-common-stunner-commons/kie-wb-common-stunner-client-common/src/main/java/org/kie/workbench/common/stunner/core/client/theme/StunnerColorTheme.java
@@ -35,5 +35,11 @@ public interface StunnerColorTheme {
 
     String getEdgeTextStrokeColor();
 
+    String getScrollbarColor();
+
+    String getCanvasBackgroundColor();
+
+    String getScrollbarBackgroundColor();
+
     boolean isDarkTheme();
 }
diff --git 
a/packages/serverless-workflow-diagram-editor/lienzo-core/src/main/java/com/ait/lienzo/client/widget/panel/impl/ScrollablePanel.java
 
b/packages/serverless-workflow-diagram-editor/lienzo-core/src/main/java/com/ait/lienzo/client/widget/panel/impl/ScrollablePanel.java
index 3adaf87e2b4..0cd486b08bb 100644
--- 
a/packages/serverless-workflow-diagram-editor/lienzo-core/src/main/java/com/ait/lienzo/client/widget/panel/impl/ScrollablePanel.java
+++ 
b/packages/serverless-workflow-diagram-editor/lienzo-core/src/main/java/com/ait/lienzo/client/widget/panel/impl/ScrollablePanel.java
@@ -100,6 +100,23 @@ public class ScrollablePanel extends LienzoBoundsPanel {
         return this;
     }
 
+    public void setScrollbarColors(String color, String backgroundColor) {
+        final String attribute = "scrollbar-color:";
+        String scrollbarStyle = scrollPanel.style.cssText;
+
+        // scrollbar-color clean up
+        if (scrollbarStyle.contains(attribute)) {
+            scrollbarStyle = scrollbarStyle.replaceAll(attribute + "[^;]*?;", 
"");
+        }
+
+        // If no colors are provided "scrollbar-color" is set to "auto" by 
default
+        if (null != color && !color.isEmpty() && null != backgroundColor && 
!backgroundColor.isEmpty()) {
+            scrollbarStyle = attribute + color + " " + backgroundColor + "; " 
+ scrollbarStyle;
+        }
+
+        scrollPanel.style.cssText = scrollbarStyle;
+    }
+
     public Bounds getVisibleBounds() {
         if (null != getViewport()) {
             final Viewport viewport = getViewport();
diff --git 
a/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-client/src/main/java/org/kie/workbench/common/stunner/sw/client/theme/DarkMode.java
 
b/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-client/src/main/java/org/kie/workbench/common/stunner/sw/client/theme/DarkMode.java
index 2726f5237a3..17b6371b38f 100644
--- 
a/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-client/src/main/java/org/kie/workbench/common/stunner/sw/client/theme/DarkMode.java
+++ 
b/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-client/src/main/java/org/kie/workbench/common/stunner/sw/client/theme/DarkMode.java
@@ -73,6 +73,9 @@ public class DarkMode implements ColorTheme {
     private static final String TRANSITION_BOX_COLOR = "gray";
     private static final String ERROR_TRANSITION_BOX_COLOR = "#9F3A3A";
     private static final String EVENT_CONDITION_TRANSITION_BOX_COLOR = 
"#C97330";
+    // Canvas Scrollbars
+    private static final String SCROLLBAR_COLOR = "#4F4F4F";
+    private static final String SCROLLBAR_BACKGROUND_COLOR = "#000";
 
     private DarkMode() {
     }
@@ -275,6 +278,16 @@ public class DarkMode implements ColorTheme {
         return EDGE_TEXT_STROKE_COLOR;
     }
 
+    @Override
+    public String getScrollbarColor() {
+        return SCROLLBAR_COLOR;
+    }
+
+    @Override
+    public String getScrollbarBackgroundColor() {
+        return SCROLLBAR_BACKGROUND_COLOR;
+    }
+
     @Override
     public boolean isDarkTheme() {
         return true;
diff --git 
a/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-client/src/main/java/org/kie/workbench/common/stunner/sw/client/theme/LightMode.java
 
b/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-client/src/main/java/org/kie/workbench/common/stunner/sw/client/theme/LightMode.java
index ee1c33d734a..3eab31d596f 100644
--- 
a/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-client/src/main/java/org/kie/workbench/common/stunner/sw/client/theme/LightMode.java
+++ 
b/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-client/src/main/java/org/kie/workbench/common/stunner/sw/client/theme/LightMode.java
@@ -275,6 +275,16 @@ public class LightMode implements ColorTheme {
         return EDGE_TEXT_STROKE_COLOR;
     }
 
+    @Override
+    public String getScrollbarColor() {
+        return null;
+    }
+
+    @Override
+    public String getScrollbarBackgroundColor() {
+        return null;
+    }
+
     @Override
     public boolean isDarkTheme() {
         return false;
diff --git 
a/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-kogito-app/src/main/java/org/kie/workbench/common/stunner/sw/client/editor/DiagramEditor.java
 
b/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-kogito-app/src/main/java/org/kie/workbench/common/stunner/sw/client/editor/DiagramEditor.java
index 5707e71f73f..6fd85ba0090 100644
--- 
a/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-kogito-app/src/main/java/org/kie/workbench/common/stunner/sw/client/editor/DiagramEditor.java
+++ 
b/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-kogito-app/src/main/java/org/kie/workbench/common/stunner/sw/client/editor/DiagramEditor.java
@@ -183,7 +183,7 @@ public class DiagramEditor {
 
     private void setTheme() {
         StunnerTheme.setTheme(themeToBeApplied);
-        setCanvasBackgroundColor();
+        setCanvasColors();
         themeToBeApplied = null;
     }
 
@@ -193,11 +193,9 @@ public class DiagramEditor {
         }
     }
 
-    void setCanvasBackgroundColor() {
-        if (null != stunnerEditor.getSession()) {
-            ((WiresCanvas) stunnerEditor.getCanvasHandler().getCanvas())
-                    .setBackgroundColor(((ColorTheme) 
StunnerTheme.getTheme()).getCanvasBackgroundColor());
-        }
+    void setCanvasColors() {
+        stunnerEditor.setScrollbarColors();
+        stunnerEditor.setCanvasBackgroundColor();
     }
 
     public Promise<Void> setContent(final String path, final String value) {
@@ -273,7 +271,7 @@ public class DiagramEditor {
 
                                                                @Override
                                                                public void 
afterCanvasInitialized() {
-                                                                   
setCanvasBackgroundColor();
+                                                                   
setCanvasColors();
                                                                }
                                                            });
                                          }
diff --git 
a/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-kogito-app/src/test/java/org/kie/workbench/common/stunner/sw/client/editor/DiagramEditorTest.java
 
b/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-kogito-app/src/test/java/org/kie/workbench/common/stunner/sw/client/editor/DiagramEditorTest.java
index 78b350cbf35..879526f78fb 100644
--- 
a/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-kogito-app/src/test/java/org/kie/workbench/common/stunner/sw/client/editor/DiagramEditorTest.java
+++ 
b/packages/serverless-workflow-diagram-editor/sw-editor/sw-editor-kogito-app/src/test/java/org/kie/workbench/common/stunner/sw/client/editor/DiagramEditorTest.java
@@ -269,7 +269,7 @@ public class DiagramEditorTest {
         tested.applyTheme(DarkMode.NAME);
 
         verify(tested, times(1)).reloadEditorContent();
-        verify(tested, times(1)).setCanvasBackgroundColor();
+        verify(tested, times(1)).setCanvasColors();
         assertNull(tested.themeToBeApplied);
         assertTrue(StunnerTheme.getTheme() instanceof DarkMode);
     }
@@ -288,7 +288,7 @@ public class DiagramEditorTest {
         tested.applyTheme(DarkMode.NAME);
 
         verify(tested, times(0)).reloadEditorContent();
-        verify(tested, times(0)).setCanvasBackgroundColor();
+        verify(tested, times(0)).setCanvasColors();
         assertTrue(tested.themeToBeApplied instanceof DarkMode);
     }
 
@@ -304,7 +304,7 @@ public class DiagramEditorTest {
         tested.applyTheme(null);
 
         verify(tested, times(0)).reloadEditorContent();
-        verify(tested, times(0)).setCanvasBackgroundColor();
+        verify(tested, times(0)).setCanvasColors();
         assertNull(tested.themeToBeApplied);
         assertTrue(StunnerTheme.getTheme() instanceof LightMode);
     }
@@ -321,7 +321,7 @@ public class DiagramEditorTest {
         tested.applyTheme(LightMode.NAME);
 
         verify(tested, times(0)).reloadEditorContent();
-        verify(tested, times(0)).setCanvasBackgroundColor();
+        verify(tested, times(0)).setCanvasColors();
         assertNull(tested.themeToBeApplied);
         assertTrue(StunnerTheme.getTheme() instanceof LightMode);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to