package org.vaadin.viritin.v7.locale;
import org.vaadin.viritin.v7.fields.MValueChangeListener;
import org.vaadin.viritin.v7.fields.MValueChangeEvent;
import java.util.*;
import org.vaadin.addonhelpers.AbstractTest;
import org.vaadin.viritin.v7.fields.LocaleSelect;
import org.vaadin.viritin.layouts.MVerticalLayout;
import org.vaadin.viritin.util.VaadinLocale;
import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.v7.ui.ComboBox;
import com.vaadin.ui.Component;
import com.vaadin.v7.ui.DateField;
/**
* Demo for the {@link VaadinLocale} class.
*
* @author Daniel Nordhoff-Vergien
*
*/
@SuppressWarnings("serial")
public class V7VaadinLocaleDemo extends AbstractTest {
private final VaadinLocale vaadinLocale = new VaadinLocale(Locale.ENGLISH,
Locale.GERMAN, new Locale("de", "DE"), new Locale("da"), new Locale("fi"));
private final LocaleSelect localeSelect = (LocaleSelect) new LocaleSelect()
.withSelectType(ComboBox.class);
private final DateField dateField = new DateField();
@Override
protected void init(VaadinRequest vaadinRequest) {
super.init(vaadinRequest);
vaadinLocale.setVaadinRequest(vaadinRequest);
localeSelect.setOptions(vaadinLocale.getSupportedLocales());
localeSelect.setValue(getLocale());
}
@Override
public Component getTestComponent() {
dateField.setValue(new Date());
localeSelect.setId("language-selection");
localeSelect
.addMValueChangeListener(new MValueChangeListener<Locale>() {
@Override
public void valueChange(MValueChangeEvent<Locale> event) {
vaadinLocale.setLocale(event.getValue());
}
});
Button addNewComponent = new Button("Create new component");
final MVerticalLayout layout = new MVerticalLayout(localeSelect,
dateField, new VaadinLocaleDemoComponent(), addNewComponent);
addNewComponent.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
layout.add(new VaadinLocaleDemoComponent());
}
});
return layout;
}
@Override
public void setLocale(Locale locale) {
super.setLocale(locale);
updateStrings();
}
private void updateStrings() {
ResourceBundle resourceBundle = ResourceBundle.getBundle(
"VaadinLocaleDemo", getLocale());
this.localeSelect.setCaption(resourceBundle.getString("language"));
dateField.setCaption(resourceBundle.getString("date"));
}
@Override
public String getDescription() {
return "V7 Demo for locale handling.";
}
}