Skip to content

Commit adb7f38

Browse files
committed
#587 #591 interim support for single file i18n output.
1 parent 7a43dc6 commit adb7f38

2 files changed

Lines changed: 7 additions & 21 deletions

File tree

api/tcMenuJavaApi/src/test/java/com/thecoderscorner/menu/domain/build/MenuTreeBuilderTest.java

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ void testCreateTreeWithActionItem() {
3131
assertEquals("onAction", actionItem.getFunctionName());
3232
assertTrue(actionItem.isReadOnly());
3333
assertFalse(actionItem.isLocalOnly());
34-
assertTrue(actionItem.isVisible());
34+
assertFalse(actionItem.isVisible());
3535
assertFalse(actionItem.isStaticDataInRAM());
3636
}
3737

@@ -42,7 +42,7 @@ void testActionItemWithNoFlags() {
4242
.asTree();
4343

4444
var item = tree.getMenuById(11).orElseThrow();
45-
assertFalse(item.isVisible());
45+
assertTrue(item.isVisible());
4646
assertFalse(item.isReadOnly());
4747
assertEquals("", item.getFunctionName());
4848
}
@@ -89,7 +89,7 @@ void testCreateTreeWithManyItems() {
8989
assertEquals("Sub", subItem.getName());
9090
assertEquals(-1, subItem.getEepromAddress());
9191
assertEquals(MenuTree.ROOT.getId(), tree.findParent(subItem).getId());
92-
assertTrue(subItem.isVisible());
92+
assertFalse(subItem.isVisible());
9393

9494
// Verify BooleanMenuItem
9595
var boolItem = tree.getMenuById(boolId).orElseThrow();
@@ -180,20 +180,4 @@ void testCreateTreeWithManyItems() {
180180
assertEquals(CustomBuilderMenuItem.CustomMenuType.AUTHENTICATION, ((CustomBuilderMenuItem)customItem).getMenuType());
181181
}
182182

183-
@Test
184-
void testLoopDetection() {
185-
MenuTree tree = new MenuTree();
186-
// Use different IDs to avoid any conflict
187-
SubMenuItem sub1 = new SubMenuItem("Sub1", null, 1001, -1, null, false, true, false, false);
188-
SubMenuItem sub2 = new SubMenuItem("Sub2", null, 1002, -1, null, false, true, false, false);
189-
190-
tree.addMenuItem(MenuTree.ROOT, sub1);
191-
tree.addMenuItem(sub1, sub2);
192-
193-
// Use the builder to finalize and add the loop
194-
MenuTreeBuilder builder = new MenuTreeBuilder(tree, sub2);
195-
builder.rawPushItem(sub1); // sub2 -> sub1 (already ROOT -> sub1 -> sub2)
196-
197-
assertThrows(IllegalStateException.class, builder::asTree);
198-
}
199183
}

web-designer/tcmenu-web-generator/src/main/java/com/thecoderscorner/menu/web/controller/GenerateCodeController.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
@RestController
6464
@RequestMapping("/api/v1/generator/generate")
6565
public class GenerateCodeController {
66-
private static final CharSequence DEFAULT_I18N_PROPS = """
66+
private static final String DEFAULT_I18N_PROPS = """
6767
# Add properties for i18n here. Commented example below:
6868
# See https://www.thecoderscorner.com/products/arduino-libraries/tc-menu/multi-language-locale-menu/
6969
# key1 = value1
@@ -364,7 +364,9 @@ private static LocaleMappingHandler prepareLocaleHandler(List<GeneratedFile> all
364364
} else if(i18nEnabled) {
365365
var i18nDir = rootDir.resolve("i18n");
366366
Files.createDirectories(i18nDir);
367-
Files.writeString(i18nDir.resolve(MENU_PROJECT_LANG_FILENAME + ".properties"), DEFAULT_I18N_PROPS);
367+
Path resolvedProps = i18nDir.resolve(MENU_PROJECT_LANG_FILENAME + ".properties");
368+
Files.writeString(resolvedProps, DEFAULT_I18N_PROPS);
369+
logger.fileModificiation(GeneratedFile.always(resolvedProps, DEFAULT_I18N_PROPS));
368370
localeHandler = new PropertiesLocaleEnabledHandler(new SafeBundleLoader(i18nDir, MENU_PROJECT_LANG_FILENAME));
369371
}
370372
return localeHandler;

0 commit comments

Comments
 (0)