New View EventDetails started.

master
Markus Kreth 7 years ago
parent 82902993cc
commit ba7daf5e82
  1. 67
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/EventDetails.java
  2. 38
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/HeadView.java
  3. 9
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/LoginUI.java
  4. 2
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java
  5. 38
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java
  6. 12
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/NamedView.java
  7. 8
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java
  8. 4
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonFilter.java
  9. 44
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonGrid.java

@ -0,0 +1,67 @@
package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui;
import com.vaadin.navigator.Navigator;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.ui.Button;
import com.vaadin.ui.Grid.SelectionMode;
import com.vaadin.ui.GridLayout;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.business.EventBusiness;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.SingleEventView;
public class EventDetails extends GridLayout implements NamedView {
public static final String VIEW_NAME = "EventDetails";
private static final long serialVersionUID = 8290150079638390995L;
private final EventBusiness eventBusiness;
private final PersonDao personDao;
private final GroupDao groupDao;
private Person loggedinPerson;
private ClubEvent currentEvent;
private SingleEventView eventView;
private PersonGrid personGrid;
public EventDetails(PersonDao personDao, GroupDao groupDao, EventBusiness eventBusiness) {
super(3, 5);
this.eventBusiness = eventBusiness;
this.personDao = personDao;
this.groupDao = groupDao;
}
@Override
public void enter(ViewChangeEvent event) {
Navigator navigator = event.getNavigator();
loggedinPerson = (Person) getSession().getAttribute(Person.SESSION_LOGIN);
currentEvent = eventBusiness.getCurrent();
eventView = new SingleEventView();
eventView.setEvent(currentEvent);
personGrid = new PersonGrid(groupDao, personDao);
personGrid.setEvent(currentEvent);
personGrid.setSelectedOnly();
personGrid.hideFilter();
personGrid.setSelectionMode(SelectionMode.NONE);
Button back = new Button("Zurück");
back.addClickListener(ev -> navigator.navigateTo(((NamedView) event.getOldView()).getViewName()));
addComponent(eventView, 0, 0, 1, 0);
addComponent(personGrid, 0, 1, 1, 1);
addComponent(back, 1, 4);
setSizeFull();
}
@Override
public String getViewName() {
return VIEW_NAME;
}
}

