remove obsolete kontor.py #61
+2
-1
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user