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]