123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- package com.vaadin.tests.components.orderedlayout;
-
- import java.util.ArrayList;
- import java.util.Arrays;
-
- import com.vaadin.annotations.PreserveOnRefresh;
- import com.vaadin.annotations.Theme;
- import com.vaadin.event.LayoutEvents.LayoutClickEvent;
- import com.vaadin.event.LayoutEvents.LayoutClickListener;
- import com.vaadin.server.ThemeResource;
- import com.vaadin.server.UserError;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.shared.ui.ContentMode;
- import com.vaadin.tests.components.AbstractReindeerTestUI;
- import com.vaadin.ui.AbstractComponent;
- import com.vaadin.ui.AbstractOrderedLayout;
- import com.vaadin.ui.Alignment;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.Button.ClickEvent;
- import com.vaadin.ui.CheckBox;
- import com.vaadin.ui.Component;
- import com.vaadin.ui.GridLayout;
- import com.vaadin.ui.HorizontalLayout;
- import com.vaadin.ui.Label;
- import com.vaadin.ui.VerticalLayout;
- import com.vaadin.v7.data.Property.ValueChangeEvent;
- import com.vaadin.v7.data.Property.ValueChangeListener;
- import com.vaadin.v7.ui.AbstractField;
- import com.vaadin.v7.ui.NativeSelect;
- import com.vaadin.v7.ui.TextField;
- import com.vaadin.v7.ui.themes.Reindeer;
-
- @Theme("tests-components")
- @PreserveOnRefresh
- public class BoxLayoutTest extends AbstractReindeerTestUI {
-
- protected AbstractOrderedLayout view;
-
- protected AbstractOrderedLayout l;
-
- protected AbstractComponent target;
-
- protected NativeSelect componentWidth;
- protected NativeSelect componentHeight;
- protected NativeSelect componentCaption;
- protected NativeSelect componentIcon;
- protected TextField componentDescription;
- protected CheckBox componentError;
- protected CheckBox componentRequired;
-
- protected NativeSelect align;
- protected CheckBox expand;
-
- @Override
- protected void setup(VaadinRequest request) {
-
- view = new VerticalLayout();
- view.setMargin(true);
- view.setSpacing(true);
-
- for (int i = 0; i < 20; i++) {
- view.addComponent(createHorizontalTest());
- }
-
- setContent(view);
- }
-
- private Component createHorizontalTest() {
- HorizontalLayout l = new HorizontalLayout();
- l.setWidth("100%");
- l.setSpacing(true);
-
- Label exp;
-
- // l.addComponent(new Embedded(null, new ThemeResource(
- // "../runo/icons/32/document.png")));
- l.addComponent(exp = new Label(
- "Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin quis tortor orci. Etiam at risus et justo dignissim congue. Donec."));
- // exp.setWidth("300px");
- l.addComponent(new Button("Edit"));
- l.addComponent(new Button("Delete"));
- l.setExpandRatio(exp, 1);
-
- for (int i = 0; i < l.getComponentCount(); i++) {
- l.setComponentAlignment(l.getComponent(i), Alignment.MIDDLE_LEFT);
- }
-
- return l;
- }
-
- protected AbstractOrderedLayout createControls(boolean horizontal) {
- VerticalLayout root = new VerticalLayout();
- root.setSpacing(true);
-
- // First row
- HorizontalLayout header = new HorizontalLayout();
- header.setSpacing(true);
- root.addComponent(header);
-
- Label title = new Label("BoxLayout Test");
- title.addStyleName(Reindeer.LABEL_H1);
- header.addComponent(title);
-
- final CheckBox vertical = new CheckBox("Vertical", !horizontal);
- vertical.addValueChangeListener(event -> {
- view.removeAllComponents();
-
- view.addComponent(
- createControls(!vertical.getValue().booleanValue()));
- view.addComponent(
- createTestLayout(!vertical.getValue().booleanValue()));
-
- view.setExpandRatio(view.getComponent(1), 1);
- });
- header.addComponent(vertical);
-
- Button addComponent = new Button("Add Component",
- new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- GridLayout grid = new GridLayout(2, 2);
- Button grow = new Button("Grow Me",
- new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- if (event.getButton()
- .getWidth() == -1) {
- event.getButton().setHeight("50px");
- event.getButton().setWidth("200px");
- } else {
- event.getButton()
- .setSizeUndefined();
- }
- }
- });
- grid.addComponent(new Label("Grid cell 1"));
- grid.addComponent(new Label("Grid cell 2"));
- grid.addComponent(grow);
- grid.addComponent(new Label("Grid cell 4"));
- l.addComponent(grid);
- // l.addComponent(new TextField("Some field"));
- }
- });
- header.addComponent(addComponent);
-
- Button removeComponent = new Button("Remove Component",
- new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- Component last = l
- .getComponent(l.getComponentCount() - 1);
- l.removeComponent(last);
- }
- });
- header.addComponent(removeComponent);
-
- // Second row
- HorizontalLayout controls = new HorizontalLayout();
- controls.setSpacing(true);
- root.addComponent(controls);
-
- // Layout controls
- HorizontalLayout layout = new HorizontalLayout();
- layout.addStyleName("fieldset");
- layout.setSpacing(true);
- controls.addComponent(layout);
- layout.addComponent(new Label("Layout"));
-
- ArrayList<String> sizes = new ArrayList<>();
- sizes.addAll(Arrays.asList("100px", "30em", "100%"));
-
- final NativeSelect width = new NativeSelect(null, sizes);
- width.setImmediate(true);
- width.addListener(new ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- if (width.getValue() != null) {
- l.setWidth(width.getValue().toString());
- } else {
- l.setWidth(null);
- }
- }
- });
- layout.addComponent(width);
- layout.addComponent(new Label("×", ContentMode.HTML));
- final NativeSelect height = new NativeSelect(null, sizes);
- height.setImmediate(true);
- height.addListener(new ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- if (height.getValue() != null) {
- l.setHeight(height.getValue().toString());
- } else {
- l.setHeight(null);
- }
- }
- });
- layout.addComponent(height);
-
- final CheckBox margin = new CheckBox("Margin", false);
- margin.addValueChangeListener(event -> l.setMargin(event.getValue()));
- layout.addComponent(margin);
- layout.addComponent(margin);
-
- final CheckBox spacing = new CheckBox("Spacing", false);
- spacing.addValueChangeListener(event -> l.setSpacing(event.getValue()));
- layout.addComponent(spacing);
-
- // Cell controls
- HorizontalLayout cell = new HorizontalLayout();
- cell.addStyleName("fieldset");
- cell.setSpacing(true);
- controls.addComponent(cell);
- cell.addComponent(new Label("Cell"));
-
- ArrayList<Alignment> alignments = new ArrayList<>();
- alignments.addAll(Arrays.asList(Alignment.TOP_LEFT,
- Alignment.MIDDLE_LEFT, Alignment.BOTTOM_LEFT,
- Alignment.TOP_CENTER, Alignment.MIDDLE_CENTER,
- Alignment.BOTTOM_CENTER, Alignment.TOP_RIGHT,
- Alignment.MIDDLE_RIGHT, Alignment.BOTTOM_RIGHT));
-
- align = new NativeSelect(null, alignments);
- for (Alignment a : alignments) {
- align.setItemCaption(a, a.getVerticalAlignment() + "-"
- + a.getHorizontalAlignment());
- }
- align.setImmediate(true);
- align.setEnabled(false);
- align.setNullSelectionAllowed(false);
- align.select(Alignment.TOP_LEFT);
- align.addListener(new ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- if (target == null) {
- return;
- }
- l.setComponentAlignment(target, (Alignment) align.getValue());
- }
- });
- cell.addComponent(align);
-
- expand = new CheckBox("Expand");
- expand.setEnabled(false);
- expand.addValueChangeListener(event -> {
- if (target != null) {
- l.setExpandRatio(target, expand.getValue() ? 1 : 0);
- }
- });
- cell.addComponent(expand);
-
- // Component controls
- HorizontalLayout component = new HorizontalLayout();
- component.addStyleName("fieldset");
- component.setSpacing(true);
- root.addComponent(component);
- component.addComponent(new Label("Component"));
-
- sizes = new ArrayList<>();
- sizes.addAll(Arrays.asList("50px", "200px", "10em", "50%", "100%"));
-
- componentWidth = new NativeSelect(null, sizes);
- componentWidth.setImmediate(true);
- componentWidth.setEnabled(false);
- componentWidth.addListener(new ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- if (target == null) {
- return;
- }
- if (componentWidth.getValue() != null) {
- target.setWidth(componentWidth.getValue().toString());
- } else {
- target.setWidth(null);
- }
- }
- });
- component.addComponent(componentWidth);
- component.addComponent(new Label("×", ContentMode.HTML));
-
- componentHeight = new NativeSelect(null, sizes);
- componentHeight.setImmediate(true);
- componentHeight.setEnabled(false);
- componentHeight.addListener(new ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- if (componentHeight.getValue() != null) {
- target.setHeight(componentHeight.getValue().toString());
- } else {
- target.setHeight(null);
- }
- }
- });
- component.addComponent(componentHeight);
-
- componentCaption = new NativeSelect("Caption",
- Arrays.asList("Short", "Slightly Longer Caption"));
- componentCaption.setImmediate(true);
- componentCaption.setEnabled(false);
- componentCaption.addListener(new ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- if (componentCaption.getValue() != null) {
- target.setCaption(componentCaption.getValue().toString());
- } else {
- target.setCaption(null);
- }
- }
- });
- component.addComponent(componentCaption);
-
- componentIcon = new NativeSelect("Icon",
- Arrays.asList("../runo/icons/16/folder.png",
- "../runo/icons/32/document.png"));
- componentIcon.setImmediate(true);
- componentIcon.setEnabled(false);
- componentIcon.addListener(new ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- if (componentIcon.getValue() != null) {
- target.setIcon(new ThemeResource(
- componentIcon.getValue().toString()));
- } else {
- target.setIcon(null);
- }
- }
- });
- component.addComponent(componentIcon);
-
- componentDescription = new TextField("Description");
- componentDescription.setImmediate(true);
- componentDescription.setEnabled(false);
- componentDescription.addListener(new ValueChangeListener() {
- @Override
- public void valueChange(ValueChangeEvent event) {
- target.setDescription(componentDescription.getValue());
- }
- });
- component.addComponent(componentDescription);
-
- componentError = new CheckBox("Error");
- componentError.setEnabled(false);
- componentError.addValueChangeListener(event -> {
- if (target != null) {
- target.setComponentError(componentError.getValue()
- ? new UserError("Error message") : null);
- }
- });
- component.addComponent(componentError);
-
- componentRequired = new CheckBox("Required");
- componentRequired.setEnabled(false);
- componentRequired.addValueChangeListener(event -> {
- if (target != null && target instanceof AbstractField) {
- ((AbstractField<?>) target)
- .setRequired(componentRequired.getValue());
- }
- });
- component.addComponent(componentRequired);
-
- for (int i = 0; i < component.getComponentCount(); i++) {
- component.setComponentAlignment(component.getComponent(i),
- Alignment.MIDDLE_LEFT);
- }
-
- return root;
- }
-
- protected AbstractOrderedLayout createTestLayout(boolean horizontal) {
- l = horizontal ? new HorizontalLayout() : new VerticalLayout();
- l.setSizeUndefined();
- l.addStyleName("test");
-
- Label label = new Label("Component 1");
- l.addComponent(label);
- l.addComponent(new Button("Component 2"));
-
- l.addLayoutClickListener(new LayoutClickListener() {
- @Override
- public void layoutClick(LayoutClickEvent event) {
- if (event.getChildComponent() == null
- || target == event.getChildComponent()) {
- if (target != null) {
- target.removeStyleName("target");
- }
- target = null;
- } else if (target != event.getChildComponent()) {
- if (target != null) {
- target.removeStyleName("target");
- }
- target = (AbstractComponent) event.getChildComponent();
- target.addStyleName("target");
- }
- componentWidth.setEnabled(target != null);
- componentHeight.setEnabled(target != null);
- componentCaption.setEnabled(target != null);
- componentIcon.setEnabled(target != null);
- componentDescription.setEnabled(target != null);
- componentError.setEnabled(target != null);
- componentRequired.setEnabled(
- target != null && target instanceof AbstractField);
- align.setEnabled(target != null);
- expand.setEnabled(target != null);
- if (target != null) {
- if (target.getWidth() > -1) {
- componentWidth
- .select(new Float(target.getWidth()).intValue()
- + target.getWidthUnits().getSymbol());
- } else {
- componentWidth.select(null);
- }
- if (target.getHeight() > -1) {
- componentHeight
- .select(new Float(target.getHeight()).intValue()
- + target.getHeightUnits().getSymbol());
- } else {
- componentHeight.select(null);
- }
-
- align.select(l.getComponentAlignment(target));
- expand.setValue(new Boolean(l.getExpandRatio(target) > 0));
-
- componentCaption.select(target.getCaption());
- if (target.getIcon() != null) {
- componentIcon.select(((ThemeResource) target.getIcon())
- .getResourceId());
- } else {
- componentIcon.select(null);
- }
- componentDescription.setValue(target.getDescription());
- componentError.setValue(target.getComponentError() != null);
- if (target instanceof AbstractField) {
- componentRequired.setValue(
- ((AbstractField<?>) target).isRequired());
- }
- }
- }
- });
-
- target = null;
-
- return l;
- }
-
- @Override
- protected String getTestDescription() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- protected Integer getTicketNumber() {
- // TODO Auto-generated method stub
- return null;
- }
-
- }
|