@ -10,6 +10,7 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.function.Supplier; import java.util.function.Supplier;
@ -20,6 +21,7 @@ import org.slf4j.LoggerFactory;
import com.vaadin.contextmenu.ContextMenu; import com.vaadin.contextmenu.ContextMenu;
import com.vaadin.icons.VaadinIcons; import com.vaadin.icons.VaadinIcons;
import com.vaadin.server.StreamResource; import com.vaadin.server.StreamResource;
import com.vaadin.server.VaadinSession;
import com.vaadin.ui.AbstractComponent; import com.vaadin.ui.AbstractComponent;
import com.vaadin.ui.Alignment; import com.vaadin.ui.Alignment;
import com.vaadin.ui.BrowserFrame; import com.vaadin.ui.BrowserFrame;
@ -32,6 +34,7 @@ import com.vaadin.ui.Notification;
import com.vaadin.ui.Window; import com.vaadin.ui.Window;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.GroupDef;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.jasper.CalendarCreator; import de.kreth.vaadin.clubhelper.vaadinclubhelper.jasper.CalendarCreator;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent.ClubEventProvider; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent.ClubEventProvider;
@ -55,6 +58,10 @@ public class HeadView extends HorizontalLayout {
private int monthItemId; private int monthItemId;
private Label personLabel;
private Person loggedinPerson;
public HeadView(Supplier<ZonedDateTime> startTime, Supplier<ZonedDateTime> endTime, public HeadView(Supplier<ZonedDateTime> startTime, Supplier<ZonedDateTime> endTime,
ClubEventProvider dataProvider) { ClubEventProvider dataProvider) {
@ -68,11 +75,16 @@ public class HeadView extends HorizontalLayout {
popupButton.addClickListener(ev -> openPopupMenu(ev)); popupButton.addClickListener(ev -> openPopupMenu(ev));
popupButton.setWidth(null); popupButton.setWidth(null);
personLabel = new Label();
personLabel.setStyleName("title_caption");
this.addComponent(popupButton); this.addComponent(popupButton);
this.addComponent(monthName); this.addComponent(monthName);
this.addComponent(personLabel);
setComponentAlignment(popupButton, Alignment.MIDDLE_LEFT); setComponentAlignment(popupButton, Alignment.MIDDLE_LEFT);
setComponentAlignment(monthName, Alignment.MIDDLE_CENTER); setComponentAlignment(monthName, Alignment.MIDDLE_CENTER);
setComponentAlignment(personLabel, Alignment.MIDDLE_RIGHT);
setExpandRatio(monthName, 1.0f); setExpandRatio(monthName, 1.0f);
setSizeFull(); setSizeFull();
@ -82,6 +94,16 @@ public class HeadView extends HorizontalLayout {
this.dataProvider = dataProvider; this.dataProvider = dataProvider;
} }
public void updateLoggedinPerson() {
loggedinPerson = (Person) getSession().getAttribute(Person.SESSION_LOGIN);
if (loggedinPerson != null) {
personLabel.setCaption(loggedinPerson.getSurname() + ", " + loggedinPerson.getPrename());
} else {
personLabel.setCaption("");
}
}
public void updateMonthText(ZonedDateTime startDate) { public void updateMonthText(ZonedDateTime startDate) {
String monthValue = dfMonth.format(startDate); String monthValue = dfMonth.format(startDate);
log.debug("Changed Month title to {}", monthValue); log.debug("Changed Month title to {}", monthValue);
@ -91,16 +113,30 @@ public class HeadView extends HorizontalLayout {
private void openPopupMenu(ClickEvent ev) { private void openPopupMenu(ClickEvent ev) {
Button button = ev.getButton(); Button button = ev.getButton();
Person loggedinPerson = (Person) getSession().getAttribute(Person.SESSION_LOGIN); VaadinSession session = getSession();
Person loggedinPerson = (Person) session.getAttribute(Person.SESSION_LOGIN);
ContextMenu contextMenu = new ContextMenu(button, true); ContextMenu contextMenu = new ContextMenu(button, true);
monthItemId = contextMenu.addItem("Export Monat", ev1 -> calendarExport(ev1)).getId(); monthItemId = contextMenu.addItem("Export Monat", ev1 -> calendarExport(ev1)).getId();
contextMenu.addItem("Export Jahr", ev1 -> calendarExport(ev1)); contextMenu.addItem("Export Jahr", ev1 -> calendarExport(ev1));
if (loggedinPerson != null) { if (loggedinPerson != null) {
Set<GroupDef> groups = loggedinPerson.getGroups();
if (contains(groups, "ADMIN") || contains(groups, "Übungsleiter")) {
contextMenu.addItem("Personen verwalten", ev1 -> switchToPersonEditUi()); contextMenu.addItem("Personen verwalten", ev1 -> switchToPersonEditUi());
} }
contextMenu.addItem("Abmelden", ev1 -> session.setAttribute(Person.SESSION_LOGIN, null));
}
contextMenu.open(50, 50); contextMenu.open(50, 50);
} }
public boolean contains(Set<GroupDef> groups, String name) {
for (GroupDef g : groups) {
if (g.getName().toLowerCase().contentEquals(name.toLowerCase())) {
return true;
}
}
return false;
}
private void switchToPersonEditUi() { private void switchToPersonEditUi() {
} }

@ -1,7 +1,6 @@
package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui; package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui;
import com.vaadin.navigator.Navigator; import com.vaadin.navigator.Navigator;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.ui.Alignment; import com.vaadin.ui.Alignment;
import com.vaadin.ui.LoginForm; import com.vaadin.ui.LoginForm;
@ -11,7 +10,7 @@ import com.vaadin.ui.VerticalLayout;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
public class LoginUI extends VerticalLayout implements View { public class LoginUI extends VerticalLayout implements NamedView {
private static final long serialVersionUID = 4339018452507960084L; private static final long serialVersionUID = 4339018452507960084L;
public static final String VIEW_NAME = "LoginUI"; public static final String VIEW_NAME = "LoginUI";
@ -45,8 +44,12 @@ public class LoginUI extends VerticalLayout implements View {
@Override @Override
public void enter(ViewChangeEvent event) { public void enter(ViewChangeEvent event) {
View.super.enter(event);
navigator = event.getNavigator(); navigator = event.getNavigator();
parameters = event.getParameters(); parameters = event.getParameters();
} }
@Override
public String getViewName() {
return VIEW_NAME;
}
} }

@ -42,13 +42,13 @@ public class MainUi extends UI {
getPage().setTitle("Vereinshelfer"); getPage().setTitle("Vereinshelfer");
// Create a navigator to control the views
Navigator navigator = new Navigator(this, this); Navigator navigator = new Navigator(this, this);
// Create and register the views // Create and register the views
navigator.addView(MainView.VIEW_NAME, new MainView(personDao, groupDao, eventBusiness)); navigator.addView(MainView.VIEW_NAME, new MainView(personDao, groupDao, eventBusiness));
navigator.addView(LoginUI.VIEW_NAME, new LoginUI(personDao)); navigator.addView(LoginUI.VIEW_NAME, new LoginUI(personDao));
navigator.addView(PersonEditView.VIEW_NAME, new PersonEditView(groupDao, personDao)); navigator.addView(PersonEditView.VIEW_NAME, new PersonEditView(groupDao, personDao));
navigator.addView(EventDetails.VIEW_NAME, new EventDetails(personDao, groupDao, eventBusiness));
navigator.navigateTo(MainView.VIEW_NAME); navigator.navigateTo(MainView.VIEW_NAME);
} }

@ -12,8 +12,9 @@ import org.vaadin.addon.calendar.ui.CalendarComponentEvents;
import com.vaadin.event.selection.SelectionEvent; import com.vaadin.event.selection.SelectionEvent;
import com.vaadin.navigator.Navigator; import com.vaadin.navigator.Navigator;
import com.vaadin.navigator.View;
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.ui.Button;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.UI; import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.VerticalLayout;
@ -27,7 +28,7 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarCompone
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.SingleEventView; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.SingleEventView;
public class MainView extends BorderLayout implements View { public class MainView extends BorderLayout implements NamedView {
public static final String VIEW_NAME = ""; public static final String VIEW_NAME = "";
@ -48,6 +49,8 @@ public class MainView extends BorderLayout implements View {
private SingleEventView eventView; private SingleEventView eventView;
private HorizontalLayout eventButtonLayout;
public MainView(PersonDao personDao, GroupDao groupDao, EventBusiness eventBusiness) { public MainView(PersonDao personDao, GroupDao groupDao, EventBusiness eventBusiness) {
this.personDao = personDao; this.personDao = personDao;
this.groupDao = groupDao; this.groupDao = groupDao;
@ -56,20 +59,21 @@ public class MainView extends BorderLayout implements View {
@Override @Override
public void enter(ViewChangeEvent event) { public void enter(ViewChangeEvent event) {
View.super.enter(event);
if (this.navigator == null) { if (this.navigator == null) {
initUI(event); initUI(event);
LOGGER.info("Loaded UI and started fetch of Events"); LOGGER.info("Loaded UI and started fetch of Events");
} else { } else {
loggedinPerson = (Person) getSession().getAttribute(Person.SESSION_LOGIN); loggedinPerson = (Person) getSession().getAttribute(Person.SESSION_LOGIN);
if (loggedinPerson != null) { if (loggedinPerson != null) {
LOGGER.info("{} already initialized - opening Person View.", getClass().getName()); LOGGER.info("{} already initialized - opening Person View.", getClass().getName());
openPersonViewForEvent(eventBusiness.getCurrent()); openPersonViewForEvent(eventBusiness.getCurrent());
calendar.setToday(eventBusiness.getCurrent().getStart()); calendar.setToday(eventBusiness.getCurrent().getStart());
head.updateLoggedinPerson();
} else { } else {
LOGGER.info("{} already initialized - but not loggedin.", getClass().getName()); LOGGER.info("{} already initialized - but not loggedin.", getClass().getName());
head.updateLoggedinPerson();
} }
} }
} }
@ -82,15 +86,30 @@ public class MainView extends BorderLayout implements View {
personGrid = new PersonGrid(groupDao, personDao); personGrid = new PersonGrid(groupDao, personDao);
personGrid.setCaption("Personen"); personGrid.setCaption("Personen");
personGrid.onClosedFunction(() -> detailClosed());
personGrid.onPersonSelect(ev -> personSelectionChange(ev)); personGrid.onPersonSelect(ev -> personSelectionChange(ev));
personGrid.setVisible(false); personGrid.setVisible(false);
Button close = new Button("Schließen", ev -> {
detailClosed();
});
close.setId("person.close");
Button eventDetails = new Button("Veranstaltung Details", ev -> {
navigator.navigateTo(EventDetails.VIEW_NAME);
});
eventDetails.setId("person.eventDetails");
eventButtonLayout = new HorizontalLayout();
eventButtonLayout.setSpacing(true);
eventButtonLayout.addComponents(close, eventDetails);
eventButtonLayout.setVisible(false);
VerticalLayout eastLayout = new VerticalLayout(); VerticalLayout eastLayout = new VerticalLayout();
eastLayout.addComponents(eventView, personGrid); eastLayout.addComponents(eventView, personGrid, eventButtonLayout);
ClubEventProvider dataProvider = new ClubEventProvider(); ClubEventProvider dataProvider = new ClubEventProvider();
calendar = new CalendarComponent(dataProvider); calendar = new CalendarComponent(dataProvider);
calendar.setSizeFull();
calendar.setId("main.calendar"); calendar.setId("main.calendar");
calendar.setHandler(this::onItemClick); calendar.setHandler(this::onItemClick);
@ -128,6 +147,7 @@ public class MainView extends BorderLayout implements View {
LOGGER.debug("Closing detail view."); LOGGER.debug("Closing detail view.");
personGrid.setVisible(false); personGrid.setVisible(false);
eventView.setVisible(false); eventView.setVisible(false);
eventButtonLayout.setVisible(false);
} }
private void onItemClick(CalendarComponentEvents.ItemClickEvent event) { private void onItemClick(CalendarComponentEvents.ItemClickEvent event) {
@ -155,8 +175,14 @@ public class MainView extends BorderLayout implements View {
personGrid.setVisible(true); personGrid.setVisible(true);
eventView.setVisible(true); eventView.setVisible(true);
eventButtonLayout.setVisible(true);
eventBusiness.setSelected(ev); eventBusiness.setSelected(ev);
} }
@Override
public String getViewName() {
return VIEW_NAME;
}
} }

@ -0,0 +1,12 @@
package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui;
import com.vaadin.navigator.View;
public interface NamedView extends View {
/**
* Navigation view name used for this view.
*
* @return view name.
*/
String getViewName();
}

@ -1,6 +1,5 @@
package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui; package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui;
import com.vaadin.navigator.View;
import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.HorizontalLayout;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao;
@ -9,7 +8,7 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonEditDialog; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonEditDialog;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid;
public class PersonEditView extends HorizontalLayout implements View { public class PersonEditView extends HorizontalLayout implements NamedView {
public static final String VIEW_NAME = "PersonEditView"; public static final String VIEW_NAME = "PersonEditView";
private static final long serialVersionUID = 1770993670570422036L; private static final long serialVersionUID = 1770993670570422036L;
@ -31,4 +30,9 @@ public class PersonEditView extends HorizontalLayout implements View {
getUI().addWindow(dlg); getUI().addWindow(dlg);
} }
@Override
public String getViewName() {
return VIEW_NAME;
}
} }

@ -97,7 +97,9 @@ public class PersonFilter implements SerializablePredicate<Person>, DataProvider
@Override @Override
public void onDataChange(DataChangeEvent<Person> event) { public void onDataChange(DataChangeEvent<Person> event) {
publishedList.clear(); publishedList.clear();
publishedList.addAll(personDao.listAll().stream().filter(this).collect(Collectors.toList())); List<Person> listAll = personDao.listAll();
List<Person> filtered = listAll.stream().filter(this).collect(Collectors.toList());
publishedList.addAll(filtered);
updateHandler.fireUpdateEvent(); updateHandler.fireUpdateEvent();
} }

@ -26,6 +26,7 @@ import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Layout; import com.vaadin.ui.Layout;
import com.vaadin.ui.MultiSelect; import com.vaadin.ui.MultiSelect;
import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.components.grid.GridSelectionModel;
import com.vaadin.ui.themes.ValoTheme; import com.vaadin.ui.themes.ValoTheme;
import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao;
@ -47,7 +48,6 @@ public class PersonGrid extends VerticalLayout {
private final CheckBox checkIncluded; private final CheckBox checkIncluded;
private final ComboBox<GroupDef> comboGroups; private final ComboBox<GroupDef> comboGroups;
private transient ClosedFunction closedFunction = null;
private transient Consumer<Person> onPersonEdit; private transient Consumer<Person> onPersonEdit;
private Boolean selectedOnlyFilter; private Boolean selectedOnlyFilter;
@ -57,6 +57,7 @@ public class PersonGrid extends VerticalLayout {
private ClubEvent currentEvent; private ClubEvent currentEvent;
private Column<Person, Startpass> startpassColumn; private Column<Person, Startpass> startpassColumn;
private Column<Person, Button> editButtonColumn; private Column<Person, Button> editButtonColumn;
private Layout filters;
public PersonGrid(GroupDao groupDao, PersonDao personDao) { public PersonGrid(GroupDao groupDao, PersonDao personDao) {
@ -66,7 +67,7 @@ public class PersonGrid extends VerticalLayout {
checkIncluded = new CheckBox("Nur gemeldete"); checkIncluded = new CheckBox("Nur gemeldete");
comboGroups = new ComboBox<>("Gruppenfilter"); comboGroups = new ComboBox<>("Gruppenfilter");
Layout filters = setupFilterComponents(); filters = setupFilterComponents();
allGroups = groupDao.listAll(); allGroups = groupDao.listAll();
comboGroups.setItems(allGroups); comboGroups.setItems(allGroups);
@ -78,16 +79,8 @@ public class PersonGrid extends VerticalLayout {
setupPersonGrid(personDao); setupPersonGrid(personDao);
Button close = new Button("Schließen", ev -> {
PersonGrid.this.setVisible(false);
if (closedFunction != null) {
closedFunction.closed();
}
});
close.setId("person.close");
setMargin(false); setMargin(false);
addComponents(filters, grid, close); addComponents(filters, grid);
} }
public void setupPersonGrid(PersonDao personDao) { public void setupPersonGrid(PersonDao personDao) {
@ -98,17 +91,23 @@ public class PersonGrid extends VerticalLayout {
grid.setDataProvider(dataProvider); grid.setDataProvider(dataProvider);
grid.setId("person.grid"); grid.setId("person.grid");
setSelectionMode(SelectionMode.MULTI);
grid.setSizeFull();
grid.addColumn(Person::getPrename).setCaption("Vorname"); grid.addColumn(Person::getPrename).setCaption("Vorname");
grid.addColumn(Person::getSurname).setCaption("Nachname"); grid.addColumn(Person::getSurname).setCaption("Nachname");
grid.addColumn(Person::getBirth, b -> b != null ? birthFormat.format(b) : "").setCaption("Geburtstag"); grid.addColumn(Person::getBirth, b -> b != null ? birthFormat.format(b) : "").setCaption("Geburtstag");
startpassColumn = grid.addColumn(Person::getStartpass).setCaption("Startpass Nr."); startpassColumn = grid.addColumn(Person::getStartpass).setCaption("Startpass Nr.");
editButtonColumn = grid.addComponentColumn(this::buildPersonEditButton); editButtonColumn = grid.addComponentColumn(this::buildPersonEditButton);
grid.setSelectionMode(SelectionMode.MULTI);
startpassColumn.setHidden(false); startpassColumn.setHidden(false);
editButtonColumn.setHidden(true); editButtonColumn.setHidden(true);
} }
public GridSelectionModel<Person> setSelectionMode(SelectionMode selectionMode) {
return grid.setSelectionMode(selectionMode);
}
private Layout setupFilterComponents() { private Layout setupFilterComponents() {
checkIncluded.setId("person.filter.checked"); checkIncluded.setId("person.filter.checked");
checkIncluded.addValueChangeListener(ev -> onSelectedOnly(ev)); checkIncluded.addValueChangeListener(ev -> onSelectedOnly(ev));
@ -131,21 +130,26 @@ public class PersonGrid extends VerticalLayout {
return button; return button;
} }
public void hideFilter() {
filters.setVisible(false);
}
private void showPersonDetails(Person p) { private void showPersonDetails(Person p) {
if (onPersonEdit != null) { if (onPersonEdit != null) {
onPersonEdit.accept(p); onPersonEdit.accept(p);
} }
} }
public void onClosedFunction(ClosedFunction closedFunction) {
this.closedFunction = closedFunction;
}
private void onSelectedOnly(ValueChangeEvent<Boolean> ev) { private void onSelectedOnly(ValueChangeEvent<Boolean> ev) {
this.selectedOnlyFilter = ev.getValue(); this.selectedOnlyFilter = ev.getValue();
updateFilter(); updateFilter();
} }
public void setSelectedOnly() {
this.selectedOnlyFilter = true;
updateFilter();
}
private void updateFilter() { private void updateFilter() {
if (selectedOnlyFilter != null && selectedOnlyFilter.equals(Boolean.TRUE)) { if (selectedOnlyFilter != null && selectedOnlyFilter.equals(Boolean.TRUE)) {
filter.setSelectedPersons(grid.getSelectedItems()); filter.setSelectedPersons(grid.getSelectedItems());
@ -154,7 +158,6 @@ public class PersonGrid extends VerticalLayout {
} }
filter.setSelectedGroups(groupMemberFilter); filter.setSelectedGroups(groupMemberFilter);
dataProvider.refreshAll(); dataProvider.refreshAll();
} }
@ -198,10 +201,6 @@ public class PersonGrid extends VerticalLayout {
updateFilter(); updateFilter();
} }
public interface ClosedFunction {
void closed();
}
public void onPersonEdit(Consumer<Person> function) { public void onPersonEdit(Consumer<Person> function) {
this.onPersonEdit = function; this.onPersonEdit = function;
startpassColumn.setHidden(true); startpassColumn.setHidden(true);
@ -216,6 +215,7 @@ public class PersonGrid extends VerticalLayout {
selectItems(new Person[0]); selectItems(new Person[0]);
} }
this.currentEvent = ev; this.currentEvent = ev;
// updateFilter();
} }
public void updateSelection(ClubEvent ev) { public void updateSelection(ClubEvent ev) {

Loading…
Cancel
Save