Skip to content

Commit 3d1b287

Browse files
committed
Fixed CSS when setting accents or modes
1 parent 2d80ea7 commit 3d1b287

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

scripts/initializr/common/src/main/java/com/codename1/initializr/model/GeneratorModel.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,22 @@
1919

2020
public class GeneratorModel {
2121
private static final String CN1_PLUGIN_VERSION = "7.0.227";
22+
private static final String PREVIEW_BUTTON_SELECTOR =
23+
"Button, InitializrLiveButtonDarkClean, "
24+
+ "InitializrLiveButtonLightTealRound, InitializrLiveButtonLightTealSquare, "
25+
+ "InitializrLiveButtonDarkTealRound, InitializrLiveButtonDarkTealSquare, "
26+
+ "InitializrLiveButtonLightBlueRound, InitializrLiveButtonLightBlueSquare, "
27+
+ "InitializrLiveButtonDarkBlueRound, InitializrLiveButtonDarkBlueSquare, "
28+
+ "InitializrLiveButtonLightOrangeRound, InitializrLiveButtonLightOrangeSquare, "
29+
+ "InitializrLiveButtonDarkOrangeRound, InitializrLiveButtonDarkOrangeSquare";
30+
private static final String PREVIEW_BUTTON_PRESSED_SELECTOR =
31+
"Button.pressed, InitializrLiveButtonDarkClean.pressed, "
32+
+ "InitializrLiveButtonLightTealRound.pressed, InitializrLiveButtonLightTealSquare.pressed, "
33+
+ "InitializrLiveButtonDarkTealRound.pressed, InitializrLiveButtonDarkTealSquare.pressed, "
34+
+ "InitializrLiveButtonLightBlueRound.pressed, InitializrLiveButtonLightBlueSquare.pressed, "
35+
+ "InitializrLiveButtonDarkBlueRound.pressed, InitializrLiveButtonDarkBlueSquare.pressed, "
36+
+ "InitializrLiveButtonLightOrangeRound.pressed, InitializrLiveButtonLightOrangeSquare.pressed, "
37+
+ "InitializrLiveButtonDarkOrangeRound.pressed, InitializrLiveButtonDarkOrangeSquare.pressed";
2238
private static final String GENERATED_GITIGNORE =
2339
"**/target/\n" +
2440
".idea/\n" +
@@ -550,11 +566,21 @@ private static String normalizeCustomCss(String css) {
550566

551567
public static String normalizeCustomCssForCompiler(String css) {
552568
String out = css;
569+
out = expandPreviewButtonAliases(out);
553570
out = replaceKnownNamedColors(out);
554571
out = addAlignFallback(out);
555572
return out;
556573
}
557574

575+
private static String expandPreviewButtonAliases(String css) {
576+
String out = css;
577+
out = StringUtil.replaceAll(out, "Button.pressed {", PREVIEW_BUTTON_PRESSED_SELECTOR + " {");
578+
out = StringUtil.replaceAll(out, "Button.pressed{", PREVIEW_BUTTON_PRESSED_SELECTOR + "{");
579+
out = StringUtil.replaceAll(out, "Button {", PREVIEW_BUTTON_SELECTOR + " {");
580+
out = StringUtil.replaceAll(out, "Button{", PREVIEW_BUTTON_SELECTOR + "{");
581+
return out;
582+
}
583+
558584
private static String replaceKnownNamedColors(String css) {
559585
String out = css;
560586
out = replaceCssColorValue(out, "pink", "#ffc0cb");

scripts/initializr/common/src/test/java/com/codename1/initializr/InitializrThemeInteractionTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,22 @@ public boolean runTest() throws Exception {
8080
"Named color 'pink' should normalize and apply in preview");
8181
assertEqual(Component.CENTER, pinkCenteredHello.getUnselectedStyle().getAlignment(),
8282
"text-align: center should apply in preview");
83+
84+
clickByLabel("DARK");
85+
clickByLabel("TEAL");
86+
Button pinkDarkTealHello = getPreviewHelloButton();
87+
assertEqual("InitializrLiveButtonDarkTealRound", pinkDarkTealHello.getUIID(),
88+
"Mode/accent toggles should still update UIID after pink custom CSS");
89+
assertEqual(0xffc0cb, pinkDarkTealHello.getUnselectedStyle().getFgColor(),
90+
"Button selector custom color should apply even in dark/teal mode");
91+
assertEqual(Component.CENTER, pinkDarkTealHello.getUnselectedStyle().getAlignment(),
92+
"Button selector custom alignment should apply even in dark/teal mode");
93+
94+
clickByLabel("LIGHT");
95+
clickByLabel("CLEAN");
96+
Button pinkBackToCleanHello = getPreviewHelloButton();
97+
assertEqual(0xffc0cb, pinkBackToCleanHello.getUnselectedStyle().getFgColor(),
98+
"Button selector custom color should still apply after returning to clean mode");
8399
return true;
84100
}
85101

0 commit comments

Comments
 (0)