Im Projekt nutze ich eine Microstream DB.
Meine Entity class hat integer- und date-felder.
Ich nutze im Gui Builder ein Flexlayout und ziehe auf das Flexlayout meine Entity.
Der Formbuilder weist allen integer Feldern einen Typ component zu.
Damit werden alle Integer Felder in der Methode InitUI() fehlerhaft.
Erst wenn ich manuell jedes Feld von component() auf IntegerField umstelle verschwinden die Fehler.
Das Gleiche passiert auch bei Datefeldern.
Wenn ich dann von component() auf DatePicker() umstelle dann verschwindet ein Teil der Fehler
Allerdings werden die IntegerFelder im design modus ohne width dargestellt, obwohl diese auf 100% stehen
Was auch bleibt sind die Fehler im Binder, ebenfalls in InitUI():
this.binder.forField(this.cmpStartDate).bind(Ferien::getStartDate, Ferien::setStartDate);
Fehler:
Multiple markers at this line
- The method bind(ValueProvider<Ferien,LocalDate>, Setter<Ferien,LocalDate>) in the type Binder.BindingBuilder<Ferien,LocalDate> is not applicable for the arguments
(Ferien::getStartDate, Ferien::setStartDate)
- The type Ferien does not define setStartDate(Ferien, LocalDate) that is applicable here
- The type of getStartDate() from the type Ferien is Date, this is incompatible with the descriptor's return type: LocalDate
Dieser Fehler verschwindet erst wenn ich aus dem Binder die Felder lösche und neu verbinde.
Dann ändert sich der erzeugte code auf:
this.binder.forField(this.cmpStartDate).withNullRepresentation(LocalDate.of(2020, Month.OCTOBER, 25))
.withConverter(ConverterBuilder.LocalDateToUtilDate().systemDefaultZoneId().build())
.bind(Ferien::getStartDate, Ferien::setStartDate);