Layout PersonEditView, started Contact editor

master
Markus Kreth 7 years ago
parent 35f49165a3
commit 2acce1fde8
  1. 8
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/LoginUI.java
  2. 7
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/MainView.java
  3. 2
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/PersonEditView.java
  4. 22
      src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/ui/components/PersonEditDetails.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);

@ -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());

@ -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");

@ -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<Contact> 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<Contact> contactBinder = contactLayout.getEditor().getBinder();
ContactTypeComponent comp = new ContactTypeComponent();
Binding<Contact, String> typeBinding = contactBinder.bind(comp, Contact::getType, Contact::setType);
Binding<Contact, String> 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;
}

Loading…
Cancel
Save