diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDaoImpl.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDaoImpl.java index 5e59d4b..e03920c 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDaoImpl.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/dao/ClubEventDaoImpl.java @@ -37,6 +37,7 @@ public class ClubEventDaoImpl extends AbstractDaoImpl implements Club } @Override + @Transactional public void addPersons(ClubEvent event, Collection updated) { List added = new ArrayList<>(updated); List removed = new ArrayList<>(); diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java index 6a1f1ea..08c93d0 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainUi.java @@ -7,8 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import com.vaadin.annotations.PreserveOnRefresh; import com.vaadin.annotations.Push; import com.vaadin.annotations.Theme; -import com.vaadin.navigator.Navigator; +import com.vaadin.server.Page; import com.vaadin.server.VaadinRequest; +import com.vaadin.server.WebBrowser; import com.vaadin.shared.communication.PushMode; import com.vaadin.spring.annotation.SpringUI; import com.vaadin.ui.UI; @@ -19,7 +20,8 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PflichtenDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityVerifier; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.EventDetails; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation.ClubhelperNavigation; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation.ClubhelperViews; @Theme("vaadin-clubhelpertheme") @SpringUI @@ -48,22 +50,24 @@ public class MainUi extends UI { @Autowired CalendarAdapter calendarAdapter; + @Autowired + ClubhelperNavigation clubhelperNavigation; + @Override protected void init(VaadinRequest request) { - LOGGER.debug("Starting Vaadin UI with {}", getClass().getName()); + Page page = getPage(); + int browserWidth = page.getBrowserWindowWidth(); + WebBrowser webBrowser = page.getWebBrowser(); - getPage().setTitle("Vereinshelfer"); + LOGGER.debug("Starting Vaadin UI with {}, windowWidth={}, touchDevice={}, Android={}, IPad={}, IPhone={}", + getClass().getName(), browserWidth, webBrowser.isTouchDevice(), webBrowser.isAndroid(), + webBrowser.isIPad(), webBrowser.isIPhone()); - Navigator navigator = new Navigator(this, this); + page.setTitle("Vereinshelfer"); - // Create and register the views - navigator.addView(MainView.VIEW_NAME, new MainView(personDao, groupDao, eventBusiness, securityGroupVerifier)); - navigator.addView(LoginUI.VIEW_NAME, new LoginUI(personDao, securityGroupVerifier)); - navigator.addView(PersonEditView.VIEW_NAME, new PersonEditView(groupDao, personDao)); - navigator.addView(EventDetails.VIEW_NAME, - new EventDetails(personDao, groupDao, eventBusiness, pflichtenDao, calendarAdapter)); - navigator.navigateTo(MainView.VIEW_NAME); + clubhelperNavigation.configure(this); + clubhelperNavigation.navigateTo(ClubhelperViews.MainView.name()); } } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/NamedView.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/NamedView.java deleted file mode 100644 index c2c6cba..0000000 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/NamedView.java +++ /dev/null @@ -1,12 +0,0 @@ -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(); -} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/EventDetails.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/EventDetails.java index 8482d75..dddb32d 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/EventDetails.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/EventDetails.java @@ -1,6 +1,6 @@ package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components; -import com.vaadin.navigator.Navigator; +import com.vaadin.navigator.View; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.shared.ui.ContentMode; import com.vaadin.ui.Button; @@ -18,11 +18,10 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.GroupDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PflichtenDao; import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.NamedView; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation.ClubhelperNavigation.ClubNavigator; -public class EventDetails extends GridLayout implements NamedView { +public class EventDetails extends GridLayout implements View { - public static final String VIEW_NAME = "EventDetails"; private static final long serialVersionUID = 8290150079638390995L; private final EventBusiness eventBusiness; @@ -52,12 +51,12 @@ public class EventDetails extends GridLayout implements NamedView { currentEvent = eventBusiness.getCurrent(); if (eventView == null) { - Navigator navigator = event.getNavigator(); + ClubNavigator navigator = (ClubNavigator) event.getNavigator(); eventView = new SingleEventView(true); eventView.setCalendarAdapter(calendarAdapter); eventView.setEventBusiness(eventBusiness); - eventView.setDeletedHandler(() -> navigator.navigateTo(((NamedView) event.getOldView()).getViewName())); + eventView.setDeletedHandler(() -> navigator.back()); eventView.addDataUpdatedListener(() -> eventBusiness.storeEventType()); @@ -69,7 +68,7 @@ public class EventDetails extends GridLayout implements NamedView { personGrid.setSelectionMode(SelectionMode.NONE); Button back = new Button("Zurück"); - back.addClickListener(ev -> navigator.navigateTo(((NamedView) event.getOldView()).getViewName())); + back.addClickListener(ev -> navigator.back()); Button createMeldung = new Button("Meldung"); createMeldung.addClickListener(ev -> show(eventBusiness.createMeldung())); @@ -100,9 +99,4 @@ public class EventDetails extends GridLayout implements NamedView { } - @Override - public String getViewName() { - return VIEW_NAME; - } - } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperNavigation.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperNavigation.java new file mode 100644 index 0000000..7cdc9e9 --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperNavigation.java @@ -0,0 +1,114 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation; + +import java.util.Stack; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.vaadin.navigator.Navigator; +import com.vaadin.ui.Notification; +import com.vaadin.ui.UI; + +import de.kreth.googleconnectors.calendar.CalendarAdapter; +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.dao.PflichtenDao; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityVerifier; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.EventDetails; + +@Component +public class ClubhelperNavigation { + + private static final Logger LOGGER = LoggerFactory.getLogger(ClubhelperNavigation.class); + + @Autowired + PersonDao personDao; + + @Autowired + GroupDao groupDao; + + @Autowired + EventBusiness eventBusiness; + + @Autowired + PflichtenDao pflichtenDao; + + @Autowired + SecurityVerifier securityGroupVerifier; + + @Autowired + CalendarAdapter calendarAdapter; + + private ClubNavigator navi; + + public void configure(UI mainUI) { + + navi = new ClubNavigator().init(mainUI); + + // Create and register the views + MainView mainView = new MainView(personDao, groupDao, eventBusiness, securityGroupVerifier); + navi.addView("", mainView); + navi.addView(ClubhelperViews.MainView.name(), mainView); + navi.addView(ClubhelperViews.LoginUI.name(), new LoginUI(personDao, securityGroupVerifier)); + navi.addView(ClubhelperViews.PersonEditView.name(), new PersonEditView(groupDao, personDao)); + navi.addView(ClubhelperViews.EventDetails.name(), + new EventDetails(personDao, groupDao, eventBusiness, pflichtenDao, calendarAdapter)); + + mainUI.getPage().addBrowserWindowResizeListener(ev -> { + int width = ev.getWidth(); + int height = ev.getHeight(); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Changed Window Size: [w={},h={}]", width, height); + Notification.show("Size Changed", "Changed Window Size: [w=" + width + ",h=" + height + "]", + Notification.Type.TRAY_NOTIFICATION); + } + }); + } + + public void navigateTo(String navigationState) { + navi.navigateTo(navigationState); + } + + public class ClubNavigator extends Navigator { + + private static final long serialVersionUID = -6503600786209888296L; + private final Stack navigationViewNames = new Stack<>(); + + ClubNavigator init(UI ui) { + init(ui, null, new SingleComponentContainerViewDisplay(ui)); + return this; + } + + @Override + public void navigateTo(String navigationState) { + ClubhelperViews byState = ClubhelperViews.byState(navigationState); + if (navigationViewNames.contains(byState)) { + int index = navigationViewNames.indexOf(byState); + LOGGER.warn("Navigating to previously visited View. Removing some history"); + while (navigationViewNames.size() > index) { + navigationViewNames.remove(index); + } + } + + int width = navi.getUI().getPage().getBrowserWindowWidth(); + boolean loggedIn = securityGroupVerifier.isLoggedin(); + if (!loggedIn && width < 1000) { + navigationViewNames.clear(); + navigationViewNames.add(ClubhelperViews.MainView); + super.navigateTo(ClubhelperViews.LoginUI.name()); + } else { + navigationViewNames.add(byState); + super.navigateTo(navigationState); + } + + } + + public void back() { + navigationViewNames.pop(); + navigateTo(navigationViewNames.pop().name()); + } + } +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperViews.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperViews.java new file mode 100644 index 0000000..3d8eeca --- /dev/null +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/ClubhelperViews.java @@ -0,0 +1,14 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation; + +public enum ClubhelperViews { + MainView, EventDetails, PersonEditView, LoginUI; + + public static ClubhelperViews byState(String state) { + for (ClubhelperViews v : values()) { + if (state.startsWith(v.name())) { + return v; + } + } + throw new IllegalArgumentException("View not found for state=" + state); + } +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/HeadView.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/HeadView.java similarity index 92% rename from src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/HeadView.java rename to src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/HeadView.java index 8bed1da..e776cea 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/HeadView.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/HeadView.java @@ -1,4 +1,4 @@ -package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui; +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation; import java.io.IOException; import java.io.PipedInputStream; @@ -19,7 +19,6 @@ import org.slf4j.LoggerFactory; import com.vaadin.contextmenu.ContextMenu; import com.vaadin.icons.VaadinIcons; -import com.vaadin.navigator.Navigator; import com.vaadin.server.StreamResource; import com.vaadin.ui.AbstractComponent; import com.vaadin.ui.Alignment; @@ -38,6 +37,7 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.jasper.CalendarCreator; import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityGroups; import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityVerifier; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent.ClubEventProvider; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation.ClubhelperNavigation.ClubNavigator; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperPrint; @@ -60,11 +60,11 @@ public class HeadView extends HorizontalLayout { private Label personLabel; - private final Navigator navigator; + private final ClubNavigator navigator; private final SecurityVerifier securityVerifier; - public HeadView(Navigator navigator, Supplier startTime, Supplier endTime, + public HeadView(ClubNavigator navigator, Supplier startTime, Supplier endTime, ClubEventProvider dataProvider, SecurityVerifier securityVerifier) { this.navigator = navigator; @@ -122,14 +122,15 @@ public class HeadView extends HorizontalLayout { contextMenu.addItem("Export Jahr", ev1 -> calendarExport(ev1)); if (securityVerifier.getLoggedinPerson() != null) { if (securityVerifier.isPermitted(SecurityGroups.ADMIN, SecurityGroups.UEBUNGSLEITER)) { - contextMenu.addItem("Personen verwalten", ev1 -> navigator.navigateTo(PersonEditView.VIEW_NAME)); + contextMenu.addItem("Personen verwalten", + ev1 -> navigator.navigateTo(ClubhelperViews.PersonEditView.name())); } contextMenu.addItem("Abmelden", ev1 -> { securityVerifier.setLoggedinPerson(null); - navigator.navigateTo(MainView.VIEW_NAME); + navigator.navigateTo(ClubhelperViews.MainView.name()); }); } else { - contextMenu.addItem("Anmelden", ev1 -> navigator.navigateTo(LoginUI.VIEW_NAME)); + contextMenu.addItem("Anmelden", ev1 -> navigator.navigateTo(ClubhelperViews.LoginUI.name())); } contextMenu.open(50, 50); } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/LoginUI.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/LoginUI.java similarity index 82% rename from src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/LoginUI.java rename to src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/LoginUI.java index 4c25caf..e446220 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/LoginUI.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/LoginUI.java @@ -1,65 +1,61 @@ -package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.vaadin.navigator.Navigator; -import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; -import com.vaadin.ui.Alignment; -import com.vaadin.ui.LoginForm; -import com.vaadin.ui.Notification; -import com.vaadin.ui.VerticalLayout; - -import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityVerifier; - -public class LoginUI extends VerticalLayout implements NamedView { - - public static final String VIEW_NAME = "LoginUI"; - private static final long serialVersionUID = 4339018452507960084L; - private final Logger logger = LoggerFactory.getLogger(getClass()); - - private Navigator navigator; - private String parameters; - - public LoginUI(PersonDao personDao, SecurityVerifier securityGroupVerifier) { - - LoginForm lf = new LoginForm(); - lf.addLoginListener(e -> { - - String username = e.getLoginParameter("username"); - String password = e.getLoginParameter("password"); - - try { - Person loggedin = personDao.findLoginUser(username, password); - securityGroupVerifier.setLoggedinPerson(loggedin); - navigator.navigateTo(MainView.VIEW_NAME + '/' + parameters); - } catch (final Exception ex) { - ex.printStackTrace(); - logger.error("Error on login for User={}", e.getLoginParameter("username"), ex); - String message = "Incorrect user or password for " + e.getLoginParameter("username") + "\n" - + ex.getMessage(); - Notification.show(message, Notification.Type.ERROR_MESSAGE); - } - }); - addComponent(lf); - setComponentAlignment(lf, Alignment.MIDDLE_CENTER); - setSizeFull(); - - } - - @Override - public void enter(ViewChangeEvent event) { - navigator = event.getNavigator(); - parameters = event.getParameters(); - if (parameters == null) { - parameters = ""; - } - } - - @Override - public String getViewName() { - return VIEW_NAME; - } -} +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.vaadin.navigator.Navigator; +import com.vaadin.navigator.View; +import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; +import com.vaadin.ui.Alignment; +import com.vaadin.ui.LoginForm; +import com.vaadin.ui.Notification; +import com.vaadin.ui.VerticalLayout; + +import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.PersonDao; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityVerifier; + +public class LoginUI extends VerticalLayout implements View { + + private static final long serialVersionUID = 4339018452507960084L; + private final Logger logger = LoggerFactory.getLogger(getClass()); + + private Navigator navigator; + private String parameters; + + public LoginUI(PersonDao personDao, SecurityVerifier securityGroupVerifier) { + + LoginForm lf = new LoginForm(); + lf.addLoginListener(e -> { + + String username = e.getLoginParameter("username"); + String password = e.getLoginParameter("password"); + + try { + Person loggedin = personDao.findLoginUser(username, password); + securityGroupVerifier.setLoggedinPerson(loggedin); + navigator.navigateTo(ClubhelperViews.MainView.name() + '/' + parameters); + } catch (final Exception ex) { + ex.printStackTrace(); + logger.error("Error on login for User={}", e.getLoginParameter("username"), ex); + String message = "Incorrect user or password for " + e.getLoginParameter("username") + "\n" + + ex.getMessage(); + Notification.show(message, Notification.Type.ERROR_MESSAGE); + } + }); + addComponent(lf); + setComponentAlignment(lf, Alignment.MIDDLE_CENTER); + setSizeFull(); + + } + + @Override + public void enter(ViewChangeEvent event) { + navigator = event.getNavigator(); + parameters = event.getParameters(); + if (parameters == null) { + parameters = ""; + } + } + +} diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainView.java similarity index 91% rename from src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java rename to src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainView.java index 4e4eec5..bde1859 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/MainView.java @@ -1,4 +1,4 @@ -package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui; +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation; import java.util.List; import java.util.Set; @@ -10,7 +10,7 @@ import org.slf4j.LoggerFactory; import org.vaadin.addon.calendar.ui.CalendarComponentEvents; import com.vaadin.event.selection.SelectionEvent; -import com.vaadin.navigator.Navigator; +import com.vaadin.navigator.View; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.ui.Button; import com.vaadin.ui.Grid.SelectionMode; @@ -26,13 +26,11 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityVerifier; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.CalendarComponent.ClubEventProvider; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.EventDetails; 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.navigation.ClubhelperNavigation.ClubNavigator; -public class MainView extends VerticalLayout implements NamedView { - - public static final String VIEW_NAME = ""; +public class MainView extends VerticalLayout implements View { private static final long serialVersionUID = 4831071242146146399L; private final Logger LOGGER = LoggerFactory.getLogger(getClass()); @@ -48,7 +46,7 @@ public class MainView extends VerticalLayout implements NamedView { private SingleEventView eventView; private HorizontalLayout eventButtonLayout; - private Navigator navigator; + private ClubNavigator navigator; private VerticalLayout eastLayout; @@ -87,7 +85,7 @@ public class MainView extends VerticalLayout implements NamedView { public void initUI(ViewChangeEvent event) { - navigator = event.getNavigator(); + navigator = (ClubNavigator) event.getNavigator(); eventView = new SingleEventView(false); eventView.setVisible(false); @@ -104,7 +102,7 @@ public class MainView extends VerticalLayout implements NamedView { close.setId("person.close"); Button eventDetails = new Button("Veranstaltung Details", ev -> { - navigator.navigateTo(EventDetails.VIEW_NAME); + navigator.navigateTo(ClubhelperViews.EventDetails.name()); }); eventDetails.setId("person.eventDetails"); @@ -178,7 +176,7 @@ public class MainView extends VerticalLayout implements NamedView { openPersonViewForEvent(ev); } else { eventBusiness.setSelected(ev); - navigator.navigateTo(LoginUI.VIEW_NAME + '/' + ev.getId()); + navigator.navigateTo(ClubhelperViews.LoginUI.name() + '/' + ev.getId()); } } @@ -202,9 +200,4 @@ public class MainView extends VerticalLayout implements NamedView { eventBusiness.setSelected(ev); } - @Override - public String getViewName() { - return VIEW_NAME; - } - } diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/PersonEditView.java similarity index 86% rename from src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java rename to src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/PersonEditView.java index e77fd4b..9fa0029 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/navigation/PersonEditView.java @@ -1,4 +1,4 @@ -package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui; +package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.navigation; import java.util.ArrayList; import java.util.HashSet; @@ -6,6 +6,7 @@ import java.util.Optional; import com.vaadin.event.selection.SelectionEvent; import com.vaadin.navigator.Navigator; +import com.vaadin.navigator.View; import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent; import com.vaadin.ui.Button; import com.vaadin.ui.HorizontalLayout; @@ -17,9 +18,8 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonEditDetails; import de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components.PersonGrid; -public class PersonEditView extends VerticalLayout implements NamedView { +public class PersonEditView extends VerticalLayout implements View { - public static final String VIEW_NAME = "PersonEditView"; private static final long serialVersionUID = 1770993670570422036L; private PersonGrid personGrid; @@ -51,7 +51,7 @@ public class PersonEditView extends VerticalLayout implements NamedView { addComponent(addPerson); Button backButton = new Button("Zurück"); - backButton.addClickListener(ev -> navigator.navigateTo(MainView.VIEW_NAME)); + backButton.addClickListener(ev -> navigator.navigateTo(ClubhelperViews.MainView.name())); addComponent(backButton); } @@ -72,13 +72,7 @@ public class PersonEditView extends VerticalLayout implements NamedView { @Override public void enter(ViewChangeEvent event) { - NamedView.super.enter(event); this.navigator = event.getNavigator(); } - @Override - public String getViewName() { - return VIEW_NAME; - } - }