diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..a8bd00a
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..19b27d2
--- /dev/null
+++ b/.project
@@ -0,0 +1,23 @@
+
+
+ ewol
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/samples/.classpath b/samples/.classpath
new file mode 100644
index 0000000..7b9ebcf
--- /dev/null
+++ b/samples/.classpath
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/.project b/samples/.project
new file mode 100644
index 0000000..9a65b88
--- /dev/null
+++ b/samples/.project
@@ -0,0 +1,23 @@
+
+
+ ewol-sample
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/samples/.settings/org.eclipse.jdt.core.prefs b/samples/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..8b94239
--- /dev/null
+++ b/samples/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
+org.eclipse.jdt.core.compiler.compliance=21
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=21
diff --git a/samples/.settings/org.eclipse.m2e.core.prefs b/samples/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/samples/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/samples/src/main/module-info.java_ b/samples/src/main/module-info.java_
new file mode 100644
index 0000000..509dddc
--- /dev/null
+++ b/samples/src/main/module-info.java_
@@ -0,0 +1,6 @@
+module sample.atriasoft.ewol {
+ //exports sample.atriasoft.ewol.simpleWindowsWithImage;
+ requires org.atriasoft.ewol;
+ requires org.atriasoft.etk;
+ requires org.atriasoft.esignal;
+}
\ No newline at end of file
diff --git a/samples/src/main/sample/atriasoft/ewol/BasicWindows.java b/samples/src/main/sample/atriasoft/ewol/BasicWindows.java
new file mode 100644
index 0000000..603d10f
--- /dev/null
+++ b/samples/src/main/sample/atriasoft/ewol/BasicWindows.java
@@ -0,0 +1,1210 @@
+package sample.atriasoft.ewol;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.atriasoft.aknot.exception.AknotException;
+import org.atriasoft.aknot.model.IntrospectionModel;
+import org.atriasoft.aknot.pojo.IntrospectionModelComplex;
+import org.atriasoft.aknot.pojo.IntrospectionProperty;
+import org.atriasoft.esignal.Connection;
+import org.atriasoft.esignal.Signal;
+import org.atriasoft.esignal.SignalEmpty;
+import org.atriasoft.etk.Color;
+import org.atriasoft.etk.Dimension2f;
+import org.atriasoft.etk.Dimension3f;
+import org.atriasoft.etk.Distance;
+import org.atriasoft.etk.Uri;
+import org.atriasoft.etk.math.Vector2b;
+import org.atriasoft.etk.math.Vector2f;
+import org.atriasoft.etk.math.Vector2i;
+import org.atriasoft.etk.math.Vector3b;
+import org.atriasoft.etk.math.Vector3f;
+import org.atriasoft.etk.math.Vector3i;
+import org.atriasoft.ewol.Gravity;
+import org.atriasoft.ewol.GravityDepth;
+import org.atriasoft.ewol.GravityHorizontal;
+import org.atriasoft.ewol.GravityVertical;
+import org.atriasoft.ewol.widget.Button;
+import org.atriasoft.ewol.widget.CheckBox;
+import org.atriasoft.ewol.widget.Entry;
+import org.atriasoft.ewol.widget.Label;
+import org.atriasoft.ewol.widget.Sizer;
+import org.atriasoft.ewol.widget.Sizer.DisplayMode;
+import org.atriasoft.ewol.widget.Spacer;
+import org.atriasoft.ewol.widget.Spin;
+import org.atriasoft.ewol.widget.Widget;
+import org.atriasoft.ewol.widget.Windows;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class BasicWindows extends Windows {
+ private static final Logger LOGGER = LoggerFactory.getLogger(BasicWindows.class);
+ private static final String LABEL_GRAVITY = "gravity: ";
+
+ public static void staticRequestNext(final BasicWindows self) {
+ self.requestNext();
+ }
+
+ Widget testWidget;
+ Sizer sizerTestAreaHori;
+ Sizer sizerMenuRoot;
+ Sizer sizerMenu;
+
+ Gravity basicGravity = Gravity.BOTTOM_LEFT;
+
+ private final List conections = new ArrayList<>();
+
+ public BasicWindows() {
+ //! [ewol_sample_HW_windows_title]
+ setPropertyTitle("No title set !!! for this test");
+
+ final Sizer sizerMain = new Sizer(DisplayMode.HORIZONTAL);
+ sizerMain.setPropertyExpand(Vector3b.TRUE);
+ sizerMain.setPropertyFill(Vector3b.TRUE);
+ setSubWidget(sizerMain);
+
+ this.sizerMenuRoot = new Sizer(DisplayMode.VERTICAL);
+ this.sizerMenuRoot.setPropertyExpand(Vector3b.FALSE_TRUE_FALSE);
+ this.sizerMenuRoot.setPropertyLockExpand(Vector3b.TRUE);
+ this.sizerMenuRoot.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenuRoot.setPropertyMinSize(new Dimension3f(new Vector3f(350, 10, 10), Distance.PIXEL));
+ this.sizerMenuRoot.setPropertyGravity(Gravity.TOP);
+ sizerMain.subWidgetAdd(this.sizerMenuRoot);
+
+ final Button next = Button.createLabelButton("Next ...");
+ this.sizerMenuRoot.subWidgetAdd(next);
+ next.signalClick.connectAuto(this, BasicWindows::staticRequestNext);
+
+ this.sizerMenu = new Sizer(DisplayMode.VERTICAL);
+ this.sizerMenu.setPropertyExpand(Vector3b.FALSE_TRUE_FALSE);
+ this.sizerMenu.setPropertyLockExpand(Vector3b.TRUE);
+ this.sizerMenu.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.setPropertyMinSize(new Dimension3f(new Vector3f(350, 10, 10), Distance.PIXEL));
+ this.sizerMenu.setPropertyGravity(Gravity.TOP);
+ this.sizerMenuRoot.subWidgetAdd(this.sizerMenu);
+
+ final Sizer sizerVertMain = new Sizer(DisplayMode.VERTICAL);
+ sizerVertMain.setPropertyExpand(Vector3b.TRUE);
+ sizerVertMain.setPropertyFill(Vector3b.TRUE);
+ sizerMain.subWidgetAdd(sizerVertMain);
+
+ {
+ final Spacer simpleSpacer = new Spacer();
+ simpleSpacer.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_128, Distance.PIXEL));
+ simpleSpacer.setPropertyColor(Color.ALICE_BLUE);
+ simpleSpacer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ simpleSpacer.setPropertyExpandIfFree(Vector3b.TRUE);
+ simpleSpacer.setPropertyFill(Vector3b.TRUE);
+ simpleSpacer.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ sizerVertMain.subWidgetAdd(simpleSpacer);
+ }
+
+ this.sizerTestAreaHori = new Sizer(DisplayMode.HORIZONTAL);
+ this.sizerTestAreaHori.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ this.sizerTestAreaHori.setPropertyExpandIfFree(Vector3b.TRUE);
+ this.sizerTestAreaHori.setPropertyFill(Vector3b.TRUE_FALSE_FALSE);
+ sizerVertMain.subWidgetAdd(this.sizerTestAreaHori);
+
+ {
+ final Spacer simpleSpacer = new Spacer();
+ simpleSpacer.setPropertyColor(Color.DARK_GREEN);
+ simpleSpacer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ simpleSpacer.setPropertyExpandIfFree(Vector3b.TRUE);
+ simpleSpacer.setPropertyFill(Vector3b.TRUE);
+ simpleSpacer.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ sizerVertMain.subWidgetAdd(simpleSpacer);
+ }
+ }
+
+ public void addButton(final Widget widget) {
+ this.sizerMenu.subWidgetAdd(widget);
+ }
+
+ public void addMenuBoolean(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Boolean value) {
+ final CheckBox checkBox = new CheckBox("Y");
+ checkBox.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ checkBox.setPropertyFill(Vector3b.TRUE);
+ checkBox.setPropertyValue(value);
+ this.sizerMenu.subWidgetAdd(checkBox);
+ final Connection con = checkBox.signalValue.connect(valueButton -> {
+ try {
+ pojo.setExistingValue(widget, valueButton);
+ } catch (final AknotException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ public void addMenuDimension2f(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Dimension2f value) {
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("X");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.size().x());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Dimension2f castedValue) {
+ LOGGER.warn("Set new value: {}",
+ castedValue.withSize(castedValue.size().withX(valueButton)));
+ pojo.setExistingValue(widget, castedValue.withSize(castedValue.size().withX(valueButton)));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("Y");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.size().y());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Dimension2f castedValue) {
+ LOGGER.warn("Set new value: {}",
+ castedValue.withSize(castedValue.size().withY(valueButton)));
+ pojo.setExistingValue(widget, castedValue.withSize(castedValue.size().withY(valueButton)));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+ }
+
+ public void addMenuDimension3f(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Dimension3f value) {
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("X");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.size().x());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Dimension3f castedValue) {
+ LOGGER.warn("Set new value: {}",
+ castedValue.withSize(castedValue.size().withX(valueButton)));
+ pojo.setExistingValue(widget, castedValue.withSize(castedValue.size().withX(valueButton)));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("Y");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.size().y());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Dimension3f castedValue) {
+ LOGGER.warn("Set new value: {}",
+ castedValue.withSize(castedValue.size().withY(valueButton)));
+ pojo.setExistingValue(widget, castedValue.withSize(castedValue.size().withY(valueButton)));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("Z");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.size().z());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Dimension3f castedValue) {
+ LOGGER.warn("Set new value: {}",
+ castedValue.withSize(castedValue.size().withZ(valueButton)));
+ pojo.setExistingValue(widget, castedValue.withSize(castedValue.size().withZ(valueButton)));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+ }
+
+ public void addMenuDouble(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Double value) {
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) (double) value);
+ this.sizerMenu.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ LOGGER.warn("Set new value: {}", valueButton);
+ pojo.setExistingValue(widget, (double) valueButton);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ public void addMenuFloat(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Float value) {
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) (float) value);
+ this.sizerMenu.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ LOGGER.warn("Set new value: {}", valueButton);
+ pojo.setExistingValue(widget, (float) valueButton);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ public void addMenuGravity(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Gravity value) {
+ final Button buttonGravity = Button.createLabelButton("Gravity");
+ buttonGravity.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ buttonGravity.setPropertyFill(Vector3b.TRUE);
+ buttonGravity.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ buttonGravity.setPropertyGravity(Gravity.CENTER);
+ this.sizerMenu.subWidgetAdd(buttonGravity);
+ final Label gravLabel = (Label) (buttonGravity.getSubWidgets()[0]);
+ gravLabel.setPropertyValue(LABEL_GRAVITY + Gravity.BOTTOM_LEFT);
+
+ final Connection con = buttonGravity.signalClick.connect(() -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Gravity castedValue) {
+ Gravity state = castedValue;
+ // TODO: I change the gravity model to integrate the 3rd rank...
+ if (state.x() == GravityHorizontal.LEFT && state.y() == GravityVertical.BOTTOM) {
+ state = new Gravity(GravityHorizontal.CENTER, GravityVertical.BOTTOM, GravityDepth.CENTER);
+ } else if (state.x() == GravityHorizontal.CENTER && state.y() == GravityVertical.BOTTOM) {
+ state = new Gravity(GravityHorizontal.RIGHT, GravityVertical.BOTTOM, GravityDepth.CENTER);
+ } else if (state.x() == GravityHorizontal.RIGHT && state.y() == GravityVertical.BOTTOM) {
+ state = new Gravity(GravityHorizontal.LEFT, GravityVertical.CENTER, GravityDepth.CENTER);
+
+ } else if (state.x() == GravityHorizontal.LEFT && state.y() == GravityVertical.CENTER) {
+ state = new Gravity(GravityHorizontal.CENTER, GravityVertical.CENTER, GravityDepth.CENTER);
+ } else if (state.x() == GravityHorizontal.CENTER && state.y() == GravityVertical.CENTER) {
+ state = new Gravity(GravityHorizontal.RIGHT, GravityVertical.CENTER, GravityDepth.CENTER);
+ } else if (state.x() == GravityHorizontal.RIGHT && state.y() == GravityVertical.CENTER) {
+ state = new Gravity(GravityHorizontal.LEFT, GravityVertical.TOP, GravityDepth.CENTER);
+
+ } else if (state.x() == GravityHorizontal.LEFT && state.y() == GravityVertical.TOP) {
+ state = new Gravity(GravityHorizontal.CENTER, GravityVertical.TOP, GravityDepth.CENTER);
+ } else if (state.x() == GravityHorizontal.CENTER && state.y() == GravityVertical.TOP) {
+ state = new Gravity(GravityHorizontal.RIGHT, GravityVertical.TOP, GravityDepth.CENTER);
+ } else if (state.x() == GravityHorizontal.RIGHT && state.y() == GravityVertical.TOP) {
+ state = new Gravity(GravityHorizontal.LEFT, GravityVertical.BOTTOM, GravityDepth.CENTER);
+ }
+ gravLabel.setPropertyValue(LABEL_GRAVITY + state.toString());
+ LOGGER.warn("Set new value: {}", state);
+ pojo.setExistingValue(widget, state);
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ public void addMenuInt(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Integer value) {
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue(value);
+ this.sizerMenu.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ LOGGER.warn("Set new value: {}", valueButton);
+ pojo.setExistingValue(widget, (int) (long) valueButton);
+
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ public void addMenuLong(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Long value) {
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue(value);
+ this.sizerMenu.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ LOGGER.warn("Set new value: {}", valueButton);
+ pojo.setExistingValue(widget, valueButton);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ public void addMenuString(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final String value) {
+ final Entry element = new Entry();
+ element.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ element.setPropertyFill(Vector3b.TRUE);
+ element.setPropertyValue(value);
+ this.sizerMenu.subWidgetAdd(element);
+ final Connection con = element.signalModify.connect(valueButton -> {
+ try {
+ LOGGER.warn("Set new value: {}", valueButton);
+ pojo.setExistingValue(widget, valueButton);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ public void addMenuURI(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Uri value) {
+ final Entry element = new Entry();
+ element.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ element.setPropertyFill(Vector3b.TRUE);
+ element.setPropertyValue(value.toString());
+ this.sizerMenu.subWidgetAdd(element);
+ final Connection con = element.signalModify.connect(valueButton -> {
+ try {
+ LOGGER.warn("Set new value: {}", valueButton);
+ pojo.setExistingValue(widget, Uri.valueOf(valueButton));
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ public void addMenuVector2b(final Widget widget, final IntrospectionProperty pojo) {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Vector3b value) {
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+ {
+ final CheckBox checkBox = new CheckBox("X");
+ checkBox.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ checkBox.setPropertyFill(Vector3b.TRUE);
+ checkBox.setPropertyValue(value.x());
+ lineSizer.subWidgetAdd(checkBox);
+ final Connection con = checkBox.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector2b castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withX(valueButton));
+ pojo.setExistingValue(widget, castedValue.withX(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final CheckBox checkBox = new CheckBox("Y");
+ checkBox.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ checkBox.setPropertyFill(Vector3b.TRUE);
+ checkBox.setPropertyValue(value.y());
+ lineSizer.subWidgetAdd(checkBox);
+ final Connection con = checkBox.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector2b castedValue) {
+ pojo.setExistingValue(widget, castedValue.withY(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ }
+
+ public void addMenuVector2f(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Vector2f value) {
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("X");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.x());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector2f castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withX(valueButton));
+ pojo.setExistingValue(widget, castedValue.withX(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("Y");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.y());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector2f castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withY(valueButton));
+ pojo.setExistingValue(widget, castedValue.withY(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+ }
+
+ public void addMenuVector2i(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Vector2i value) {
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("X");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue(value.x());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector2i castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withX((int) (long) valueButton));
+ pojo.setExistingValue(widget, castedValue.withX((int) (long) valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("Y");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue(value.y());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector2i castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withY((int) (long) valueButton));
+ pojo.setExistingValue(widget, castedValue.withY((int) (long) valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+ }
+
+ public void addMenuVector3b(final Widget widget, final IntrospectionProperty pojo) {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Vector3b value) {
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+ {
+ final CheckBox checkBox = new CheckBox("X");
+ checkBox.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ checkBox.setPropertyFill(Vector3b.TRUE);
+ checkBox.setPropertyValue(value.x());
+ lineSizer.subWidgetAdd(checkBox);
+ final Connection con = checkBox.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector3b castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withX(valueButton));
+ pojo.setExistingValue(widget, castedValue.withX(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final CheckBox checkBox = new CheckBox("Y");
+ checkBox.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ checkBox.setPropertyFill(Vector3b.TRUE);
+ checkBox.setPropertyValue(value.y());
+ lineSizer.subWidgetAdd(checkBox);
+ final Connection con = checkBox.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector3b castedValue) {
+ pojo.setExistingValue(widget, castedValue.withY(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final CheckBox checkBox = new CheckBox("Z");
+ checkBox.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ checkBox.setPropertyFill(Vector3b.TRUE);
+ checkBox.setPropertyValue(value.z());
+ lineSizer.subWidgetAdd(checkBox);
+ final Connection con = checkBox.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector3b castedValue) {
+ pojo.setExistingValue(widget, castedValue.withZ(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+
+ }
+
+ public void addMenuVector3f(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Vector3f value) {
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("X");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.x());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector3f castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withX(valueButton));
+ pojo.setExistingValue(widget, castedValue.withX(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("Y");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.y());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector3f castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withY(valueButton));
+ pojo.setExistingValue(widget, castedValue.withY(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("Z");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue((int) value.z());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector3f castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withZ(valueButton));
+ pojo.setExistingValue(widget, castedValue.withZ(valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+ }
+
+ public void addMenuVector3i(final Widget widget, final IntrospectionProperty pojo) {
+ Object valueRaw = null;
+ try {
+ valueRaw = pojo.getValue(widget);
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ if (valueRaw instanceof final Vector3i value) {
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("X");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue(value.x());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector3i castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withX((int) (long) valueButton));
+ pojo.setExistingValue(widget, castedValue.withX((int) (long) valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("Y");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue(value.y());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector3i castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withY((int) (long) valueButton));
+ pojo.setExistingValue(widget, castedValue.withY((int) (long) valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ {
+ final Sizer lineSizer = new Sizer(DisplayMode.HORIZONTAL);
+ lineSizer.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ lineSizer.setPropertyFill(Vector3b.TRUE);
+ this.sizerMenu.subWidgetAdd(lineSizer);
+
+ final Label simpleLabel = new Label("Z");
+ simpleLabel.setPropertyExpand(Vector3b.FALSE);
+ simpleLabel.setPropertyFill(Vector3b.TRUE);
+ simpleLabel.setPropertyMinSize(new Dimension3f(Vector3f.VALUE_16, Distance.PIXEL));
+ simpleLabel.setPropertyGravity(Gravity.LEFT);
+ lineSizer.subWidgetAdd(simpleLabel);
+
+ final Spin spin = new Spin();
+ spin.setPropertyExpand(Vector3b.TRUE_FALSE_FALSE);
+ spin.setPropertyFill(Vector3b.TRUE);
+ spin.setPropertyValue(value.z());
+ lineSizer.subWidgetAdd(spin);
+ final Connection con = spin.signalValue.connect(valueButton -> {
+ try {
+ final Object oldValue = pojo.getValue(widget);
+ if (oldValue instanceof final Vector3i castedValue) {
+ LOGGER.warn("Set new value: {}", castedValue.withZ((int) (long) valueButton));
+ pojo.setExistingValue(widget, castedValue.withZ((int) (long) valueButton));
+ }
+ } catch (final AknotException e) {
+ e.printStackTrace();
+ return;
+ }
+ });
+ this.conections.add(con);
+ }
+ }
+ }
+
+ public void connectAllSignals(final Widget widget, final IntrospectionModelComplex modelPojo) throws Exception {
+ LOGGER.warn("Connect all signal(s) on '{}'", widget.getName());
+ final List signals = modelPojo.getSignals();
+ for (final IntrospectionProperty pojo : signals) {
+ LOGGER.warn(" - '{}' otherNames={}", pojo.getBeanName(), Arrays.toString(pojo.getNames()));
+ LOGGER.warn(" ==> description='{}'", pojo.getDescription());
+ LOGGER.warn(" ==> type='{}'", pojo.getType());
+ LOGGER.warn(" ==> sub-type='{}'", pojo.getSubType());
+
+ final String eventName = pojo.getNames() != null && pojo.getNames().length != 0 ? pojo.getNames()[0]
+ : pojo.getBeanName();
+
+ if (pojo.getSubType() != null && pojo.getType() == Signal.class) {
+ LOGGER.warn(" ** Signal<{}>", pojo.getSubType());
+ final Object signalObject = pojo.getValue(widget);
+ if (signalObject == null) {
+ LOGGER.error("Signal is not accessible !!!!!!! ");
+ } else {
+ final String valueNameOfSignal = eventName;
+ @SuppressWarnings("unchecked")
+ final Signal