Generate typed Java ViewModels and discover declarative registry defaults

This commit is contained in:
2026-11-13 20:06:26 +01:00
parent adf432b98b
commit 8be0aec287
36 changed files with 1123 additions and 17 deletions
@@ -0,0 +1,11 @@
package fixture.components;
public final class CustomGeneratedPerson extends fixture.generated.GeneratedPersonViewModel {
public CustomGeneratedPerson(fixture.model.GeneratedPerson model) {
super(model);
}
public String greeting() {
return "Hello " + getName();
}
}
@@ -0,0 +1,5 @@
package fixture.components;
@jakarta.inject.Singleton
@de.neitzel.fx.view.ViewModelClass(fixture.generated.GeneratedPersonViewModel.class)
public class GeneratedController {}
@@ -0,0 +1,22 @@
package fixture.model;
public class GeneratedAddress {
private String street = "Generated street";
private GeneratedAddress next;
public String getStreet() {
return street;
}
public void setStreet(String v) {
street = v;
}
public GeneratedAddress getNext() {
return next;
}
public void setNext(GeneratedAddress v) {
next = v;
}
}
@@ -0,0 +1,13 @@
package fixture.model;
public class GeneratedEmployee extends GeneratedPerson {
private int salary = 42;
public int getSalary() {
return salary;
}
public void setSalary(int v) {
salary = v;
}
}
@@ -0,0 +1,35 @@
package fixture.model;
public class GeneratedPerson {
static {
System.setProperty("fixture.generated.initialized", "yes");
}
private String name = "Generated sample";
private GeneratedAddress home = new GeneratedAddress();
private java.util.List<GeneratedAddress> visits = new java.util.ArrayList<>();
public String getName() {
return name;
}
public void setName(String v) {
name = v;
}
public GeneratedAddress getHome() {
return home;
}
public void setHome(GeneratedAddress v) {
home = v;
}
public java.util.List<GeneratedAddress> getVisits() {
return visits;
}
public void setVisits(java.util.List<GeneratedAddress> v) {
visits = v;
}
}
@@ -0,0 +1,3 @@
<?neitzel-model fixture.model.GeneratedPerson?>
<?import javafx.scene.layout.VBox?><?import javafx.scene.control.TextField?><?import de.neitzel.fx.view.*?>
<VBox xmlns:fx="http://javafx.com/fxml/1"><fx:define><BindingList><DirectBinding control="name" property="text" path="name" direction="both"/><DirectBinding control="street" property="text" path="home.street" direction="both"/></BindingList></fx:define><TextField fx:id="name"/><TextField fx:id="street"/></VBox>
@@ -0,0 +1,2 @@
<?neitzel-model fixture.model.GeneratedAddress?><?import javafx.scene.control.TextField?><?import javafx.scene.layout.VBox?><?import de.neitzel.fx.view.*?>
<VBox xmlns:fx="http://javafx.com/fxml/1"><fx:define><BindingList><DirectBinding control="street" property="text" path="street" direction="both"/></BindingList></fx:define><TextField fx:id="street"/></VBox>
@@ -0,0 +1,3 @@
<?neitzel-model fixture.model.GeneratedPerson?>
<?import javafx.scene.layout.VBox?><?import javafx.scene.control.TextField?><?import de.neitzel.fx.view.*?>
<VBox xmlns:fx="http://javafx.com/fxml/1" fx:controller="fixture.components.GeneratedController"><fx:define><BindingList><DirectBinding control="name" property="text" path="name" direction="both"/><DirectBinding control="street" property="text" path="home.street" direction="both"/></BindingList></fx:define><TextField fx:id="name"/><TextField fx:id="street"/></VBox>