mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-06 22:10:54 +03:00
fixed custom properties file names for nested classes (e.g. IntelliJTheme$ThemeLaf.properties instead of ThemeLaf.properties)
(see issue #824)
This commit is contained in:
@@ -24,6 +24,13 @@ FlatLaf Change Log
|
|||||||
invocation).
|
invocation).
|
||||||
- macOS: Fixed crash when running in WebSwing. (issue #826; regression in 3.4)
|
- macOS: Fixed crash when running in WebSwing. (issue #826; regression in 3.4)
|
||||||
|
|
||||||
|
#### Incompatibilities
|
||||||
|
|
||||||
|
- File names of custom properties files for nested Laf classes now must include
|
||||||
|
name of enclosing class name. E.g. nested Laf class `IntelliJTheme.ThemeLaf`
|
||||||
|
used `ThemeLaf.properties` in previous versions, but now needs to be named
|
||||||
|
`IntelliJTheme$ThemeLaf.properties`.
|
||||||
|
|
||||||
|
|
||||||
## 3.4
|
## 3.4
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public abstract class FlatDefaultsAddon
|
|||||||
public InputStream getDefaults( Class<?> lafClass ) {
|
public InputStream getDefaults( Class<?> lafClass ) {
|
||||||
Class<?> addonClass = this.getClass();
|
Class<?> addonClass = this.getClass();
|
||||||
String propertiesName = '/' + addonClass.getPackage().getName().replace( '.', '/' )
|
String propertiesName = '/' + addonClass.getPackage().getName().replace( '.', '/' )
|
||||||
+ '/' + lafClass.getSimpleName() + ".properties";
|
+ '/' + UIDefaultsLoader.simpleClassName( lafClass ) + ".properties";
|
||||||
return addonClass.getResourceAsStream( propertiesName );
|
return addonClass.getResourceAsStream( propertiesName );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ class UIDefaultsLoader
|
|||||||
classLoader = FlatLaf.class.getClassLoader();
|
classLoader = FlatLaf.class.getClassLoader();
|
||||||
|
|
||||||
for( Class<?> lafClass : lafClasses ) {
|
for( Class<?> lafClass : lafClasses ) {
|
||||||
String propertiesName = packageName + '/' + lafClass.getSimpleName() + ".properties";
|
String propertiesName = packageName + '/' + simpleClassName( lafClass ) + ".properties";
|
||||||
try( InputStream in = classLoader.getResourceAsStream( propertiesName ) ) {
|
try( InputStream in = classLoader.getResourceAsStream( propertiesName ) ) {
|
||||||
if( in != null )
|
if( in != null )
|
||||||
properties.load( in );
|
properties.load( in );
|
||||||
@@ -171,7 +171,7 @@ class UIDefaultsLoader
|
|||||||
// load from package URL
|
// load from package URL
|
||||||
URL packageUrl = (URL) source;
|
URL packageUrl = (URL) source;
|
||||||
for( Class<?> lafClass : lafClasses ) {
|
for( Class<?> lafClass : lafClasses ) {
|
||||||
URL propertiesUrl = new URL( packageUrl + lafClass.getSimpleName() + ".properties" );
|
URL propertiesUrl = new URL( packageUrl + simpleClassName( lafClass ) + ".properties" );
|
||||||
|
|
||||||
try( InputStream in = propertiesUrl.openStream() ) {
|
try( InputStream in = propertiesUrl.openStream() ) {
|
||||||
properties.load( in );
|
properties.load( in );
|
||||||
@@ -183,7 +183,7 @@ class UIDefaultsLoader
|
|||||||
// load from folder
|
// load from folder
|
||||||
File folder = (File) source;
|
File folder = (File) source;
|
||||||
for( Class<?> lafClass : lafClasses ) {
|
for( Class<?> lafClass : lafClasses ) {
|
||||||
File propertiesFile = new File( folder, lafClass.getSimpleName() + ".properties" );
|
File propertiesFile = new File( folder, simpleClassName( lafClass ) + ".properties" );
|
||||||
if( !propertiesFile.isFile() )
|
if( !propertiesFile.isFile() )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -294,6 +294,14 @@ class UIDefaultsLoader
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Similar to Class.getSimpleName(), but includes enclosing class for nested classes.
|
||||||
|
*/
|
||||||
|
static String simpleClassName( Class<?> cls ) {
|
||||||
|
String className = cls.getName();
|
||||||
|
return className.substring( className.lastIndexOf( '.' ) + 1 );
|
||||||
|
}
|
||||||
|
|
||||||
static void logParseError( String key, String value, RuntimeException ex, boolean severe ) {
|
static void logParseError( String key, String value, RuntimeException ex, boolean severe ) {
|
||||||
String message = "FlatLaf: Failed to parse: '" + key + '=' + value + '\'';
|
String message = "FlatLaf: Failed to parse: '" + key + '=' + value + '\'';
|
||||||
if( severe )
|
if( severe )
|
||||||
|
|||||||
Reference in New Issue
Block a user