Add field published_on and title to Issue
/refs #16 Add field published_on and title to Issue and display both fields.
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package de.thpeetz.kontor.comics.views;
|
||||
|
||||
import java.time.*;
|
||||
import java.time.format.*;
|
||||
import java.util.List;
|
||||
|
||||
import com.vaadin.flow.component.ComponentEvent;
|
||||
@@ -9,6 +11,7 @@ import com.vaadin.flow.component.button.Button;
|
||||
import com.vaadin.flow.component.button.ButtonVariant;
|
||||
import com.vaadin.flow.component.checkbox.Checkbox;
|
||||
import com.vaadin.flow.component.combobox.ComboBox;
|
||||
import com.vaadin.flow.component.datepicker.*;
|
||||
import com.vaadin.flow.component.formlayout.FormLayout;
|
||||
import com.vaadin.flow.component.grid.*;
|
||||
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
|
||||
@@ -43,6 +46,23 @@ public class IssueForm extends FormLayout {
|
||||
|
||||
public IssueForm(List<Comic> comics, List<Volume> volumes) {
|
||||
addClassName("issue-form");
|
||||
binder.forField(publishedOn).withConverter(new Converter<String, YearMonth>() {
|
||||
@Override
|
||||
public Result<YearMonth> convertToModel(String value, ValueContext context) {
|
||||
try {
|
||||
YearMonth result = YearMonth.parse(value);
|
||||
return Result.ok(result);
|
||||
} catch (DateTimeParseException e) {
|
||||
return Result.error("invalid year-month format");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String convertToPresentation(YearMonth value, ValueContext context) {
|
||||
if (value == null) return "";
|
||||
return value.format(DateTimeFormatter.ofPattern("yyyy-MM"));
|
||||
}
|
||||
}).bind(Issue::getPublishedOn, Issue::setPublishedOn);
|
||||
binder.bindInstanceFields(this);
|
||||
|
||||
comic.setItems(comics);
|
||||
|
||||
Reference in New Issue
Block a user