diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDefaultsAddon.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDefaultsAddon.java index ef7c03d0..50a62554 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDefaultsAddon.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDefaultsAddon.java @@ -23,11 +23,11 @@ import java.io.InputStream; * * Allows loading of additional .properties files from addon JARs. * {@link java.util.ServiceLoader} is used to load extensions of this class from addon JARs. - * + *

* If you extend this class in a addon JAR, you also have to add a text file named * {@code META-INF/services/com.formdev.flatlaf.FlatDefaultsAddon} * to the addon JAR. The file must contain a single line with the class name. - * + *

* See 'flatlaf-swingx' addon for an example * * @author Karl Tauber @@ -37,6 +37,16 @@ public abstract class FlatDefaultsAddon /** * Finds an addon .properties file for the given LaF class and returns * it as input stream. Or {@code null} if not found. + *

+ * This default implementation finds addon .properties file for the given LaF class + * in the same package as the subclass. + *

+ * Override this method to load addon .properties files from other locations. */ - public abstract InputStream getDefaults( Class lafClass ); + public InputStream getDefaults( Class lafClass ) { + Class addonClass = this.getClass(); + String propertiesName = "/" + addonClass.getPackage().getName().replace( '.', '/' ) + + '/' + lafClass.getSimpleName() + ".properties"; + return addonClass.getResourceAsStream( propertiesName ); + } } diff --git a/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/FlatJideOssDefaultsAddon.java b/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/FlatJideOssDefaultsAddon.java index 1f2902a9..bcbf8169 100644 --- a/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/FlatJideOssDefaultsAddon.java +++ b/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/FlatJideOssDefaultsAddon.java @@ -43,10 +43,7 @@ public class FlatJideOssDefaultsAddon LookAndFeelFactory.registerDefaultInitializer( FlatLaf.class.getName(), FlatJideUIDefaultsCustomizer.class.getName() ); LookAndFeelFactory.registerDefaultCustomizer( FlatLaf.class.getName(), FlatJideUIDefaultsCustomizer.class.getName() ); - Class addonClass = this.getClass(); - String propertiesName = "/" + addonClass.getPackage().getName().replace( '.', '/' ) - + '/' + lafClass.getSimpleName() + ".properties"; - return addonClass.getResourceAsStream( propertiesName ); + return super.getDefaults( lafClass ); } //---- class FlatJideUIDefaultsCustomizer --------------------------------- diff --git a/flatlaf-swingx/src/main/java/com/formdev/flatlaf/swingx/FlatSwingXDefaultsAddon.java b/flatlaf-swingx/src/main/java/com/formdev/flatlaf/swingx/FlatSwingXDefaultsAddon.java index e17f121a..b26894bb 100644 --- a/flatlaf-swingx/src/main/java/com/formdev/flatlaf/swingx/FlatSwingXDefaultsAddon.java +++ b/flatlaf-swingx/src/main/java/com/formdev/flatlaf/swingx/FlatSwingXDefaultsAddon.java @@ -16,26 +16,17 @@ package com.formdev.flatlaf.swingx; -import java.io.InputStream; import com.formdev.flatlaf.FlatDefaultsAddon; /** * SwingX addon for FlatLaf. + *

+ * Finds SwingX addon .properties file for the given LaF class + * in the same package as this class. * * @author Karl Tauber */ public class FlatSwingXDefaultsAddon extends FlatDefaultsAddon { - /** - * Finds SwingX addon .properties file for the given LaF class - * in the same package as this class. - */ - @Override - public InputStream getDefaults( Class lafClass ) { - Class addonClass = this.getClass(); - String propertiesName = "/" + addonClass.getPackage().getName().replace( '.', '/' ) - + '/' + lafClass.getSimpleName() + ".properties"; - return addonClass.getResourceAsStream( propertiesName ); - } } diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/swingx/FlatSwingXDefaultsTestAddon.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/swingx/FlatSwingXDefaultsTestAddon.java index 3ce87f7d..784afc9a 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/swingx/FlatSwingXDefaultsTestAddon.java +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/swingx/FlatSwingXDefaultsTestAddon.java @@ -16,26 +16,17 @@ package com.formdev.flatlaf.testing.swingx; -import java.io.InputStream; import com.formdev.flatlaf.FlatDefaultsAddon; /** * SwingX addon for FlatLaf for testing. + *

+ * Finds SwingX addon .properties file for the given LaF class + * in the same package as this class. * * @author Karl Tauber */ public class FlatSwingXDefaultsTestAddon extends FlatDefaultsAddon { - /** - * Finds SwingX addon .properties file for the given LaF class - * in the same package as this class. - */ - @Override - public InputStream getDefaults( Class lafClass ) { - Class addonClass = this.getClass(); - String propertiesName = "/" + addonClass.getPackage().getName().replace( '.', '/' ) - + '/' + lafClass.getSimpleName() + ".properties"; - return addonClass.getResourceAsStream( propertiesName ); - } }