@Override public Object convert(Object o) { return (o != null && o instanceof String) ? call((String)o) : null; } private Integer call(String o) {
@Override public Object convert(Object o) { if (o == null) return null; if (o instanceof String) return call((String)o); return null; } private T call(String o) {
@Override public Object convert(Object o) { if (o == null) return null; if (o instanceof GregorianCalendar) return call((GregorianCalendar)o); return null; } private Object call(GregorianCalendar cal) {
houseNumberField.setPrefWidth(PREF_WIDTH); root.add(houseNumberField); JFXBinder.bind(HasAddress.PROP_HOUSE_NUMBER).of(Model.withAt(model, HasAddress.PROP_HOUSE_NUMBER)).to("text").of(houseNumberField, NumberConverters.numberToString()); JFXBinder.bind("text").of(houseNumberField).to(HasAddress.PROP_HOUSE_NUMBER).of(model, NumberConverters.stringToInteger()); countryComboBox.setCellFactory(nameCellFactory(Country.class)); root.add(countryComboBox); JFXBinder.bind(HasAddress.PROP_COUNTRY).of(Model.withAt(model, HasAddress.PROP_COUNTRY)).to("value").of(countryComboBox, EnumConverters.stringToEnum(Country.class)); JFXBinder.bind("value").of(countryComboBox).to(HasAddress.PROP_COUNTRY).of(model, EnumConverters.enumToString());
private void initComponents() { FieldSets.addIdField(this, model); FieldSets.addNameField(this, model); FieldSets.addPeriodFieldSet(this, model); // // adding planned area label and field // add(FieldSets.label(Bundle.cropproductionunit_view_label_planned_area())); TextField plannedAreaField = new TextField(); plannedAreaField.setPrefWidth(FieldSets.PREF_WIDTH); add(plannedAreaField); JFXBinder.bind(CropProductionUnit.PROP_PLANNED_AREA_IN_HECTARES).of(Model.withAt(model, CropProductionUnit.PROP_PLANNED_AREA_IN_HECTARES)).to("text").of(plannedAreaField, NumberConverters.numberToString()); JFXBinder.bind("text").of(plannedAreaField).to(CropProductionUnit.PROP_PLANNED_AREA_IN_HECTARES).of(model, NumberConverters.stringToDouble()); //todo: NonNegativeDoubleConverter? add(FieldSets.label(Bundle.cropproductionunit_view_label_crop_year())); TextField cropYearField = new TextField(); cropYearField.setPrefWidth(FieldSets.PREF_WIDTH); add(cropYearField); JFXBinder.bind(CropProductionUnit.PROP_CROP_YEAR).of(Model.withAt(model,CropProductionUnit.PROP_CROP_YEAR)).to("text").of(cropYearField, NumberConverters.numberToString()); JFXBinder.bind("text").of(cropYearField).to(CropProductionUnit.PROP_CROP_YEAR).of(model, NumberConverters.stringToInteger()); // Customer ComboBox: CustomerSelector.addFieldSet(this, model); // Crop selection ComboBoxes: CropSelector.addFieldSet(this, model); }
@Override public void run() { MigPane root = new MigPane("wrap 2"); FieldSets.addNameField(root, model); FieldSets.addPeriodFieldSet(root, model); // // adding soil type label and field // Label soilTypeLabel = new Label(Bundle.new_field_view_label_soil_type()); root.add(soilTypeLabel); ComboBox<SoilType> soilTypeComboBox = new ComboBox<>(FXCollections.<SoilType>observableArrayList(SoilType.values())); soilTypeComboBox.setPrefWidth(150.0d); soilTypeComboBox.setCellFactory(descriptionCellFactory(SoilType.class)); root.add(soilTypeComboBox); JFXBinder.bind(Field.PROP_SOIL_TYPE).of(Model.withAt(model, Field.PROP_SOIL_TYPE)).to("value").of(soilTypeComboBox, EnumConverters.stringToEnum(SoilType.class)); JFXBinder.bind("value").of(soilTypeComboBox).to(Field.PROP_SOIL_TYPE).of(Model.withAt(model, Field.PROP_SOIL_TYPE), EnumConverters.enumToString()); Scene scene = new Scene(root, SCENE_WIDTH, SCENE_HEIGHT); StyleManager.Default.applyFormStyle(scene); fxPanel.setScene(scene); } });
averageValueField.setPrefWidth(FieldSets.PREF_WIDTH); add(averageValueField); JFXBinder.bind(ActivityField.PROP_AVERAGE_VALUE).of(model).to("text").of(averageValueField, NumberConverters.numberToString()); JFXBinder.bind("text").of(averageValueField).to(ActivityField.PROP_AVERAGE_VALUE).of(model, NumberConverters.stringToDouble()); defaultValueField.setPrefWidth(FieldSets.PREF_WIDTH); add(defaultValueField); JFXBinder.bind(ActivityField.PROP_DEFAULT_VALUE).of(model).to("text").of(defaultValueField, NumberConverters.numberToString()); JFXBinder.bind("text").of(defaultValueField).to(ActivityField.PROP_DEFAULT_VALUE).of(model, NumberConverters.stringToDouble());
private void bind() { Binder.bind(PROP_GEOMETRY).of(Model.withAt(model, PROP_GEOMETRY)).to(PROP_GEOMETRY).of(this, ConverterAdapters.adaptToObject(converter)); Binder.bind(PROP_GEOMETRY).of(this).to(PROP_GEOMETRY).of(model, ConverterAdapters.adaptToString(converter)); }
public static void addPeriodFieldSet(MigPane root, PresentationModel model) { root.add(label(Bundle.fieldsets_label_start_date())); CalendarTextField startField = new CalendarTextField(); startField.setPrefWidth(150.0d); root.add(startField); JFXBinder.bind(HasValidityPeriod.PROP_START_DATE).of(Model.withAt(model, HasValidityPeriod.PROP_START_DATE)).to("value").of(startField, CalendarConverters.objectToCalendar()); JFXBinder.bind("value").of(startField).to(HasValidityPeriod.PROP_START_DATE).of(model, CalendarConverters.calendarToLong()); //FIXME: move to server side model initialization if (startField.valueProperty().get() == null) { startField.valueProperty().set(Calendar.getInstance()); } root.add(label(Bundle.fieldsets_label_end_date())); CalendarTextField endField = new CalendarTextField(); endField.setPrefWidth(150.0d); root.add(endField); JFXBinder.bind(HasValidityPeriod.PROP_END_DATE).of(Model.withAt(model, HasValidityPeriod.PROP_END_DATE)).to("value").of(endField, CalendarConverters.objectToCalendar()); JFXBinder.bind("value").of(endField).to(HasValidityPeriod.PROP_END_DATE).of(model, CalendarConverters.calendarToLong()); }
@Override public Object convert(Object o) { return (o != null && o instanceof String) ? call((String)o) : null; } private Double call(String o) {
@Override public Object convert(Object o) { if (o == null) return null; if (o instanceof Enum) return call((Enum)o); return null; } private Object call(Enum o) {
soilTypeComboBox.setCellFactory(descriptionCellFactory(SoilType.class)); root.add(soilTypeComboBox); JFXBinder.bind(Field.PROP_SOIL_TYPE).of(Model.withAt(model, Field.PROP_SOIL_TYPE)).to("value").of(soilTypeComboBox, EnumConverters.stringToEnum(SoilType.class)); JFXBinder.bind("value").of(soilTypeComboBox).to(Field.PROP_SOIL_TYPE).of(model, EnumConverters.enumToString());
private GregorianCalendar call(String dateString) { if (!dateString.isEmpty()) { return call(new Long(dateString)); } return null; } };