package org.vaadin.mideaas.app; import org.vaadin.mideaas.model.ExperimentUser; import com.vaadin.ui.Alignment; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Notification; import com.vaadin.ui.Panel; import com.vaadin.ui.TextField; // TODO: this is not used in all cases even if enabled in config @SuppressWarnings("serial") public class ExperimentLoginPanel extends Panel { private final MideaasUI ui; public ExperimentLoginPanel(MideaasUI ui) { super("Login"); this.ui = ui; } @Override public void attach() { super.attach(); createLayout(); setSizeFull(); } private void createLayout() { HorizontalLayout ho = new HorizontalLayout(); final TextField nickField = new TextField("Nick (shown to others)"); final TextField codeField = new TextField("Anonymizer code (not shown)"); Button button = new Button("Login"); button.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { String nick = nickField.getValue(); String code = codeField.getValue(); if (nick.isEmpty() || code.isEmpty()) { Notification.show("Please fill both fields."); } else { ui.setUser(ExperimentUser.newUser(nick, code)); ui.navigateTo("lobby"); } } }); ho.addComponent(nickField); ho.addComponent(codeField); ho.addComponent(button); ho.setSpacing(true); ho.setComponentAlignment(button, Alignment.BOTTOM_CENTER); setContent(ho); ho.setMargin(true); nickField.focus(); // ? } }