All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.mateu.mdd.vaadin.components.views.SizingComponent Maven / Gradle / Ivy

The newest version!
package io.mateu.mdd.vaadin.components.views;

import com.vaadin.ui.*;
import com.vaadin.ui.themes.ValoTheme;
import io.mateu.mdd.shared.CSS;

public class SizingComponent extends HorizontalLayout {
    private final Button b5;
    private final Button b10;
    private final Button b20;
    private final Button b40;
    private final Grid grid;

    public SizingComponent(Grid grid) {
        setDefaultComponentAlignment(Alignment.MIDDLE_LEFT);
        this.grid = grid;
        addComponent(new Label("Show rows:"));
        addComponent(b5 = new Button("5", e -> select(5)));
        b5.addStyleName(ValoTheme.BUTTON_QUIET);
        addComponent(b10 = new Button("10", e -> select(10)));
        b10.addStyleName(ValoTheme.BUTTON_QUIET);
        addComponent(b20 = new Button("20", e -> select(20)));
        b20.addStyleName(ValoTheme.BUTTON_QUIET);
        addComponent(b40 = new Button("40", e -> select(40)));
        b40.addStyleName(ValoTheme.BUTTON_QUIET);
        select(5);
    }

    private void select(int rows) {
        grid.setHeightByRows(rows);
        b5.removeStyleName(CSS.BOLDER);
        b10.removeStyleName(CSS.BOLDER);
        b20.removeStyleName(CSS.BOLDER);
        b40.removeStyleName(CSS.BOLDER);
        Button b = null;
        if (rows == 5) b = b5;
        if (rows == 10) b = b10;
        if (rows == 20) b = b20;
        if (rows == 40) b = b40;
        if (b != null) b.addStyleName(CSS.BOLDER);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy