This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/master by this push:
new c0eb0bb6c1 Fix #2395 Improve the look & feel of the widgets per
operating system - Some tweaks for Windows dark mode - Add some missings
setLook - MetaSelectionLine initializes its own look - StyledTextComp propagate
colors to text widget - Increase the height of the tab folder for Windows
new 3dd7894cb7 Merge pull request #2436 from nadment/2435
c0eb0bb6c1 is described below
commit c0eb0bb6c1a896379b91db0589992f3a02661d59
Author: Nicolas Adment <[email protected]>
AuthorDate: Sat Feb 18 17:48:52 2023 +0100
Fix #2395 Improve the look & feel of the widgets per operating system
- Some tweaks for Windows dark mode
- Add some missings setLook
- MetaSelectionLine initializes its own look
- StyledTextComp propagate colors to text widget
- Increase the height of the tab folder for Windows
Fix #2435
- Bump org.eclipse.platform.version to 3.122.0
- Bump org.eclipse.rap.version to 3.23
---
core/src/main/java/org/apache/hop/core/Props.java | 3 +-
.../hop/ui/testing/PipelineUnitTestEditor.java | 1 +
.../transforms/metainject/MetaInjectDialog.java | 16 +-
pom.xml | 2 +-
rap/pom.xml | 2 +-
.../main/java/org/apache/hop/ui/core/PropsUi.java | 214 +++++++++++++++++----
.../hop/ui/core/database/DatabaseMetaEditor.java | 2 +-
.../apache/hop/ui/core/dialog/ContextDialog.java | 1 +
.../apache/hop/ui/core/vfs/HopVfsFileDialog.java | 10 +-
.../hop/ui/core/widget/MetaSelectionLine.java | 13 +-
.../apache/hop/ui/core/widget/StyledTextComp.java | 12 ++
.../main/java/org/apache/hop/ui/hopgui/HopGui.java | 5 +
.../config/PipelineRunConfigurationEditor.java | 1 -
.../PipelineExecutionConfigurationDialog.java | 3 +-
.../workflow/actions/start/ActionStartDialog.java | 2 +
.../config/WorkflowRunConfigurationEditor.java | 1 -
.../WorkflowExecutionConfigurationDialog.java | 3 +-
17 files changed, 228 insertions(+), 63 deletions(-)
diff --git a/core/src/main/java/org/apache/hop/core/Props.java
b/core/src/main/java/org/apache/hop/core/Props.java
index 17a809649a..69c4cbebb4 100644
--- a/core/src/main/java/org/apache/hop/core/Props.java
+++ b/core/src/main/java/org/apache/hop/core/Props.java
@@ -94,7 +94,8 @@ public class Props implements Cloneable {
public static final int WIDGET_STYLE_TAB = 4;
public static final int WIDGET_STYLE_TOOLBAR = 5;
public static final int WIDGET_STYLE_PUSH_BUTTON = 6;
-
+ public static final int WIDGET_STYLE_TREE = 7;
+
public Props() {
log = new LogChannel(STRING_USER_PREFERENCES);
}
diff --git
a/plugins/misc/testing/src/main/java/org/apache/hop/ui/testing/PipelineUnitTestEditor.java
b/plugins/misc/testing/src/main/java/org/apache/hop/ui/testing/PipelineUnitTestEditor.java
index c7205c1a30..17f496ea21 100644
---
a/plugins/misc/testing/src/main/java/org/apache/hop/ui/testing/PipelineUnitTestEditor.java
+++
b/plugins/misc/testing/src/main/java/org/apache/hop/ui/testing/PipelineUnitTestEditor.java
@@ -132,6 +132,7 @@ public class PipelineUnitTestEditor extends
MetadataEditor<PipelineUnitTest> {
fdlTestType.right = new FormAttachment(middle, -margin);
wlTestType.setLayoutData(fdlTestType);
wTestType = new Combo(parent, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
+ PropsUi.setLook(wTestType);
FormData fdTestType = new FormData();
fdTestType.top = new FormAttachment(wlTestType, 0, SWT.CENTER);
fdTestType.left = new FormAttachment(middle, 0);
diff --git
a/plugins/transforms/metainject/src/main/java/org/apache/hop/pipeline/transforms/metainject/MetaInjectDialog.java
b/plugins/transforms/metainject/src/main/java/org/apache/hop/pipeline/transforms/metainject/MetaInjectDialog.java
index 072f452b5a..1172bf8a10 100644
---
a/plugins/transforms/metainject/src/main/java/org/apache/hop/pipeline/transforms/metainject/MetaInjectDialog.java
+++
b/plugins/transforms/metainject/src/main/java/org/apache/hop/pipeline/transforms/metainject/MetaInjectDialog.java
@@ -202,7 +202,7 @@ public class MetaInjectDialog extends BaseTransformDialog
implements ITransformD
new Button[] {
wOk, wGet, wCancel,
},
- props.getMargin(),
+ PropsUi.getMargin(),
null);
// Transform Name line
@@ -244,7 +244,7 @@ public class MetaInjectDialog extends BaseTransformDialog
implements ITransformD
PropsUi.setLook(wbBrowse);
wbBrowse.setText(BaseMessages.getString(PKG,
"MetaInjectDialog.Browse.Label"));
FormData fdBrowse = new FormData();
- fdBrowse.right = new FormAttachment(100, -props.getMargin());
+ fdBrowse.right = new FormAttachment(100, -PropsUi.getMargin());
fdBrowse.top = new FormAttachment(wlPath, Const.isOSX() ? 0 : 5);
wbBrowse.setLayoutData(fdBrowse);
@@ -253,7 +253,7 @@ public class MetaInjectDialog extends BaseTransformDialog
implements ITransformD
FormData fdTransformation = new FormData();
fdTransformation.left = new FormAttachment(0, 0);
fdTransformation.top = new FormAttachment(wlPath, 5);
- fdTransformation.right = new FormAttachment(wbBrowse, -props.getMargin());
+ fdTransformation.right = new FormAttachment(wbBrowse,
-PropsUi.getMargin());
wPath.setLayoutData(fdTransformation);
wPath.addFocusListener(
new FocusAdapter() {
@@ -387,7 +387,7 @@ public class MetaInjectDialog extends BaseTransformDialog
implements ITransformD
// START OF OPTIONS TAB ///
// ////////////////////////
- int margin = props.getMargin();
+ int margin = PropsUi.getMargin();
CTabItem wOptionsTab = new CTabItem(wTabFolder, SWT.NONE);
wOptionsTab.setFont(GuiResource.getInstance().getFontDefault());
@@ -614,9 +614,8 @@ public class MetaInjectDialog extends BaseTransformDialog
implements ITransformD
wInjectComp.setLayout(fileLayout);
// Add a search bar at the top...
- ToolBar treeTb = new ToolBar(wInjectComp, SWT.HORIZONTAL | SWT.FLAT);
- PropsUi.setLook(treeTb);
-
+ ToolBar treeTb = new ToolBar(wInjectComp, SWT.HORIZONTAL | SWT.FLAT);
+ PropsUi.setLook(treeTb, PropsUi.WIDGET_STYLE_DEFAULT);
ToolItem wFilter = new ToolItem(treeTb, SWT.SEPARATOR);
wSearchText = new Text(treeTb, SWT.SEARCH | SWT.CANCEL | SWT.ICON_SEARCH |
SWT.ICON_CANCEL);
wSearchText.setData(BaseDialog.NO_DEFAULT_HANDLER, true);
@@ -669,7 +668,8 @@ public class MetaInjectDialog extends BaseTransformDialog
implements ITransformD
fdTree.right = new FormAttachment(100, 0);
fdTree.bottom = new FormAttachment(100, 0);
wTree.setLayoutData(fdTree);
-
+ PropsUi.setLook(wTree);
+
ColumnInfo[] colinf =
new ColumnInfo[] {
new ColumnInfo(
diff --git a/pom.xml b/pom.xml
index 632bc80fcf..dd293bb6d2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -166,7 +166,7 @@
<okhttp.version>4.10.0</okhttp.version>
<opencensus-api.version>0.31.1</opencensus-api.version>
<opencensus-contrib-http-util.version>0.31.1</opencensus-contrib-http-util.version>
- <org.eclipse.platform.version>3.121.0</org.eclipse.platform.version>
+ <org.eclipse.platform.version>3.122.0</org.eclipse.platform.version>
<org.eclipse.commands.version>3.9.600</org.eclipse.commands.version>
<org.eclipse.equinox.version>3.10.600</org.eclipse.equinox.version>
<opencsv.version>5.7.1</opencsv.version>
diff --git a/rap/pom.xml b/rap/pom.xml
index c48590b36c..f3ec3aba05 100644
--- a/rap/pom.xml
+++ b/rap/pom.xml
@@ -32,7 +32,7 @@
</parent>
<properties>
- <rap.version>3.22.0</rap.version>
+ <rap.version>3.23.0</rap.version>
</properties>
diff --git a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
index 046fa7b950..caf34dc4ce 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
@@ -48,6 +48,7 @@ import org.eclipse.swt.widgets.Layout;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.Widget;
import java.util.HashMap;
@@ -153,43 +154,29 @@ public class PropsUi extends Props {
}
}
- // The user manually selected Dark Mode
- // We'll try to change settings to make this possible.
- //
+ // Various tweaks to improve dark theme experience on Windows
if (OsHelper.isWindows() && isDarkMode()) {
-
display.setData("org.eclipse.swt.internal.win32.useDarkModeExplorerTheme",
Boolean.TRUE);
- display.setData("org.eclipse.swt.internal.win32.useShellTitleColoring",
Boolean.TRUE);
- display.setData(
- "org.eclipse.swt.internal.win32.menuBarForegroundColor",
+
display.setData("org.eclipse.swt.internal.win32.useDarkModeExplorerTheme",
true);
+ display.setData("org.eclipse.swt.internal.win32.useShellTitleColoring",
true);
+ display.setData("org.eclipse.swt.internal.win32.menuBarForegroundColor",
new Color(display, 0xD0, 0xD0, 0xD0));
- display.setData(
- "org.eclipse.swt.internal.win32.menuBarBackgroundColor",
+ display.setData("org.eclipse.swt.internal.win32.menuBarBackgroundColor",
new Color(display, 0x30, 0x30, 0x30));
- display.setData(
- "org.eclipse.swt.internal.win32.menuBarBorderColor",
+ display.setData("org.eclipse.swt.internal.win32.menuBarBorderColor",
new Color(display, 0x50, 0x50, 0x50));
- display.setData("org.eclipse.swt.internal.win32.Canvas.use_WS_BORDER",
Boolean.TRUE);
- display.setData("org.eclipse.swt.internal.win32.List.use_WS_BORDER",
Boolean.TRUE);
- display.setData("org.eclipse.swt.internal.win32.Table.use_WS_BORDER",
Boolean.TRUE);
- display.setData("org.eclipse.swt.internal.win32.Combo.use_WS_BORDER",
Boolean.TRUE);
- display.setData("org.eclipse.swt.internal.win32.Text.use_WS_BORDER",
Boolean.TRUE);
- display.setData("org.eclipse.swt.internal.win32.Tree.use_WS_BORDER",
Boolean.TRUE);
- display.setData(
- "org.eclipse.swt.internal.win32.Table.headerLineColor",
+ display.setData("org.eclipse.swt.internal.win32.all.use_WS_BORDER",
true);
+ display.setData("org.eclipse.swt.internal.win32.Table.headerLineColor",
new Color(display, 0x50, 0x50, 0x50));
- display.setData(
- "org.eclipse.swt.internal.win32.Label.disabledForegroundColor",
+
display.setData("org.eclipse.swt.internal.win32.Label.disabledForegroundColor",
new Color(display, 0x80, 0x80, 0x80));
- display.setData("org.eclipse.swt.internal.win32.Combo.useDarkTheme",
Boolean.TRUE);
- display.setData(
- "org.eclipse.swt.internal.win32.ToolBar.backgroundColor",
+ display.setData("org.eclipse.swt.internal.win32.Combo.useDarkTheme",
true);
+ display.setData("org.eclipse.swt.internal.win32.ToolBar.backgroundColor",
new Color(display, 0xD0, 0xD0, 0xD0));
- display.setData(
- "org.eclipse.swt.internal.win32.Combo.backgroundColor",
+ display.setData("org.eclipse.swt.internal.win32.Combo.backgroundColor",
new Color(display, 0xD0, 0xD0, 0xD0));
- display.setData("org.eclipse.swt.internal.win32.ProgressBar.useColors",
Boolean.TRUE);
+ display.setData("org.eclipse.swt.internal.win32.ProgressBar.useColors",
true);
}
-
+
if (display != null) {
FontData fontData = getDefaultFont();
setProperty(STRING_FONT_DEFAULT_NAME, fontData.getName());
@@ -481,8 +468,10 @@ public class PropsUi extends Props {
public static void setLook(Widget widget) {
int style = WIDGET_STYLE_DEFAULT;
- if (widget instanceof Table) {
+ if (widget instanceof Table ) {
style = WIDGET_STYLE_TABLE;
+ } else if (widget instanceof Tree) {
+ style = WIDGET_STYLE_TREE;
} else if (widget instanceof ToolBar) {
style = WIDGET_STYLE_TOOLBAR;
} else if (widget instanceof CTabFolder) {
@@ -498,15 +487,109 @@ public class PropsUi extends Props {
}
setLook(widget, style);
-
+
if (widget instanceof Composite) {
- for (Control child : ((Composite) widget).getChildren()) {
+ Composite composite = (Composite) widget;
+ for (Control child : composite.getChildren()) {
setLook(child);
}
}
}
public static void setLook(final Widget widget, int style) {
+ if (OsHelper.isWindows()) {
+ setLookOnWindows(widget, style);
+ } else if (OsHelper.isMac()) {
+ setLookOnMac(widget, style);
+ } else {
+ setLookOnLinux(widget, style);
+ }
+ }
+
+ protected static void setLookOnWindows(final Widget widget, int style) {
+ final GuiResource gui = GuiResource.getInstance();
+ Font font = gui.getFontDefault();
+ Color background = null;
+ Color foreground = null;
+
+ if ( widget instanceof Shell ) {
+ background = gui.getColorWhite();
+ foreground = gui.getColorBlack();
+ Shell shell = (Shell) widget;
+ shell.setBackgroundMode(SWT.INHERIT_FORCE);
+ shell.setForeground(gui.getColorBlack());
+ shell.setBackground(gui.getColorWhite());
+ return;
+ }
+
+ switch (style) {
+ case WIDGET_STYLE_DEFAULT:
+ background = gui.getColorWhite();
+ foreground = gui.getColorBlack();
+ break;
+ case WIDGET_STYLE_FIXED:
+ font = gui.getFontFixed();
+ background = gui.getColorWhite();
+ foreground = gui.getColorBlack();
+ break;
+ case WIDGET_STYLE_TABLE:
+ if (PropsUi.getInstance().isDarkMode()) {
+ background = gui.getColorWhite();
+ foreground = gui.getColorBlack();
+ Table table = (Table) widget;
+ table.setHeaderBackground(gui.getColorLightGray());
+ table.setHeaderForeground(gui.getColorDarkGray());
+ }
+ break;
+ case WIDGET_STYLE_TREE:
+ if (PropsUi.getInstance().isDarkMode()) {
+ background = gui.getColorWhite();
+ foreground = gui.getColorBlack();
+ Tree tree = (Tree) widget;
+ tree.setHeaderBackground(gui.getColorLightGray());
+ tree.setHeaderForeground(gui.getColorDarkGray());
+ }
+ break;
+ case WIDGET_STYLE_TOOLBAR:
+ if (PropsUi.getInstance().isDarkMode() ) {
+ background = gui.getColorLightGray();
+ foreground = gui.getColorBlack();
+ }
+ break;
+ case WIDGET_STYLE_TAB:
+ CTabFolder tabFolder = (CTabFolder) widget;
+ tabFolder.setBorderVisible(true);
+ tabFolder.setTabHeight(28);
+ if (PropsUi.getInstance().isDarkMode()) {
+ tabFolder.setBackground(gui.getColorWhite());
+ tabFolder.setForeground(gui.getColorBlack());
+ tabFolder.setSelectionBackground(gui.getColorWhite());
+ tabFolder.setSelectionForeground(gui.getColorBlack());
+ }
+ break;
+ case WIDGET_STYLE_PUSH_BUTTON:
+ break;
+ default:
+ background = gui.getColorGray();
+ font = null;
+ break;
+ }
+
+ if (font != null && !font.isDisposed() && (widget instanceof Control)) {
+ ((Control) widget).setFont(font);
+ }
+
+ if (background != null && !background.isDisposed() && (widget instanceof
Control)) {
+ ((Control) widget).setBackground(background);
+ }
+
+ if (foreground != null && !foreground.isDisposed() && (widget instanceof
Control)) {
+ ((Control) widget).setForeground(foreground);
+ }
+ }
+
+
+ protected static void setLookOnMac(final Widget widget, int style) {
final GuiResource gui = GuiResource.getInstance();
Font font = gui.getFontDefault();
Color background = gui.getColorWhite();
@@ -534,11 +617,13 @@ public class PropsUi extends Props {
case WIDGET_STYLE_TABLE:
background = gui.getColorLightGray();
foreground = gui.getColorDarkGray();
-
- Table table = (Table) widget;
+ Table table = (Table) widget;
table.setHeaderBackground(gui.getColorLightGray());
table.setHeaderForeground(gui.getColorDarkGray());
break;
+ case WIDGET_STYLE_TREE:
+ // TODO: Adjust for Linux
+ break;
case WIDGET_STYLE_TOOLBAR:
if (PropsUi.getInstance().isDarkMode()) {
background = gui.getColorLightGray();
@@ -576,7 +661,70 @@ public class PropsUi extends Props {
((Control) widget).setForeground(foreground);
}
}
+
+ protected static void setLookOnLinux(final Widget widget, int style) {
+ final GuiResource gui = GuiResource.getInstance();
+ Font font = gui.getFontDefault();
+ Color background = gui.getColorWhite();
+ Color foreground = gui.getColorBlack();
+ switch (style) {
+ case WIDGET_STYLE_DEFAULT:
+ break;
+ case WIDGET_STYLE_OSX_GROUP:
+ // TODO: Adjust for Linux
+ break;
+ case WIDGET_STYLE_FIXED:
+ font = gui.getFontFixed();
+ break;
+ case WIDGET_STYLE_TABLE:
+ background = gui.getColorLightGray();
+ foreground = gui.getColorDarkGray();
+ Table table = (Table) widget;
+ table.setHeaderBackground(gui.getColorLightGray());
+ table.setHeaderForeground(gui.getColorDarkGray());
+ break;
+ case WIDGET_STYLE_TREE:
+ // TODO: Adjust for Linux
+ break;
+ case WIDGET_STYLE_TOOLBAR:
+ if (PropsUi.getInstance().isDarkMode()) {
+ background = gui.getColorLightGray();
+ } else {
+ background = gui.getColorDemoGray();
+ }
+ break;
+ case WIDGET_STYLE_TAB:
+ CTabFolder tabFolder = (CTabFolder) widget;
+ tabFolder.setBorderVisible(true);
+ tabFolder.setBackground(gui.getColorGray());
+ tabFolder.setForeground(gui.getColorBlack());
+ tabFolder.setSelectionBackground(gui.getColorWhite());
+ tabFolder.setSelectionForeground(gui.getColorBlack());
+ break;
+ case WIDGET_STYLE_PUSH_BUTTON:
+ background = null;
+ foreground = null;
+ break;
+ default:
+ background = gui.getColorBackground();
+ font = null;
+ break;
+ }
+
+ if (font != null && !font.isDisposed() && (widget instanceof Control)) {
+ ((Control) widget).setFont(font);
+ }
+
+ if (background != null && !background.isDisposed() && (widget instanceof
Control)) {
+ ((Control) widget).setBackground(background);
+ }
+
+ if (foreground != null && !foreground.isDisposed() && (widget instanceof
Control)) {
+ ((Control) widget).setForeground(foreground);
+ }
+ }
+
/**
* @return Returns the display.
*/
diff --git
a/ui/src/main/java/org/apache/hop/ui/core/database/DatabaseMetaEditor.java
b/ui/src/main/java/org/apache/hop/ui/core/database/DatabaseMetaEditor.java
index b9cee7a216..6a05f63db3 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/database/DatabaseMetaEditor.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/database/DatabaseMetaEditor.java
@@ -267,7 +267,7 @@ public class DatabaseMetaEditor extends
MetadataEditor<DatabaseMeta> {
fdToolBar.right = new FormAttachment(100, 0);
fdToolBar.top = new FormAttachment(0, 0);
wToolBar.setLayoutData(fdToolBar);
- PropsUi.setLook(wToolBar);
+ PropsUi.setLook(wToolBar, PropsUi.WIDGET_STYLE_DEFAULT);
ToolItem item = new ToolItem(wToolBar, SWT.PUSH);
item.setImage(GuiResource.getInstance().getImageHelpWeb());
diff --git a/ui/src/main/java/org/apache/hop/ui/core/dialog/ContextDialog.java
b/ui/src/main/java/org/apache/hop/ui/core/dialog/ContextDialog.java
index bf15e0ae33..735c57ce59 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/dialog/ContextDialog.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/dialog/ContextDialog.java
@@ -389,6 +389,7 @@ public class ContextDialog extends Dialog {
searchComposite,
SWT.LEFT | SWT.BORDER | SWT.SINGLE | SWT.SEARCH | SWT.ICON_SEARCH
| SWT.ICON_CANCEL);
wSearch.setLayoutData(new GridData(GridData.FILL_BOTH));
+ PropsUi.setLook(wSearch, Props.WIDGET_STYLE_TOOLBAR);
// Create a toolbar at the right of the search bar...
//
diff --git a/ui/src/main/java/org/apache/hop/ui/core/vfs/HopVfsFileDialog.java
b/ui/src/main/java/org/apache/hop/ui/core/vfs/HopVfsFileDialog.java
index 3c959e1768..147f3d582f 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/vfs/HopVfsFileDialog.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/vfs/HopVfsFileDialog.java
@@ -296,7 +296,7 @@ public class HopVfsFileDialog implements IFileDialog,
IDirectoryDialog {
wCancel.addListener(SWT.Selection, e -> cancel());
BaseTransformDialog.positionBottomButtons(
- shell, new Button[] {wOk, wCancel}, props.getMargin(), null);
+ shell, new Button[] {wOk, wCancel}, PropsUi.getMargin(), null);
///////////////////////////////////////////////////////////////////////////////////////////////////////
// On top there are the navigation
@@ -316,9 +316,9 @@ public class HopVfsFileDialog implements IFileDialog,
IDirectoryDialog {
// A toolbar above the browser, below the filename
//
- ToolBar navigateToolBar = new ToolBar(navigateComposite, SWT.LEFT |
SWT.HORIZONTAL);
+ ToolBar navigateToolBar = new ToolBar(navigateComposite, SWT.LEFT |
SWT.HORIZONTAL);
navigateToolBar.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false,
true));
- PropsUi.setLook(navigateToolBar);
+ PropsUi.setLook(navigateToolBar, PropsUi.WIDGET_STYLE_DEFAULT);
navigateToolbarWidgets = new GuiToolbarWidgets();
navigateToolbarWidgets.registerGuiPluginObject(this);
@@ -344,9 +344,9 @@ public class HopVfsFileDialog implements IFileDialog,
IDirectoryDialog {
SashForm sashForm = new SashForm(shell, SWT.HORIZONTAL);
FormData fdSashForm = new FormData();
fdSashForm.left = new FormAttachment(0, 0);
- fdSashForm.top = new FormAttachment(navigateComposite, props.getMargin());
+ fdSashForm.top = new FormAttachment(navigateComposite,
PropsUi.getMargin());
fdSashForm.right = new FormAttachment(100, 0);
- fdSashForm.bottom = new FormAttachment(wOk, (int) (-props.getMargin() *
props.getZoomFactor()));
+ fdSashForm.bottom = new FormAttachment(wOk, (int) (-PropsUi.getMargin() *
props.getZoomFactor()));
sashForm.setLayoutData(fdSashForm);
PropsUi.setLook(sashForm);
diff --git
a/ui/src/main/java/org/apache/hop/ui/core/widget/MetaSelectionLine.java
b/ui/src/main/java/org/apache/hop/ui/core/widget/MetaSelectionLine.java
index aef69d19a5..5f12968d28 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/widget/MetaSelectionLine.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/widget/MetaSelectionLine.java
@@ -187,20 +187,19 @@ public class MetaSelectionLine<T extends IHopMetadata>
extends Composite {
// Toolbar for default actions
//
- wToolBar = new ToolBar(this, SWT.FLAT | SWT.HORIZONTAL);
+ wToolBar = new ToolBar(this, SWT.FLAT | SWT.HORIZONTAL);
+ PropsUi.setLook(wToolBar, PropsUi.WIDGET_STYLE_DEFAULT);
FormData fdToolBar = new FormData();
fdToolBar.right = new FormAttachment(100, 0);
fdToolBar.top = new FormAttachment(0, 0);
wToolBar.setLayoutData(fdToolBar);
- //wToolBar.setBackgroundMode(SWT.INHERIT_DEFAULT);
- wToolBar.setBackground(GuiResource.getInstance().getColorGreen());
- //wToolBar.setForeground(GuiResource.getInstance().getColorBackground());
-
+
// Add more toolbar items from plugins.
//
GuiToolbarWidgets toolbarWidgets = new GuiToolbarWidgets();
- toolbarWidgets.registerGuiPluginObject(this);
-
toolbarWidgets.setItemBackgroundColor(GuiResource.getInstance().getColorBackground());
+ toolbarWidgets.registerGuiPluginObject(this);
+ // Removed for Windows dark mode
+ //
toolbarWidgets.setItemBackgroundColor(GuiResource.getInstance().getColorBackground());
toolbarWidgets.createToolbarWidgets(wToolBar,
GUI_PLUGIN_TOOLBAR_PARENT_ID);
int textFlags = SWT.SINGLE | SWT.LEFT | SWT.BORDER;
diff --git a/ui/src/main/java/org/apache/hop/ui/core/widget/StyledTextComp.java
b/ui/src/main/java/org/apache/hop/ui/core/widget/StyledTextComp.java
index 8e096800f9..9a35f71351 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/widget/StyledTextComp.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/widget/StyledTextComp.java
@@ -162,6 +162,18 @@ public class StyledTextComp extends Composite {
textWidget.setSelection(arg0, arg1);
}
+ @Override
+ public void setBackground(Color color) {
+ super.setBackground(color);
+ textWidget.setBackground(color);
+ }
+
+ @Override
+ public void setForeground(Color color) {
+ super.setForeground(color);
+ textWidget.setForeground(color);
+ }
+
@Override
public void setFont(Font fnt) {
textWidget.setFont(fnt);
diff --git a/ui/src/main/java/org/apache/hop/ui/hopgui/HopGui.java
b/ui/src/main/java/org/apache/hop/ui/hopgui/HopGui.java
index 0ce39a97d6..8ee185a083 100644
--- a/ui/src/main/java/org/apache/hop/ui/hopgui/HopGui.java
+++ b/ui/src/main/java/org/apache/hop/ui/hopgui/HopGui.java
@@ -590,6 +590,11 @@ public class HopGui
// Bootstrap Hop
//
Display display = new Display();
+
+ // Initialize early for some tweaks (before shell creation)
+ //
+ PropsUi.getInstance();
+
return display;
}
diff --git
a/ui/src/main/java/org/apache/hop/ui/pipeline/config/PipelineRunConfigurationEditor.java
b/ui/src/main/java/org/apache/hop/ui/pipeline/config/PipelineRunConfigurationEditor.java
index d580c903e4..c843f346d7 100644
---
a/ui/src/main/java/org/apache/hop/ui/pipeline/config/PipelineRunConfigurationEditor.java
+++
b/ui/src/main/java/org/apache/hop/ui/pipeline/config/PipelineRunConfigurationEditor.java
@@ -242,7 +242,6 @@ public class PipelineRunConfigurationEditor extends
MetadataEditor<PipelineRunCo
PKG,
"PipelineRunConfigurationDialog.label.ExecutionInfoLocation"),
BaseMessages.getString(
PKG,
"PipelineRunConfigurationDialog.toolTip.ExecutionInfoLocation"));
- PropsUi.setLook(wExecutionInfoLocation);
FormData fdExecutionInfoLocation = new FormData();
fdExecutionInfoLocation.top = new FormAttachment(lastControl, margin);
fdExecutionInfoLocation.left = new FormAttachment(0, 0); // To the right
of the label
diff --git
a/ui/src/main/java/org/apache/hop/ui/pipeline/dialog/PipelineExecutionConfigurationDialog.java
b/ui/src/main/java/org/apache/hop/ui/pipeline/dialog/PipelineExecutionConfigurationDialog.java
index e36bcf4f93..c1c0853cac 100644
---
a/ui/src/main/java/org/apache/hop/ui/pipeline/dialog/PipelineExecutionConfigurationDialog.java
+++
b/ui/src/main/java/org/apache/hop/ui/pipeline/dialog/PipelineExecutionConfigurationDialog.java
@@ -155,10 +155,9 @@ public class PipelineExecutionConfigurationDialog extends
ConfigurationDialog {
runConfigTooltip,
true);
wRunConfigurationControl = wRunConfiguration;
- PropsUi.setLook(wRunConfiguration);
FormData fdRunConfiguration = new FormData();
fdRunConfiguration.right = new FormAttachment(100, 0);
- fdRunConfiguration.top = new FormAttachment(0, props.getMargin());
+ fdRunConfiguration.top = new FormAttachment(0, PropsUi.getMargin());
fdRunConfiguration.left = new FormAttachment(0, 0);
wRunConfiguration.setLayoutData(fdRunConfiguration);
}
diff --git
a/ui/src/main/java/org/apache/hop/ui/workflow/actions/start/ActionStartDialog.java
b/ui/src/main/java/org/apache/hop/ui/workflow/actions/start/ActionStartDialog.java
index 1417c6a4f2..1449601c72 100644
---
a/ui/src/main/java/org/apache/hop/ui/workflow/actions/start/ActionStartDialog.java
+++
b/ui/src/main/java/org/apache/hop/ui/workflow/actions/start/ActionStartDialog.java
@@ -137,6 +137,7 @@ public class ActionStartDialog extends ActionDialog
implements IActionDialog {
wRepeat.addListener(SWT.Selection, e -> enableDisableControls());
Group gRepeat = new Group(shell, SWT.SHADOW_NONE);
+ PropsUi.setLook(gRepeat);
gRepeat.setText(BaseMessages.getString(PKG, "ActionStart.Repeat.Label"));
FormData fdgRepeat = new FormData();
fdgRepeat.left = new FormAttachment(0, 0);
@@ -160,6 +161,7 @@ public class ActionStartDialog extends ActionDialog
implements IActionDialog {
wlType.setLayoutData(fdlType);
wType = new CCombo(gRepeat, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
+ PropsUi.setLook(wType);
wType.addListener(SWT.Selection, arg0 -> enableDisableControls());
wType.setItems(new String[] {NO_SCHEDULING, INTERVAL, DAILY, WEEKLY,
MONTHLY});
wType.setEditable(false);
diff --git
a/ui/src/main/java/org/apache/hop/ui/workflow/config/WorkflowRunConfigurationEditor.java
b/ui/src/main/java/org/apache/hop/ui/workflow/config/WorkflowRunConfigurationEditor.java
index 4e70976cf4..2f89c50c22 100644
---
a/ui/src/main/java/org/apache/hop/ui/workflow/config/WorkflowRunConfigurationEditor.java
+++
b/ui/src/main/java/org/apache/hop/ui/workflow/config/WorkflowRunConfigurationEditor.java
@@ -207,7 +207,6 @@ public class WorkflowRunConfigurationEditor extends
MetadataEditor<WorkflowRunCo
PKG,
"WorkflowRunConfigurationDialog.label.ExecutionInfoLocation"),
BaseMessages.getString(
PKG,
"WorkflowRunConfigurationDialog.toolTip.ExecutionInfoLocation"), false, true);
- PropsUi.setLook(wExecutionInfoLocation);
FormData fdExecutionInfoLocation = new FormData();
fdExecutionInfoLocation.top = new FormAttachment(lastControl, margin);
fdExecutionInfoLocation.left = new FormAttachment(0, 0); // To the right
of the label
diff --git
a/ui/src/main/java/org/apache/hop/ui/workflow/dialog/WorkflowExecutionConfigurationDialog.java
b/ui/src/main/java/org/apache/hop/ui/workflow/dialog/WorkflowExecutionConfigurationDialog.java
index 34fbb516b6..5866914ed2 100644
---
a/ui/src/main/java/org/apache/hop/ui/workflow/dialog/WorkflowExecutionConfigurationDialog.java
+++
b/ui/src/main/java/org/apache/hop/ui/workflow/dialog/WorkflowExecutionConfigurationDialog.java
@@ -185,10 +185,9 @@ public class WorkflowExecutionConfigurationDialog extends
ConfigurationDialog {
runConfigTooltip,
true);
wRunConfigurationControl = wRunConfiguration;
- PropsUi.setLook(wRunConfiguration);
FormData fdRunConfiguration = new FormData();
fdRunConfiguration.right = new FormAttachment(100, 0);
- fdRunConfiguration.top = new FormAttachment(0, props.getMargin());
+ fdRunConfiguration.top = new FormAttachment(0, PropsUi.getMargin());
fdRunConfiguration.left = new FormAttachment(0, 0);
wRunConfiguration.setLayoutData(fdRunConfiguration);
}