remove obsolete kontor.py #61

Merged
tpeetz merged 166 commits from develop/0.1.0 into main 2025-04-30 15:31:19 +00:00
4 changed files with 84 additions and 40 deletions
Showing only changes of commit 8c98e6de26 - Show all commits
+2 -1
View File
@@ -1,9 +1,10 @@
.idea/ .idea/
.theia/
.vscode/
__pycache__/ __pycache__/
bonus/ bonus/
icons/ icons/
icons-shadowless/ icons-shadowless/
.vscode/
springboot/.factorypath springboot/.factorypath
java-ee/.settings java-ee/.settings
java-ee/.project java-ee/.project
@@ -95,7 +95,7 @@ public class MetaDataView extends VerticalLayout {
modifiedColumn.setVisible(false); modifiedColumn.setVisible(false);
versionColumn.setVisible(false); versionColumn.setVisible(false);
grid.setMultiSort(true); grid.setMultiSort(true);
List sortOrder = new ArrayList(); List<GridSortOrder<MetaDataColumn>> sortOrder = new ArrayList<>();
sortOrder.add(new GridSortOrder<MetaDataColumn>(tableColumn, SortDirection.ASCENDING)); sortOrder.add(new GridSortOrder<MetaDataColumn>(tableColumn, SortDirection.ASCENDING));
sortOrder.add(new GridSortOrder<MetaDataColumn>(columnOrderColumn, SortDirection.ASCENDING)); sortOrder.add(new GridSortOrder<MetaDataColumn>(columnOrderColumn, SortDirection.ASCENDING));
grid.sort(sortOrder); grid.sort(sortOrder);
@@ -111,19 +111,6 @@ public class MetaDataView extends VerticalLayout {
form.addCloseListener(e -> closeEditor()); form.addCloseListener(e -> closeEditor());
} }
private void saveMetaData(MetaDataForm.SaveEvent event) {
MetaDataColumn metaDataColumn = event.getMetaDataColumn();
service.saveMetaDataColumn(metaDataColumn);
updateList();
closeEditor();
}
private void deleteMetaData(MetaDataForm.DeleteEvent event) {
service.deleteMetaDataColumn(event.getMetaDataColumn());
updateList();
closeEditor();
}
private Component getContent() { private Component getContent() {
HorizontalLayout content = new HorizontalLayout(grid, form); HorizontalLayout content = new HorizontalLayout(grid, form);
content.setFlexGrow(2, grid); content.setFlexGrow(2, grid);
@@ -166,6 +153,19 @@ public class MetaDataView extends VerticalLayout {
return toolbar; return toolbar;
} }
private void saveMetaData(MetaDataForm.SaveEvent event) {
MetaDataColumn metaDataColumn = event.getMetaDataColumn();
service.saveMetaDataColumn(metaDataColumn);
updateList();
closeEditor();
}
private void deleteMetaData(MetaDataForm.DeleteEvent event) {
service.deleteMetaDataColumn(event.getMetaDataColumn());
updateList();
closeEditor();
}
public void editMetaData(MetaDataColumn metaDataColumn) { public void editMetaData(MetaDataColumn metaDataColumn) {
if (metaDataColumn == null) { if (metaDataColumn == null) {
closeEditor(); closeEditor();
@@ -39,4 +39,8 @@ public class Issue extends AbstractEntity {
private Boolean isRead; private Boolean isRead;
private Boolean inStock; private Boolean inStock;
public String getComicTitle() {
return comic.getTitle();
}
} }
@@ -1,5 +1,10 @@
package de.thpeetz.kontor.comics.views; package de.thpeetz.kontor.comics.views;
import com.vaadin.flow.component.button.ButtonVariant;
import com.vaadin.flow.component.grid.GridSortOrder;
import com.vaadin.flow.data.provider.SortDirection;
import de.thpeetz.kontor.common.views.ColumnToggleContextMenu;
import de.thpeetz.kontor.common.views.StatusIcon;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import com.vaadin.flow.component.Component; import com.vaadin.flow.component.Component;
@@ -18,8 +23,12 @@ import de.thpeetz.kontor.comics.data.Issue;
import de.thpeetz.kontor.comics.services.ComicService; import de.thpeetz.kontor.comics.services.ComicService;
import de.thpeetz.kontor.common.views.MainLayout; import de.thpeetz.kontor.common.views.MainLayout;
import jakarta.annotation.security.PermitAll; import jakarta.annotation.security.PermitAll;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
@Slf4j @Slf4j
@SpringComponent @SpringComponent
@Scope("prototype") @Scope("prototype")
@@ -28,8 +37,26 @@ import lombok.extern.slf4j.Slf4j;
@PageTitle("Issue | Comics | Kontor") @PageTitle("Issue | Comics | Kontor")
public class IssueView extends VerticalLayout { public class IssueView extends VerticalLayout {
Grid<Issue> grid = new Grid<>(Issue.class); @Getter
Grid<Issue> grid = new Grid<>(Issue.class, false);
Grid.Column<Issue> idColumn = grid.addColumn(Issue::getId)
.setHeader("ID").setResizable(true).setSortable(true);
Grid.Column<Issue> createdColumn = grid.addColumn(Issue::getCreatedDate)
.setHeader("Erstellt").setResizable(true).setSortable(true);
Grid.Column<Issue> modifiedColumn = grid.addColumn(Issue::getLastModifiedDate)
.setHeader("Geändert").setResizable(true).setSortable(true);
Grid.Column<Issue> versionColumn = grid.addColumn(Issue::getVersion)
.setHeader("Version").setResizable(true).setSortable(true);
Grid.Column<Issue> titleColumn = grid.addColumn(Issue::getComicTitle)
.setHeader("Comic").setResizable(true).setSortable(true);
Grid.Column<Issue> issueNumberColumn = grid.addColumn(Issue::getIssueNumber)
.setHeader("Heft Nummer").setResizable(true).setSortable(true);
Grid.Column<Issue> isReadColumn = grid.addComponentColumn(issueColumn -> StatusIcon.create(issueColumn.getIsRead()))
.setHeader("Gelesen?").setWidth("6rem").setSortable(true);
Grid.Column<Issue> inStockColumn = grid.addComponentColumn(issueColumn -> StatusIcon.create(issueColumn.getInStock()))
.setHeader("Im Bestand?").setWidth("6rem").setSortable(true);
ComboBox<Comic> comicFilter = new ComboBox<>("Comic"); ComboBox<Comic> comicFilter = new ComboBox<>("Comic");
@Getter
IssueForm form; IssueForm form;
ComicService service; ComicService service;
@@ -44,22 +71,22 @@ public class IssueView extends VerticalLayout {
updateList(); updateList();
} }
public Grid<Issue> getGrid() {
return grid;
}
private void configureGrid() { private void configureGrid() {
grid.addClassName("issue-grid"); grid.addClassName("issue-grid");
grid.setSizeFull(); grid.setSizeFull();
grid.setColumns("comic.title", "issueNumber", "isRead", "inStock");
grid.getColumns().forEach(col -> col.setAutoWidth(true)); grid.getColumns().forEach(col -> col.setAutoWidth(true));
idColumn.setVisible(false);
createdColumn.setVisible(false);
modifiedColumn.setVisible(false);
versionColumn.setVisible(false);
grid.setMultiSort(true);
List<GridSortOrder<Issue>> sortOrder = new ArrayList<>();
sortOrder.add(new GridSortOrder<Issue>(titleColumn, SortDirection.ASCENDING));
sortOrder.add(new GridSortOrder<Issue>(issueNumberColumn, SortDirection.ASCENDING));
grid.sort(sortOrder);
grid.asSingleSelect().addValueChangeListener(event -> editIssue(event.getValue())); grid.asSingleSelect().addValueChangeListener(event -> editIssue(event.getValue()));
} }
public IssueForm getForm() {
return form;
}
private void configureForm() { private void configureForm() {
form = new IssueForm(service.findAllComics(null)); form = new IssueForm(service.findAllComics(null));
form.setWidth("25em"); form.setWidth("25em");
@@ -69,18 +96,6 @@ public class IssueView extends VerticalLayout {
form.addCloseListener(e -> closeEditor()); form.addCloseListener(e -> closeEditor());
} }
private void saveIssue(IssueForm.SaveEvent event) {
service.saveIssue(event.getIssue());
updateList();
closeEditor();
}
private void deleteIssue(IssueForm.DeleteEvent event) {
service.deleteIssue(event.getIssue());
updateList();
closeEditor();
}
private Component getContent() { private Component getContent() {
HorizontalLayout content = new HorizontalLayout(grid, form); HorizontalLayout content = new HorizontalLayout(grid, form);
content.setFlexGrow(2, grid); content.setFlexGrow(2, grid);
@@ -93,16 +108,40 @@ public class IssueView extends VerticalLayout {
private HorizontalLayout getToolbar() { private HorizontalLayout getToolbar() {
comicFilter.setItems(service.findAllComics(null)); comicFilter.setItems(service.findAllComics(null));
comicFilter.setItemLabelGenerator(Comic::getTitle); comicFilter.setItemLabelGenerator(Comic::getTitle);
comicFilter.addValueChangeListener(e -> updateList());
comicFilter.setClearButtonVisible(true); comicFilter.setClearButtonVisible(true);
comicFilter.addValueChangeListener(e -> updateList());
Button addIssueButton = new Button("Add issue", click -> addIssue()); Button addIssueButton = new Button("Add issue");
addIssueButton.addClickListener(click -> addIssue());
HorizontalLayout toolbar = new HorizontalLayout(comicFilter, addIssueButton); Button menuButton = new Button("Show/Hide Columns");
menuButton.addThemeVariants(ButtonVariant.LUMO_TERTIARY);
ColumnToggleContextMenu<Issue> columnToggleContextMenu = new ColumnToggleContextMenu<>(menuButton);
columnToggleContextMenu.addColumnToggleItem(idColumn);
columnToggleContextMenu.addColumnToggleItem(createdColumn);
columnToggleContextMenu.addColumnToggleItem(modifiedColumn);
columnToggleContextMenu.addColumnToggleItem(versionColumn);
columnToggleContextMenu.addColumnToggleItem(titleColumn);
columnToggleContextMenu.addColumnToggleItem(issueNumberColumn);
columnToggleContextMenu.addColumnToggleItem(isReadColumn);
columnToggleContextMenu.addColumnToggleItem(inStockColumn);
HorizontalLayout toolbar = new HorizontalLayout(comicFilter, addIssueButton, menuButton);
toolbar.addClassName("toolbar"); toolbar.addClassName("toolbar");
return toolbar; return toolbar;
} }
private void saveIssue(IssueForm.SaveEvent event) {
service.saveIssue(event.getIssue());
updateList();
closeEditor();
}
private void deleteIssue(IssueForm.DeleteEvent event) {
service.deleteIssue(event.getIssue());
updateList();
closeEditor();
}
public void editIssue(Issue issue) { public void editIssue(Issue issue) {
if (issue == null) { if (issue == null) {
closeEditor(); closeEditor();