Example usage for com.vaadin.v7.ui OptionGroup OptionGroup

List of usage examples for com.vaadin.v7.ui OptionGroup OptionGroup

Introduction

In this page you can find the example usage for com.vaadin.v7.ui OptionGroup OptionGroup.

Prototype

public OptionGroup(String caption, Container dataSource) 

Source Link

Usage

From source file:de.symeda.sormas.ui.statistics.StatisticsVisualizationComponent.java

License:Open Source License

public StatisticsVisualizationComponent() {
    setSpacing(true);/*from   w w w  .  ja  v a  2s. com*/
    setWidth(100, Unit.PERCENTAGE);

    visualizationSelect = new OptionGroup(I18nProperties.getCaption(Captions.statisticsVisualizationType),
            Arrays.asList(StatisticsVisualizationType.values()));
    visualizationSelect.addValueChangeListener(new ValueChangeListener() {
        @Override
        public void valueChange(ValueChangeEvent event) {
            visualizationType = (StatisticsVisualizationType) event.getProperty().getValue();
            updateComponentVisibility();
            if (rowsElement != null) {
                rowsElement.setType(rowsElement.getType(), visualizationType);
            }
            if (columnsElement != null) {
                columnsElement.setType(columnsElement.getType(), visualizationType);
            }
        }
    });
    CssStyles.style(visualizationSelect, CssStyles.VSPACE_NONE, ValoTheme.OPTIONGROUP_HORIZONTAL,
            CssStyles.SOFT_REQUIRED);
    visualizationSelect.setNullSelectionAllowed(false);
    addComponent(visualizationSelect);
    setExpandRatio(visualizationSelect, 0);

    visualizationMapSelect = new OptionGroup(I18nProperties.getCaption(Captions.statisticsMapType),
            Arrays.asList(StatisticsVisualizationMapType.values()));
    visualizationMapSelect.addValueChangeListener(new ValueChangeListener() {
        @Override
        public void valueChange(ValueChangeEvent event) {
            visualizationMapType = (StatisticsVisualizationMapType) event.getProperty().getValue();
        }
    });
    CssStyles.style(visualizationMapSelect, CssStyles.VSPACE_NONE, ValoTheme.OPTIONGROUP_HORIZONTAL,
            CssStyles.SOFT_REQUIRED);
    visualizationMapSelect.setNullSelectionAllowed(false);
    addComponent(visualizationMapSelect);
    setExpandRatio(visualizationSelect, 0);

    visualizationChartSelect = new OptionGroup(I18nProperties.getCaption(Captions.statisticsChartType),
            Arrays.asList(StatisticsVisualizationChartType.values()));
    visualizationChartSelect.addValueChangeListener(new ValueChangeListener() {
        @Override
        public void valueChange(ValueChangeEvent event) {
            visualizationChartType = (StatisticsVisualizationChartType) event.getProperty().getValue();
            updateComponentVisibility();
        }
    });
    CssStyles.style(visualizationChartSelect, CssStyles.VSPACE_NONE, ValoTheme.OPTIONGROUP_HORIZONTAL,
            CssStyles.SOFT_REQUIRED);
    visualizationChartSelect.setNullSelectionAllowed(false);
    addComponent(visualizationChartSelect);
    setExpandRatio(visualizationChartSelect, 0);

    rowsElement = new StatisticsVisualizationElement(StatisticsVisualizationElementType.ROWS,
            visualizationType);
    addComponent(rowsElement);
    setExpandRatio(rowsElement, 0);

    switchRowsAndColumnsButton = new Button();
    CssStyles.style(switchRowsAndColumnsButton, CssStyles.FORCE_CAPTION);
    switchRowsAndColumnsButton.setIcon(VaadinIcons.EXCHANGE);
    switchRowsAndColumnsButton.setDescription(I18nProperties.getCaption(Captions.statisticsExchange));
    switchRowsAndColumnsButton.addClickListener(new ClickListener() {
        @Override
        public void buttonClick(ClickEvent event) {
            StatisticsVisualizationElement newRowsElement = columnsElement;
            newRowsElement.setType(StatisticsVisualizationElementType.ROWS, visualizationType);
            StatisticsVisualizationElement newColumnsElement = rowsElement;
            newColumnsElement.setType(StatisticsVisualizationElementType.COLUMNS, visualizationType);
            removeComponent(rowsElement);
            removeComponent(columnsElement);
            addComponent(newRowsElement, getComponentIndex(switchRowsAndColumnsButton));
            addComponent(newColumnsElement, getComponentIndex(switchRowsAndColumnsButton) + 1);
            replaceComponent(rowsElement, newRowsElement);
            replaceComponent(columnsElement, newColumnsElement);
            rowsElement = newRowsElement;
            columnsElement = newColumnsElement;
        }
    });
    addComponent(switchRowsAndColumnsButton);
    setExpandRatio(switchRowsAndColumnsButton, 0);

    columnsElement = new StatisticsVisualizationElement(StatisticsVisualizationElementType.COLUMNS,
            visualizationType);
    addComponent(columnsElement);
    setExpandRatio(columnsElement, 0);

    Label spacer = new Label();
    addComponent(spacer);
    setExpandRatio(spacer, 1);

    visualizationSelect.setValue(StatisticsVisualizationType.TABLE);
    visualizationChartSelect.setValue(StatisticsVisualizationChartType.STACKED_COLUMN);
    visualizationMapSelect.setValue(StatisticsVisualizationMapType.REGIONS);
}