diff --git a/gs-carcolor/src/main/java/org/genericsystem/carcolor/CarColorApp.java b/gs-carcolor/src/main/java/org/genericsystem/carcolor/CarColorApp.java index 28d0528c1..abc0ac413 100644 --- a/gs-carcolor/src/main/java/org/genericsystem/carcolor/CarColorApp.java +++ b/gs-carcolor/src/main/java/org/genericsystem/carcolor/CarColorApp.java @@ -7,7 +7,6 @@ import org.genericsystem.carcolor.model.Power; import org.genericsystem.common.Generic; import org.genericsystem.common.Root; -import org.genericsystem.reactor.ReactorStatics; import org.genericsystem.reactor.annotations.DependsOnModel; import org.genericsystem.reactor.annotations.RunScript; import org.genericsystem.reactor.appserver.ApplicationServer; @@ -17,6 +16,7 @@ import org.genericsystem.reactor.gs.GSEditor; import org.genericsystem.reactor.gs.GSMonitor; import org.genericsystem.reactor.gs.GSTable; +import org.genericsystem.reactor.gs.SelectionDefaults; import io.vertx.core.http.ServerWebSocket; @@ -26,7 +26,7 @@ */ @RunScript(CarColorScript.class) @DependsOnModel({ Car.class, Power.class, Color.class, CarColor.class }) -public class CarColorApp extends GSApp { +public class CarColorApp extends GSApp implements SelectionDefaults { public static void main(String[] mainArgs) { ApplicationServer.sartSimpleGenericApp(mainArgs, CarColorApp.class, "/cars"); @@ -34,7 +34,7 @@ public static void main(String[] mainArgs) { public CarColorApp(Root engine, ServerWebSocket webSocket) { super(webSocket); - createNewProperty(ReactorStatics.SELECTION); + createSelectionProperty(); addStyle("background-color", "#3393ff"); new GSHeader(this, "Generic System Reactor Live Demo", null, "", GSUserGuide::new, ""); diff --git a/gs-carcolor/src/main/java/org/genericsystem/carcolor/GSModal.java b/gs-carcolor/src/main/java/org/genericsystem/carcolor/GSModal.java index a1fda4893..b5fd17dab 100644 --- a/gs-carcolor/src/main/java/org/genericsystem/carcolor/GSModal.java +++ b/gs-carcolor/src/main/java/org/genericsystem/carcolor/GSModal.java @@ -24,7 +24,7 @@ public GSModal(GSTag parent, Consumer contentTagConsumer) { public GSModal(GSTag parent, FlexDirection direction, Consumer contentTagConsumer) { super(parent, direction); addStyleClass("modal"); - bindStyle(ReactorStatics.DISPLAY, ReactorStatics.DISPLAY, model -> Bindings.createStringBinding(() -> getSelectionProperty(model).getValue() != null ? "flex" : "none", this.getProperty(ReactorStatics.SELECTION, model))); + bindStyle(ReactorStatics.DISPLAY, ReactorStatics.DISPLAY, model -> Bindings.createStringBinding(() -> getSelectionProperty(model).getValue() != null ? "flex" : "none", getSelectionProperty(model))); new GSSection(this, FlexDirection.COLUMN) { { diff --git a/gs-reactor/src/main/java/org/genericsystem/reactor/ReactorStatics.java b/gs-reactor/src/main/java/org/genericsystem/reactor/ReactorStatics.java index 3593a032c..84238592a 100644 --- a/gs-reactor/src/main/java/org/genericsystem/reactor/ReactorStatics.java +++ b/gs-reactor/src/main/java/org/genericsystem/reactor/ReactorStatics.java @@ -11,7 +11,6 @@ public class ReactorStatics { public static final String INVALID = "invalid"; public static final String INVALID_LIST = "invalidList"; public static final String NEW_INSTANCE = "newInstance"; - public static final String SELECTION = "selection"; public static final String SELECTION_INDEX = "selectionIndex"; public static final String SELECTION_SHIFT = "selectionShift"; public static final String SELECTION_STRING = "selectionString"; diff --git a/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSComposite.java b/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSComposite.java index c41df2508..145b01948 100644 --- a/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSComposite.java +++ b/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSComposite.java @@ -122,10 +122,8 @@ public ColorCompositeRadio(GSTag parent, FlexDirection flexDirection) { createSelectionProperty(); storeProperty(ReactorStatics.SELECTION_INDEX, model -> model.getSelectionIndex(this)); bindBiDirectionalSelection(flexSubElement); - storeProperty( - ReactorStatics.SELECTION_STRING, - model -> Bindings.createStringBinding(() -> StringExtractor.SIMPLE_CLASS_EXTRACTOR.apply(getSelectionProperty(model).getValue() != null ? getSelectionProperty(model).getValue().getGeneric() : null), - getProperty(ReactorStatics.SELECTION, model))); + storeProperty(ReactorStatics.SELECTION_STRING, + model -> Bindings.createStringBinding(() -> StringExtractor.SIMPLE_CLASS_EXTRACTOR.apply(getSelectionProperty(model).getValue() != null ? getSelectionProperty(model).getValue().getGeneric() : null), getSelectionProperty(model))); bindStyle("background-color", ReactorStatics.SELECTION_STRING); addStyle("padding", "4px"); } diff --git a/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSSelect.java b/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSSelect.java index 2bec9bf34..dbb08fa2f 100644 --- a/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSSelect.java +++ b/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSSelect.java @@ -8,7 +8,6 @@ import org.genericsystem.reactor.ReactorStatics; import org.genericsystem.reactor.gstag.GSOption; -import org.genericsystem.reactor.model.GenericModel; import org.genericsystem.reactor.model.ObservableListExtractor; import org.genericsystem.reactor.model.StringExtractor; @@ -23,8 +22,8 @@ private GSSelect(GSTag parent) { createSelectionProperty(); storeProperty(ReactorStatics.SELECTION_INDEX, model -> model.getSelectionIndex(this)); bindBiDirectionalSelection(optionElement); - storeProperty(ReactorStatics.SELECTION_STRING, model -> Bindings.createStringBinding( - () -> StringExtractor.SIMPLE_CLASS_EXTRACTOR.apply(getSelectionProperty(model).getValue() != null ? ((GenericModel) getProperty(ReactorStatics.SELECTION, model).getValue()).getGeneric() : null), getSelectionProperty(model))); + storeProperty(ReactorStatics.SELECTION_STRING, + model -> Bindings.createStringBinding(() -> StringExtractor.SIMPLE_CLASS_EXTRACTOR.apply(getSelectionProperty(model).getValue() != null ? getSelectionProperty(model).getValue().getGeneric() : null), getSelectionProperty(model))); } @Override diff --git a/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSSingleLinkComponentEditor.java b/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSSingleLinkComponentEditor.java index 905d7ae0b..cbda02f2d 100644 --- a/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSSingleLinkComponentEditor.java +++ b/gs-reactor/src/main/java/org/genericsystem/reactor/gs/GSSingleLinkComponentEditor.java @@ -42,7 +42,7 @@ public GSSingleLinkComponentEditor(GSTag parent, GSSelectConstructor constructor select.addPostfixBinding(model -> { Property>> selectedComponents = getProperty(ReactorStatics.COMPONENTS, model.getParent()); if (selectedComponents != null) - selectedComponents.getValue().add(select.getProperty(ReactorStatics.SELECTION, model)); + selectedComponents.getValue().add(select.getSelectionProperty(model)); }); new GSLabelDisplayer(this) { { diff --git a/gs-reactor/src/main/java/org/genericsystem/reactor/gs/SelectionDefaults.java b/gs-reactor/src/main/java/org/genericsystem/reactor/gs/SelectionDefaults.java index 61171189e..dbab7564f 100644 --- a/gs-reactor/src/main/java/org/genericsystem/reactor/gs/SelectionDefaults.java +++ b/gs-reactor/src/main/java/org/genericsystem/reactor/gs/SelectionDefaults.java @@ -20,6 +20,8 @@ */ public interface SelectionDefaults { + public static final String SELECTION = "selection"; + // void addPrefixBinding(Consumer consumer); void addPostfixBinding(Consumer consumer); @@ -29,11 +31,11 @@ public interface SelectionDefaults { Property getProperty(String property, Model model); default void createSelectionProperty() { - createNewProperty(ReactorStatics.SELECTION); + createNewProperty(SELECTION); } default Property getSelectionProperty(GenericModel model) { - return getProperty(ReactorStatics.SELECTION, model); + return getProperty(SELECTION, model); } default void bindBiDirectionalSelection(Tag subElement) {