package org.vaadin.viritin.it.locale;
import java.util.*;
import org.vaadin.addonhelpers.AbstractTest;
import org.vaadin.viritin.components.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.ui.Component;
import com.vaadin.ui.DateField;
import java.time.LocalDate;
/**
* Demo for the {@link VaadinLocale} class.
*
* @author Daniel Nordhoff-Vergien
*
*/
@SuppressWarnings("serial")
public class VaadinLocaleDemo 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();
private final DateField dateField = new DateField();
@Override
protected void init(VaadinRequest vaadinRequest) {
super.init(vaadinRequest);
vaadinLocale.setVaadinRequest(vaadinRequest);
localeSelect.setItems(vaadinLocale.getSupportedLocales());
localeSelect.setValue(getLocale());
}
@Override
public Component getTestComponent() {
dateField.setValue(LocalDate.now());
localeSelect.setId("language-selection");
localeSelect.addValueChangeListener(e
-> vaadinLocale.setLocale(e.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 "Demo for locale handling.";
}
}