diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java index 5318773d..67728871 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java @@ -130,7 +130,7 @@ public interface FlatClientProperties * Specifies the style of a component in CSS syntax ("key1: value1; key2: value2; ..."). *
* Components {@link javax.swing.JComponent}
- * Value type {@link java.lang.String}
+ * Value type {@link java.lang.String} or {@link java.util.Map}<String, Object>
*
* @since TODO
*/
diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatSliderUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatSliderUI.java
index 2c0b31ba..8bf7ea23 100644
--- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatSliderUI.java
+++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatSliderUI.java
@@ -190,7 +190,7 @@ public class FlatSliderUI
switch( e.getPropertyName() ) {
case FlatClientProperties.COMPONENT_STYLE:
- applyStyle( FlatStyleSupport.toString( e.getNewValue() ) );
+ applyStyle( e.getNewValue() );
slider.revalidate();
slider.repaint();
break;
@@ -201,8 +201,8 @@ public class FlatSliderUI
/**
* @since TODO
*/
- protected void applyStyle( String style ) {
- oldStyleValues = FlatStyleSupport.parse( oldStyleValues, style, this::applyStyleProperty );
+ protected void applyStyle( Object style ) {
+ oldStyleValues = FlatStyleSupport.parseAndApply( oldStyleValues, style, this::applyStyleProperty );
}
/**
diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatStyleSupport.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatStyleSupport.java
index 6ae189e4..95af2920 100644
--- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatStyleSupport.java
+++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatStyleSupport.java
@@ -17,8 +17,8 @@
package com.formdev.flatlaf.ui;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.function.BiFunction;
import javax.swing.JComponent;
import javax.swing.UIManager;
@@ -40,7 +40,7 @@ public class FlatStyleSupport
* to apply the properties.
*
* @param oldStyleValues map of old values modified by the previous invocation, or {@code null}
- * @param style the style in CSS syntax
+ * @param style the style in CSS syntax as string, or a Map, or {@code null}
* @param applyProperty function that is invoked to apply the properties;
* first parameter is the key, second the binary value;
* the function must return the old value
@@ -48,20 +48,67 @@ public class FlatStyleSupport
* @throws IllegalArgumentException on syntax errors
* @throws ClassCastException if value type does not fit to expected type
*/
- public static Map