Changing theme on the fly
Starting from Vaadin 7.3, you can change themes in the application
without reloading the page. To do this, simply use the
UI.setTheme(String)
method.
public class ThemeChangeUI extends UI {
private String[] themes = { "valo", "reindeer", "runo", "chameleon" };
@Override
protected void init(VaadinRequest request) {
ComboBox themePicker = new ComboBox("Theme", Arrays.asList(themes));
themePicker.setValue(getTheme());
themePicker.addValueChangeListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
String theme = (String) event.getProperty().getValue();
setTheme(theme);
}
});
setContent(themePicker);
}
}
In this way, you can let your users choose the look of your application. The functionality also makes it easier to create applications that are branded for different customers.