Vorbereitung Release 0.2.0 #83
@@ -21,7 +21,6 @@ import java.time.YearMonth;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Entity
|
||||
public class Issue extends AbstractEntity {
|
||||
@@ -69,4 +68,28 @@ public class Issue extends AbstractEntity {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder result = new StringBuilder();
|
||||
result.append("Issue{");
|
||||
result.append("comic=");
|
||||
result.append(comic);
|
||||
result.append(", volume=");
|
||||
result.append(volume);
|
||||
result.append(", storyArc=");
|
||||
result.append(storyArc);
|
||||
result.append(", issueNumber='");
|
||||
result.append(issueNumber);
|
||||
result.append(", title='");
|
||||
result.append(title);
|
||||
result.append(", publishedOn=");
|
||||
result.append(publishedOn);
|
||||
result.append(", isRead=");
|
||||
result.append(isRead);
|
||||
result.append(", inStock=");
|
||||
result.append(inStock);
|
||||
result.append("}");
|
||||
return result.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Entity
|
||||
public class Volume extends AbstractEntity {
|
||||
@@ -43,4 +42,15 @@ public class Volume extends AbstractEntity {
|
||||
@OneToMany(fetch = FetchType.EAGER, mappedBy = "volume", cascade = CascadeType.REMOVE, orphanRemoval = true)
|
||||
@Nullable
|
||||
private List<Issue> issues = new LinkedList<>();
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder result = new StringBuilder("Volume{");
|
||||
result.append("name=");
|
||||
result.append(name);
|
||||
result.append("comic=Comic{title=");
|
||||
result.append(comic.getTitle());
|
||||
result.append("}}");
|
||||
return result.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import com.vaadin.flow.data.binder.Binder;
|
||||
import de.thpeetz.kontor.comics.data.Comic;
|
||||
import de.thpeetz.kontor.comics.data.Issue;
|
||||
import de.thpeetz.kontor.comics.data.Volume;
|
||||
import de.thpeetz.kontor.common.views.*;
|
||||
import de.thpeetz.kontor.common.views.YearMonthField;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@@ -38,12 +38,21 @@ public class IssueForm extends FormLayout {
|
||||
|
||||
Binder<Issue> binder = new BeanValidationBinder<>(Issue.class);
|
||||
|
||||
public IssueForm(List<Comic> comics) {
|
||||
public IssueForm(List<Comic> comics, List<Volume> volumes) {
|
||||
addClassName("issue-form");
|
||||
binder.bindInstanceFields(this);
|
||||
|
||||
comic.setItems(comics);
|
||||
comic.addValueChangeListener(event -> {
|
||||
if (event.getValue() != null) {
|
||||
volume.setItems(event.getValue().getVolumes());
|
||||
} else {
|
||||
volume.clear();
|
||||
}
|
||||
});
|
||||
comic.setItemLabelGenerator(Comic::getTitle);
|
||||
volume.setItems(volumes);
|
||||
volume.setItemLabelGenerator(Volume::getName);
|
||||
add(comic, volume, issueNumber, title, publishedOn, isRead, inStock, createButtonsLayout());
|
||||
}
|
||||
|
||||
@@ -70,10 +79,20 @@ public class IssueForm extends FormLayout {
|
||||
}
|
||||
|
||||
public void setIssue(Issue issue) {
|
||||
binder.setBean(issue);
|
||||
log.debug("IssueForm.setIssue: {}", issue);
|
||||
Volume issueVolume = null;
|
||||
if (issue != null) {
|
||||
issueVolume = issue.getVolume();
|
||||
}
|
||||
binder.setBean(issue);
|
||||
if (issue != null && issue.getComic() != null) {
|
||||
log.debug("populate list of volumes");
|
||||
volume.setItems(issue.getComic().getVolumes());
|
||||
volume.setItemLabelGenerator(Volume::getName);
|
||||
log.info("Issue.Volume= {}", issue.getVolume());
|
||||
if (issueVolume != null) {
|
||||
log.debug("Set volume {} for issue: {}", issueVolume, issue);
|
||||
volume.setValue(issueVolume);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ public class IssueView extends VerticalLayout {
|
||||
}
|
||||
|
||||
private void configureForm() {
|
||||
form = new IssueForm(service.findAllComics(null));
|
||||
form = new IssueForm(service.findAllComics(null), service.findAllVolumes());
|
||||
form.setWidth("25em");
|
||||
form.setVisible(false);
|
||||
form.addSaveListener(this::saveIssue);
|
||||
|
||||
Reference in New Issue
Block a user