package org.vaadin.mideaas.app; import java.util.HashMap; import java.util.Map.Entry; import org.vaadin.mideaas.model.UserSettings; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Button.ClickListener; import com.vaadin.ui.CheckBox; import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; @SuppressWarnings("serial") public class WidgetsetSettingsWindow extends Window { private final UserSettings settings; // https://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/useragent/UserAgent.gwt.xml private static final String[] AGENTS = new String[] { "ie6", "ie8", "ie9", "gecko1_8", "safari", "opera", }; public WidgetsetSettingsWindow(UserSettings settings) { this.settings = settings; } @Override public void attach() { super.attach(); VerticalLayout ve = new VerticalLayout(); setContent(ve); ve.addComponent(new Label( "Select user agents for which to build the GWT widgetset:")); final HashMap<String, CheckBox> boxes = new HashMap<String, CheckBox>(); for (String a : AGENTS) { CheckBox cb = new CheckBox(a); ve.addComponent(cb); boxes.put(a, cb); } if (settings.userAgent != null) { String[] sel = settings.userAgent.split(","); for (String a : sel) { boxes.get(a.trim()).setValue(true); } } Button b = new Button("Done"); b.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { String s = null; for (Entry<String, CheckBox> e : boxes.entrySet()) { if (e.getValue().getValue()) { if (s == null) { s = e.getKey(); } else { s += "," + e.getKey(); } } } settings.userAgent = s; close(); } }); ve.addComponent(b); center(); setWidth("60%"); setHeight("60%"); } }