diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/LoginUI.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/LoginUI.java index 2e18b24..c11e865 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/LoginUI.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/LoginUI.java @@ -1,5 +1,8 @@ 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; @@ -13,8 +16,9 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.security.SecurityVerifier; public class LoginUI extends VerticalLayout implements NamedView { - private static final long serialVersionUID = 4339018452507960084L; 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; @@ -32,6 +36,8 @@ public class LoginUI extends VerticalLayout implements NamedView { 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:" + ex.getMessage() + e.getLoginParameter("username") + ":" + e.getLoginParameter("password"); Notification.show(message, Notification.Type.ERROR_MESSAGE); diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java index 94bab65..65407f0 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java @@ -69,8 +69,11 @@ public class MainView extends VerticalLayout implements NamedView { } else { if (securityVerifier.isLoggedin()) { LOGGER.info("{} already initialized - opening Person View.", getClass().getName()); - openPersonViewForEvent(eventBusiness.getCurrent()); - calendar.setToday(eventBusiness.getCurrent().getStart()); + ClubEvent current = eventBusiness.getCurrent(); + openPersonViewForEvent(current); + if (current != null) { + calendar.setToday(current.getStart()); + } head.updateLoggedinPerson(); } else { LOGGER.info("{} already initialized - but not loggedin.", getClass().getName()); diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java index 0b9e8ef..405a541 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java @@ -41,6 +41,8 @@ public class PersonEditView extends VerticalLayout implements NamedView { HorizontalLayout layout = new HorizontalLayout(); layout.addComponents(personGrid, personDetails); + layout.setExpandRatio(personGrid, 1f); + layout.setExpandRatio(personDetails, 2f); layout.setSizeFull(); addComponent(layout); Button addPerson = new Button("Hinzufügen"); diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDetails.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDetails.java index f3a60d6..148c5df 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDetails.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDetails.java @@ -7,6 +7,7 @@ import java.util.function.Consumer; import org.vaadin.teemu.switchui.Switch; import com.vaadin.data.Binder; +import com.vaadin.data.Binder.Binding; import com.vaadin.data.BinderValidationStatus; import com.vaadin.data.ValidationResult; import com.vaadin.data.provider.DataProvider; @@ -123,6 +124,8 @@ public class PersonEditDetails extends HorizontalLayout { sheet.addTab(contactLayout, "Kontakte"); sheet.addTab(relationshipLayout, "Angehörige"); addComponents(layout, sheet); + setExpandRatio(layout, 1f); + setExpandRatio(sheet, 2f); } @@ -134,14 +137,21 @@ public class PersonEditDetails extends HorizontalLayout { private Component createContactLayout() { Grid contactLayout = new Grid<>(); contactSource = new ArrayList<>(); - contactLayout.addComponentColumn(contact -> { - ContactTypeComponent combo = new ContactTypeComponent(); - combo.setValue(contact.getType()); - return combo; - }).setCaption("Kontaktart"); - contactLayout.addColumn(Contact::getValue).setCaption("Wert"); + contactDataProvider = DataProvider.ofCollection(contactSource); contactLayout.setDataProvider(contactDataProvider); + + contactLayout.getEditor().setEnabled(true); + Binder contactBinder = contactLayout.getEditor().getBinder(); + + ContactTypeComponent comp = new ContactTypeComponent(); + Binding typeBinding = contactBinder.bind(comp, Contact::getType, Contact::setType); + Binding valueBinding = contactBinder.bind(new TextField(), Contact::getValue, + Contact::setValue); + + contactLayout.addColumn(Contact::getType).setCaption("Kontaktart").setEditorBinding(typeBinding); + contactLayout.addColumn(Contact::getValue).setCaption("Wert").setEditorBinding(valueBinding); + return contactLayout; }