aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/main/java/com/vaadin/tests/components/gridlayout/GridLayoutAlignments.java
blob: 950d39e5e2e6fd1ca57043b07496db949dc81dae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.vaadin.tests.components.gridlayout;

import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.Component;
import com.vaadin.ui.GridLayout;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.NativeButton;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;

public class GridLayoutAlignments extends UI {

    @Override
    protected void init(VaadinRequest request) {
        HorizontalLayout layout = new HorizontalLayout();
        layout.setSizeFull();
        layout.setMargin(true);
        layout.setSpacing(true);

        final GridLayout g = new GridLayout();
        g.setStyleName("border");
        getPage().getStyles().add(".border {border: 1px solid black;}");

        g.setColumns(1);
        g.setRows(1);

        NativeButton target = new NativeButton();
        target.setWidth("30px");
        target.setHeight("30px");
        g.addComponent(target);

        g.setWidth("402px"); // 400 + border
        g.setHeight("402px");

        g.setComponentAlignment(g.getComponent(0, 0), Alignment.MIDDLE_CENTER);

        layout.addComponent(g);

        VerticalLayout buttonLayout = new VerticalLayout();
        buttonLayout.addComponent(createButton(g, Alignment.TOP_LEFT));
        buttonLayout.addComponent(createButton(g, Alignment.MIDDLE_LEFT));
        buttonLayout.addComponent(createButton(g, Alignment.BOTTOM_LEFT));
        buttonLayout.addComponent(createButton(g, Alignment.TOP_CENTER));
        buttonLayout.addComponent(createButton(g, Alignment.MIDDLE_CENTER));
        buttonLayout.addComponent(createButton(g, Alignment.BOTTOM_CENTER));
        buttonLayout.addComponent(createButton(g, Alignment.TOP_RIGHT));
        buttonLayout.addComponent(createButton(g, Alignment.MIDDLE_RIGHT));
        buttonLayout.addComponent(createButton(g, Alignment.BOTTOM_RIGHT));

        layout.addComponent(buttonLayout);
        layout.setExpandRatio(buttonLayout, 1);
        setContent(layout);
    }

    private Component createButton(final GridLayout g,
            final Alignment topLeft) {
        return new Button(
                "Align " + topLeft.getVerticalAlignment() + ", "
                        + topLeft.getHorizontalAlignment(),
                event -> g.setComponentAlignment(g.getComponent(0, 0),
                        topLeft));
    }
}