package com.vaadin.tests.components.datefield; import java.sql.Date; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import com.vaadin.shared.ui.datefield.Resolution; import com.vaadin.tests.components.ComponentTestCase; import com.vaadin.ui.Component; import com.vaadin.ui.PopupDateField; @SuppressWarnings("serial") public class PopupDateFields extends ComponentTestCase { private static final Locale[] LOCALES = new Locale[] { Locale.US, Locale.TAIWAN, new Locale("fi", "FI") }; @Override protected Class getTestClass() { return PopupDateField.class; } @Override protected void initializeComponents() { for (Locale locale : LOCALES) { PopupDateField pd = createPopupDateField("Undefined width", "-1", locale); pd.setId("Locale-" + locale.toString() + "-undefined-wide"); addTestComponent(pd); pd = createPopupDateField("500px width", "500px", locale); pd.setId("Locale-" + locale.toString() + "-500px-wide"); addTestComponent(pd); pd = createPopupDateField("Initially empty", "", locale); pd.setValue(null); pd.setId("Locale-" + locale.toString() + "-initially-empty"); addTestComponent(pd); } } private PopupDateField createPopupDateField(String caption, String width, Locale locale) { PopupDateField pd = new PopupDateField(caption + "(" + locale.toString() + ")"); pd.setWidth(width); pd.setValue(new Date(12312312313L)); pd.setLocale(locale); pd.setResolution(Resolution.YEAR); return pd; } @Override protected String getDescription() { return "A generic test for PopupDateFields in different configurations"; } @Override protected List createActions() { List actions = super.createActions(); actions.add(createResolutionSelectAction()); actions.add(createInputPromptSelectAction()); return actions; } private Component createResolutionSelectAction() { LinkedHashMap options = new LinkedHashMap(); options.put("Year", Resolution.YEAR); options.put("Month", Resolution.MONTH); options.put("Day", Resolution.DAY); options.put("Hour", Resolution.HOUR); options.put("Min", Resolution.MINUTE); options.put("Sec", Resolution.SECOND); return createSelectAction("Resolution", options, "Year", new Command() { @Override public void execute(PopupDateField c, Resolution value, Object data) { c.setResolution(value); } }); } private Component createInputPromptSelectAction() { LinkedHashMap options = new LinkedHashMap(); options.put("", null); options.put("Please enter date", "Please enter date"); options.put("åäöÅÄÖ", "åäöÅÄÖ"); return createSelectAction("Input prompt", options, "", new Command() { @Override public void execute(PopupDateField c, String value, Object data) { c.setInputPrompt(value); } }); } }