extend MetaDataColumn by adding column for name of column for referenced tables

This commit is contained in:
Thomas Peetz
2025-01-12 02:41:40 +01:00
committed by Thomas Peetz
parent 5affa16505
commit 954dab289a
11 changed files with 203 additions and 25 deletions
+9 -4
View File
@@ -43,7 +43,7 @@ class KontorDB:
meta_data = {} meta_data = {}
order = 0 order = 0
for (_, column) in self.session.query(MetaDataTable, MetaDataColumn).filter(MetaDataTable.id == MetaDataColumn.table_id).filter(MetaDataTable.table_name == table_name).filter(MetaDataColumn.is_shown == 1).all(): for (_, column) in self.session.query(MetaDataTable, MetaDataColumn).filter(MetaDataTable.id == MetaDataColumn.table_id).filter(MetaDataTable.table_name == table_name).filter(MetaDataColumn.is_shown == 1).all():
meta_data[order] = {'column': column.column_name, 'label': column.column_label, 'order': column.column_order} meta_data[order] = {'column': column.column_name, 'label': column.column_label, 'order': column.column_order, 'ref_column': column.ref_column}
order += 1 order += 1
return meta_data return meta_data
@@ -70,7 +70,7 @@ class KontorDB:
# print(f"KontorDB.get_data: {row}") # print(f"KontorDB.get_data: {row}")
data.append(list(row)) data.append(list(row))
cursor.close() cursor.close()
print(f"KontorDB.getData: return {len(data)}") # print(f"KontorDB.getData: return {len(data)}")
if table_name == 'comic' and len(where_clause) == 0: if table_name == 'comic' and len(where_clause) == 0:
data.clear() data.clear()
comics = self.session.query(Comic).all() comics = self.session.query(Comic).all()
@@ -79,8 +79,13 @@ class KontorDB:
row = [] row = []
for order in columns.keys(): for order in columns.keys():
column_name = columns[order]['column'] column_name = columns[order]['column']
if column_name == 'publisher_id': if str(column_name).endswith("_id"):
row.append(item.publisher.name) ref_table = column_name[:-3]
# print(f"{ref_table=}")
ref = getattr(item, ref_table)
value = getattr(ref, "name")
# print(f"{value=}")
row.append(value)
else: else:
row.append(getattr(item, column_name)) row.append(getattr(item, column_name))
# print(repr(row)) # print(repr(row))
+93 -3
View File
@@ -11,7 +11,7 @@ class Publisher(Base):
created_date = Column(DateTime) created_date = Column(DateTime)
last_modified_date = Column(DateTime) last_modified_date = Column(DateTime)
version = Column(Integer) version = Column(Integer)
name = Column(String(length=255)) name = Column(String(length=255), unique=True)
comics = relationship("Comic") comics = relationship("Comic")
def __repr__(self): def __repr__(self):
@@ -27,14 +27,104 @@ class Comic(Base):
created_date = Column(DateTime) created_date = Column(DateTime)
last_modified_date = Column(DateTime) last_modified_date = Column(DateTime)
version = Column(Integer) version = Column(Integer)
title = Column(String(length=255)) title = Column(String(length=255), unique=True)
publisher_id = Column(String, ForeignKey('publisher.id')) publisher_id = Column(String, ForeignKey('publisher.id'), nullable=False)
publisher = relationship("Publisher", back_populates="comics") publisher = relationship("Publisher", back_populates="comics")
current_order = Column(BIT(1)) current_order = Column(BIT(1))
completed = Column(BIT(1)) completed = Column(BIT(1))
issues = relationship("Issue")
story_arcs = relationship("StoryArc")
trade_paperbacks = relationship("TradePaperback")
volumes = relationship("Volume")
comic_works = relationship("ComicWork")
def __repr__(self): def __repr__(self):
return f'Comic({self.id} {self.version} {self.title} {self.publisher.name})' return f'Comic({self.id} {self.version} {self.title} {self.publisher.name})'
def __str__(self): def __str__(self):
return f'{self.title}({self.id})' return f'{self.title}({self.id})'
class Volume(Base):
__tablename__ = "volume"
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
name = Column(String(length=255), nullable=False)
comic_id = Column(String, ForeignKey("comic.id"), nullable=False)
comic = relationship("Comic", back_populates="volumes")
issues = relationship("Issue")
class TradePaperback(Base):
__tablename__ = "trade_paperback"
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
name = Column(String(length=255), nullable=False)
issue_start = Column(Integer)
issue_end = Column(Integer)
comic_id = Column(String, ForeignKey("comic.id"), nullable=False)
comic = relationship("Comic", back_populates="trade_paperbacks")
class StoryArc(Base):
__tablename__ = "story_arc"
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
name = Column(String(length=255), nullable=False)
comic_id = Column(String, ForeignKey("comic.id"), nullable=False)
comic = relationship("Comic", back_populates="story_arcs")
class Issue(Base):
__tablename__ = "issue"
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
issue_number = Column(String(255))
in_stock = Column(BIT(1))
is_read = Column(BIT(1))
comic_id = Column(String, ForeignKey("comic.id"), nullable=False)
comic = relationship("Comic", back_populates="issues")
volume_id = Column(String, ForeignKey("volume.id"), nullable=True)
volume = relationship("Volume", back_populates="issues")
class Artist(Base):
__tablename__ = "artist"
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
name = Column(String(length=255), nullable=False)
comic_works = relationship("ComicWork")
class Worktype(Base):
__tablename__ = "worktype"
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
name = Column(String(length=255), nullable=False, unique=True)
comic_works = relationship("ComicWork")
class ComicWork(Base):
__tablename__ = "comic_work"
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
comic_id = Column(String, ForeignKey("comic.id"), nullable=False)
comic = relationship("Comic", back_populates="comic_works")
artist_id = Column(String, ForeignKey("artist.id"), nullable=False)
artist = relationship("Artist", back_populates="comic_works")
worktype_id = Column(String, ForeignKey("worktype.id"), nullable=False)
worktype = relationship("Worktype", back_populates="comic_works")
+1
View File
@@ -37,6 +37,7 @@ class MetaDataColumn(Base):
filter_label = Column(String(255)) filter_label = Column(String(255))
is_shown = Column(BIT(1)) is_shown = Column(BIT(1))
show_filter = Column(BIT(1)) show_filter = Column(BIT(1))
ref_column = Column(String, nullable=True)
def __repr__(self): def __repr__(self):
if self.column_name is None: if self.column_name is None:
+76 -13
View File
@@ -1,4 +1,4 @@
from sqlalchemy import Boolean, Column, DateTime, Integer, String, ForeignKey from sqlalchemy import Boolean, Column, DateTime, Integer, String, ForeignKey, UniqueConstraint
from sqlalchemy.dialects.mysql import BIT from sqlalchemy.dialects.mysql import BIT
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
@@ -7,11 +7,14 @@ from database.base import Base
class Sport(Base): class Sport(Base):
__tablename__ = "sport" __tablename__ = "sport"
__table_args__ = (
UniqueConstraint("name"),
)
id = Column(String, primary_key=True) id = Column(String, primary_key=True)
created_date = Column(DateTime) created_date = Column(DateTime)
last_modified_date = Column(DateTime) last_modified_date = Column(DateTime)
version = Column(Integer) version = Column(Integer)
name = Column(String(255)) name = Column(String(255), nullable=False, index=True, unique=True)
teams = relationship("Team") teams = relationship("Team")
positions = relationship("FieldPosition") positions = relationship("FieldPosition")
@@ -22,47 +25,107 @@ class Team(Base):
created_date = Column(DateTime) created_date = Column(DateTime)
last_modified_date = Column(DateTime) last_modified_date = Column(DateTime)
version = Column(Integer) version = Column(Integer)
name = Column(String(255)) name = Column(String(255), nullable=False, index=True, unique=True)
short_name = Column(String(255)) short_name = Column(String(255), nullable=False, )
sport_id = Column(String, ForeignKey("sport.id")) sport_id = Column(String, ForeignKey("sport.id"), nullable=False)
sport = relationship("Sport", back_populates="positions") sport = relationship("Sport", back_populates="positions")
roosters = relationship("Rooster") roosters = relationship("Rooster")
class FieldPosition(Base): class FieldPosition(Base):
__tablename__ = "field_position" __tablename__ = "field_position"
__table_args__ = (
UniqueConstraint("name", "sport_id"),
UniqueConstraint("short_name", "sport_id"),
)
id = Column(String, primary_key=True) id = Column(String, primary_key=True)
created_date = Column(DateTime) created_date = Column(DateTime)
last_modified_date = Column(DateTime) last_modified_date = Column(DateTime)
version = Column(Integer) version = Column(Integer)
name = Column(String(255)) name = Column(String(255), nullable=False, index=True)
short_name = Column(String(255)) short_name = Column(String(255), nullable=False)
sport_id = Column(String, ForeignKey("sport.id")) sport_id = Column(String, ForeignKey("sport.id"), nullable=False, index=True)
sport = relationship("Sport", back_populates="positions") sport = relationship("Sport", back_populates="positions")
roosters = relationship("Rooster") roosters = relationship("Rooster")
class Player(Base): class Player(Base):
__tablename__ = "player" __tablename__ = "player"
__table_args__ = (
UniqueConstraint("first_name", "last_name"),
)
id = Column(String, primary_key=True) id = Column(String, primary_key=True)
created_date = Column(DateTime) created_date = Column(DateTime)
last_modified_date = Column(DateTime) last_modified_date = Column(DateTime)
version = Column(Integer) version = Column(Integer)
first_name = Column(String(255)) first_name = Column(String(255), nullable=False, index=True)
last_name = Column(String(255)) last_name = Column(String(255), nullable=False, index=True)
roosters = relationship("Rooster") roosters = relationship("Rooster")
def get_full_name(self) -> str:
return f"{self.last_name}, {self.first_name}"
class Rooster(Base): class Rooster(Base):
__tablename__ = "rooster" __tablename__ = "rooster"
__table_args__ = (
UniqueConstraint("year", "team_id", "player_id", "position_id"),
)
id = Column(String, primary_key=True) id = Column(String, primary_key=True)
created_date = Column(DateTime) created_date = Column(DateTime)
last_modified_date = Column(DateTime) last_modified_date = Column(DateTime)
version = Column(Integer) version = Column(Integer)
year = Column(Integer) year = Column(Integer)
team_id = Column(String, ForeignKey("team.id")) team_id = Column(String, ForeignKey("team.id"), nullable=False, index=True)
team = relationship("Team", back_populates="roosters") team = relationship("Team", back_populates="roosters")
player_id = Column(String, ForeignKey("player.id")) player_id = Column(String, ForeignKey("player.id"), nullable=False, index=True)
player = relationship("Player", back_populates="roosters") player = relationship("Player", back_populates="roosters")
position_id = Column(String, ForeignKey("field_position.id")) position_id = Column(String, ForeignKey("field_position.id"), nullable=False, index=True)
position = relationship("roosters") position = relationship("roosters")
cards = relationship("Card")
class Vendor(Base):
__tablename__ = "vendor"
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
name = Column(String(255), nullable=False, unique=True, index=True)
card_sets = relationship("CardSet")
cards = relationship("Card")
class CardSet(Base):
__tablename__ = "card_set"
__table_args__ = (
UniqueConstraint("name", "vendor_id"),
)
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
name = Column(String(255), index=True)
parallel_set = Column(BIT(1))
insert_set = Column(BIT(1))
vendor_id = Column(String, ForeignKey("vendor.id"), nullable=False, index=True)
vendor = relationship("Vendor", back_populates="card_sets")
cards = relationship("Card")
class Card(Base):
__tablename__ = "card"
__table_args__ = (
UniqueConstraint("card_number", "year", "vendor_id", "card_set_id"),
)
id = Column(String, primary_key=True)
created_date = Column(DateTime)
last_modified_date = Column(DateTime)
version = Column(Integer)
card_number = Column(Integer, index=True)
year = Column(Integer, index=True)
card_set_id = Column(String, ForeignKey("card_set.id"), nullable=False)
card_set = relationship("cards")
rooster_id = Column(String, ForeignKey("rooster.id"), nullable=False)
rooster = relationship("cards")
vendor_id = Column(String, ForeignKey("vendor.id"), nullable=False)
vendor = relationship("Vendor", back_populates="cards")
+4
View File
@@ -69,9 +69,13 @@ class MainWindow(QMainWindow):
menu_bar.addMenu(kontor_menu) menu_bar.addMenu(kontor_menu)
kontor_menu.addAction(self.importAction) kontor_menu.addAction(self.importAction)
kontor_menu.addAction(self.exportAction) kontor_menu.addAction(self.exportAction)
comic_menu = QMenu("&Comic")
tysc_menu = QMenu("&TradeYourSportCards")
media_file_menu = QMenu("&MediaFile") media_file_menu = QMenu("&MediaFile")
media_file_menu.addAction(self.updateTitleAction) media_file_menu.addAction(self.updateTitleAction)
media_file_menu.addAction(self.downloadAction) media_file_menu.addAction(self.downloadAction)
kontor_menu.addMenu(comic_menu)
kontor_menu.addMenu(tysc_menu)
kontor_menu.addMenu(media_file_menu) kontor_menu.addMenu(media_file_menu)
# Help menu # Help menu
help_menu = QMenu("&Hilfe") help_menu = QMenu("&Hilfe")
+1 -1
View File
@@ -43,7 +43,7 @@ class KontorModelConfig:
def get_data(self) -> list: def get_data(self) -> list:
data = self.kontor_db.get_data(self._table, self.header, self.get_filter()) data = self.kontor_db.get_data(self._table, self.header, self.get_filter())
print(f"KontorModelConfig.get_data: {len(data)}") # print(f"KontorModelConfig.get_data: {len(data)}")
# comics = self.kontor_db.session.query(Comic).all() # comics = self.kontor_db.session.query(Comic).all()
# print(f'{len(comics)} Comics loaded') # print(f'{len(comics)} Comics loaded')
return data return data
@@ -179,7 +179,7 @@ public class SetupModuleAdmin implements ApplicationListener<ContextRefreshedEve
metaDataService.getColumn(comicTable, "completed", "completed", "BOOLEAN", null, 5, Boolean.TRUE, "Complete", Boolean.TRUE, "Complete"); metaDataService.getColumn(comicTable, "completed", "completed", "BOOLEAN", null, 5, Boolean.TRUE, "Complete", Boolean.TRUE, "Complete");
metaDataService.getColumn(comicTable, "current_order", "current_order", "BOOLEAN", null, 6, Boolean.TRUE, "Bestellung", Boolean.TRUE, "Bestellung"); metaDataService.getColumn(comicTable, "current_order", "current_order", "BOOLEAN", null, 6, Boolean.TRUE, "Bestellung", Boolean.TRUE, "Bestellung");
metaDataService.getColumn(comicTable, "title", "title", "TEXT", "UNIQUE", 7, Boolean.TRUE, "Title", Boolean.FALSE, null); metaDataService.getColumn(comicTable, "title", "title", "TEXT", "UNIQUE", 7, Boolean.TRUE, "Title", Boolean.FALSE, null);
metaDataService.getColumn(comicTable, "publisher_id", "publisher_id", "TEXT", null, 8, Boolean.TRUE, "Verlag", Boolean.FALSE, null); metaDataService.getColumn(comicTable, "publisher_id", "publisher_id", "TEXT", null, 8, Boolean.TRUE, "Verlag", Boolean.FALSE, null, "name");
MetaDataTable issueTable = metaDataService.getTable("issue"); MetaDataTable issueTable = metaDataService.getTable("issue");
metaDataService.getColumn(issueTable, "id", "identifier", "TEXT", "PRIMARY KEY", 1, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(issueTable, "id", "identifier", "TEXT", "PRIMARY KEY", 1, Boolean.FALSE, "", Boolean.FALSE, null);
metaDataService.getColumn(issueTable, "created_date", "created", "TIMESTAMP", null, 2, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(issueTable, "created_date", "created", "TIMESTAMP", null, 2, Boolean.FALSE, "", Boolean.FALSE, null);
@@ -188,7 +188,7 @@ public class SetupModuleAdmin implements ApplicationListener<ContextRefreshedEve
metaDataService.getColumn(issueTable, "in_stock", "in_stock", "BOOLEAN", null, 5, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(issueTable, "in_stock", "in_stock", "BOOLEAN", null, 5, Boolean.FALSE, "", Boolean.FALSE, null);
metaDataService.getColumn(issueTable, "is_read", "is_read", "BOOLEAN", null, 6, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(issueTable, "is_read", "is_read", "BOOLEAN", null, 6, Boolean.FALSE, "", Boolean.FALSE, null);
metaDataService.getColumn(issueTable, "issue_number", "issue_number", "TEXT", null, 7, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(issueTable, "issue_number", "issue_number", "TEXT", null, 7, Boolean.FALSE, "", Boolean.FALSE, null);
metaDataService.getColumn(issueTable, "comic_id", "comic_id", "TEXT", null, 8, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(issueTable, "comic_id", "comic_id", "TEXT", null, 8, Boolean.FALSE, "", Boolean.FALSE, null, "title");
metaDataService.getColumn(issueTable, "volume_id", "volume_id", "TEXT", null, 9, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(issueTable, "volume_id", "volume_id", "TEXT", null, 9, Boolean.FALSE, "", Boolean.FALSE, null);
MetaDataTable volumeTable = metaDataService.getTable("volume"); MetaDataTable volumeTable = metaDataService.getTable("volume");
metaDataService.getColumn(volumeTable, "id", "identifier", "TEXT", "PRIMARY KEY", 1, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(volumeTable, "id", "identifier", "TEXT", "PRIMARY KEY", 1, Boolean.FALSE, "", Boolean.FALSE, null);
@@ -205,7 +205,7 @@ public class SetupModuleAdmin implements ApplicationListener<ContextRefreshedEve
metaDataService.getColumn(tpbTable, "issue_start", "issue_start", "LONG", null, 5, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(tpbTable, "issue_start", "issue_start", "LONG", null, 5, Boolean.FALSE, "", Boolean.FALSE, null);
metaDataService.getColumn(tpbTable, "issue_end", "issue_end", "LONG", null, 6, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(tpbTable, "issue_end", "issue_end", "LONG", null, 6, Boolean.FALSE, "", Boolean.FALSE, null);
metaDataService.getColumn(tpbTable, "name", "name", "TEXT", null, 7, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(tpbTable, "name", "name", "TEXT", null, 7, Boolean.FALSE, "", Boolean.FALSE, null);
metaDataService.getColumn(tpbTable, "comic_id", "comic_id", "TEXT", null, 8, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(tpbTable, "comic_id", "comic_id", "TEXT", null, 8, Boolean.FALSE, "", Boolean.FALSE, null, "title");
MetaDataTable storyArcTable = metaDataService.getTable("story_arc"); MetaDataTable storyArcTable = metaDataService.getTable("story_arc");
metaDataService.getColumn(storyArcTable, "id", "identifier", "TEXT", "PRIMARY KEY", 1, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(storyArcTable, "id", "identifier", "TEXT", "PRIMARY KEY", 1, Boolean.FALSE, "", Boolean.FALSE, null);
metaDataService.getColumn(storyArcTable, "created_date", "created", "TIMESTAMP", null, 2, Boolean.FALSE, "", Boolean.FALSE, null); metaDataService.getColumn(storyArcTable, "created_date", "created", "TIMESTAMP", null, 2, Boolean.FALSE, "", Boolean.FALSE, null);
@@ -36,6 +36,8 @@ public class MetaDataColumn extends AbstractEntity {
private String filterLabel; private String filterLabel;
private String refColumn;
@ManyToOne @ManyToOne
@JoinColumn(name = "table_id") @JoinColumn(name = "table_id")
@NotNull @NotNull
@@ -35,6 +35,10 @@ public class MetaDataService {
} }
public void getColumn(MetaDataTable table, String columnName, String columnSyncName, String columnType, String columnModifier, Integer columnOrder, Boolean isShown, String columnLabel, Boolean showFilter, String filterLabel) { public void getColumn(MetaDataTable table, String columnName, String columnSyncName, String columnType, String columnModifier, Integer columnOrder, Boolean isShown, String columnLabel, Boolean showFilter, String filterLabel) {
this.getColumn(table, columnName, columnSyncName, columnType, columnModifier, columnOrder, isShown, columnLabel, showFilter, filterLabel, null);
}
public void getColumn(MetaDataTable table, String columnName, String columnSyncName, String columnType, String columnModifier, Integer columnOrder, Boolean isShown, String columnLabel, Boolean showFilter, String filterLabel, String refColumn) {
if (table.getTableColumns().stream().anyMatch(column -> column.getColumnName().equals(columnName))) { if (table.getTableColumns().stream().anyMatch(column -> column.getColumnName().equals(columnName))) {
log.debug("Column {} with name {} of table {} found, check Values", columnOrder, columnName, table.getTableName()); log.debug("Column {} with name {} of table {} found, check Values", columnOrder, columnName, table.getTableName());
MetaDataColumn column = table.getTableColumns().get(columnOrder.intValue()-1); MetaDataColumn column = table.getTableColumns().get(columnOrder.intValue()-1);
@@ -70,6 +74,10 @@ public class MetaDataService {
log.debug("filterLabel has to be change to {}}", filterLabel); log.debug("filterLabel has to be change to {}}", filterLabel);
column.setFilterLabel(filterLabel); column.setFilterLabel(filterLabel);
} }
if (refColumn != null && !refColumn.equals(column.getRefColumn())) {
log.debug("refColumn has to be change to {}}", filterLabel);
column.setRefColumn(refColumn);
}
metaDataColumnRepository.save(column); metaDataColumnRepository.save(column);
} else { } else {
log.info("Column {} of table {} not found, will create it", columnName, table.getTableName()); log.info("Column {} of table {} not found, will create it", columnName, table.getTableName());
@@ -85,6 +93,7 @@ public class MetaDataService {
} }
} }
public List<MetaDataColumn> findAllMetaDataColumns(String stringFilter) { public List<MetaDataColumn> findAllMetaDataColumns(String stringFilter) {
if (stringFilter == null || stringFilter.isEmpty()) { if (stringFilter == null || stringFilter.isEmpty()) {
log.debug("Found " + metaDataColumnRepository.count()+ " entries"); log.debug("Found " + metaDataColumnRepository.count()+ " entries");
@@ -29,6 +29,7 @@ public class MetaDataForm extends FormLayout {
TextField columnLabel = new TextField("Column Label"); TextField columnLabel = new TextField("Column Label");
Checkbox showFilter = new Checkbox("Show Filter"); Checkbox showFilter = new Checkbox("Show Filter");
TextField filterLabel = new TextField("Filter Label"); TextField filterLabel = new TextField("Filter Label");
TextField refColumn = new TextField("Ref Column");
Button save = new com.vaadin.flow.component.button.Button("Save"); Button save = new com.vaadin.flow.component.button.Button("Save");
Button delete = new com.vaadin.flow.component.button.Button("Delete"); Button delete = new com.vaadin.flow.component.button.Button("Delete");
@@ -47,6 +48,7 @@ public class MetaDataForm extends FormLayout {
isShown.addClickListener(click -> columnLabel.setEnabled(isShown.getValue())); isShown.addClickListener(click -> columnLabel.setEnabled(isShown.getValue()));
add(showFilter, filterLabel); add(showFilter, filterLabel);
showFilter.addClickListener(click -> filterLabel.setEnabled(showFilter.getValue())); showFilter.addClickListener(click -> filterLabel.setEnabled(showFilter.getValue()));
add(refColumn);
add(createButtonsLayout()); add(createButtonsLayout());
} }
@@ -66,6 +66,8 @@ public class MetaDataView extends VerticalLayout {
setHeader("Zeige Filter").setWidth("6rem").setSortable(true); setHeader("Zeige Filter").setWidth("6rem").setSortable(true);
Grid.Column<MetaDataColumn> filterLabelColumn = grid.addColumn(MetaDataColumn::getFilterLabel) Grid.Column<MetaDataColumn> filterLabelColumn = grid.addColumn(MetaDataColumn::getFilterLabel)
.setHeader("Filter Name").setResizable(true).setSortable(true); .setHeader("Filter Name").setResizable(true).setSortable(true);
Grid.Column<MetaDataColumn> refColumnColumn = grid.addColumn(MetaDataColumn::getRefColumn)
.setHeader("Ref Column Name").setResizable(true).setSortable(true);
TextField searchField = new TextField(); TextField searchField = new TextField();
@Getter @Getter
MetaDataForm form; MetaDataForm form;
@@ -186,7 +188,7 @@ public class MetaDataView extends VerticalLayout {
columnToggleContextMenu.addColumnToggleItem(columnLabelColumn.getHeaderText(), columnLabelColumn); columnToggleContextMenu.addColumnToggleItem(columnLabelColumn.getHeaderText(), columnLabelColumn);
columnToggleContextMenu.addColumnToggleItem(showFilterColumn.getHeaderText(), showFilterColumn); columnToggleContextMenu.addColumnToggleItem(showFilterColumn.getHeaderText(), showFilterColumn);
columnToggleContextMenu.addColumnToggleItem(filterLabelColumn.getHeaderText(), filterLabelColumn); columnToggleContextMenu.addColumnToggleItem(filterLabelColumn.getHeaderText(), filterLabelColumn);
columnToggleContextMenu.addColumnToggleItem(refColumnColumn.getHeaderText(), refColumnColumn);
HorizontalLayout toolbar = new HorizontalLayout(searchField, addMetaDataButton, menuButton); HorizontalLayout toolbar = new HorizontalLayout(searchField, addMetaDataButton, menuButton);
toolbar.addClassName("toolbar"); toolbar.addClassName("toolbar");
return toolbar; return toolbar;