Vorbereitung Release 0.2.0 #83

Merged
tpeetz merged 178 commits from develop/0.2.0 into main 2026-01-29 22:50:42 +00:00
4 changed files with 59 additions and 7 deletions
Showing only changes of commit a70bf8ae96 - Show all commits
@@ -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);