]> uap-core.de Git - rssreader.git/commitdiff
add lambda based container creation method
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 22 Jun 2025 16:52:03 +0000 (18:52 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sun, 22 Jun 2025 16:52:03 +0000 (18:52 +0200)
ui-java/src/main/java/de/unixwork/ui/ContainerBuilder.java
ui-java/src/main/java/de/unixwork/ui/ContainerUI.java [new file with mode: 0644]
ui-java/src/test/java/de/unixwork/ui/demo/Main.java

index d0a0606d963531e1dfdeb2da73be4bb70b2109cd..495020b39d430fd159dd19508b147f7632365f3c 100644 (file)
@@ -188,4 +188,11 @@ public class ContainerBuilder extends AbstractWidgetBuilder{
         UiWidget w = create();
         return new Container(obj, w);
     }
+
+    public UiWidget create(ContainerUI ui) {
+        Container container = createContainer();
+        ui.callback(obj);
+        container.close();
+        return container.getWidget();
+    }
 }
diff --git a/ui-java/src/main/java/de/unixwork/ui/ContainerUI.java b/ui-java/src/main/java/de/unixwork/ui/ContainerUI.java
new file mode 100644 (file)
index 0000000..281f0d3
--- /dev/null
@@ -0,0 +1,6 @@
+package de.unixwork.ui;
+
+@FunctionalInterface
+public interface ContainerUI {
+    public void callback(UiObject obj);
+}
index efef50820f0ac44f0e6f1efdabdf654f9e1ec1c9..5caaf766ff0c1d068d0b790b9c4fb78a4b7568bb 100644 (file)
@@ -18,6 +18,9 @@ public class Main implements Application{
             Button.button(window).label("B1").create();
             Button.button(window).label("B2").create();
             Button.button(window).label("B3").create();
+            Container.vbox(window).create(obj -> {
+                Button.button(window).label("Test").create();
+            });
         }
 
         window.show();