123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- package com.vaadin.tests.layouts;
-
- import java.util.ArrayList;
- import java.util.List;
-
- import com.vaadin.data.HasRequired;
- import com.vaadin.data.Item;
- import com.vaadin.data.Property.ValueChangeEvent;
- import com.vaadin.data.Property.ValueChangeListener;
- import com.vaadin.server.ThemeResource;
- import com.vaadin.server.UserError;
- import com.vaadin.tests.components.TestBase;
- import com.vaadin.ui.AbstractComponent;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.Button.ClickEvent;
- import com.vaadin.ui.Button.ClickListener;
- import com.vaadin.ui.CheckBox;
- import com.vaadin.ui.ComboBox;
- import com.vaadin.ui.Component;
- import com.vaadin.ui.CssLayout;
- import com.vaadin.ui.DateField;
- import com.vaadin.ui.FormLayout;
- import com.vaadin.ui.GridLayout;
- import com.vaadin.ui.HorizontalLayout;
- import com.vaadin.ui.Layout;
- import com.vaadin.ui.NativeSelect;
- import com.vaadin.ui.OptionGroup;
- import com.vaadin.ui.TextArea;
- import com.vaadin.ui.VerticalLayout;
- import com.vaadin.v7.ui.LegacyPasswordField;
- import com.vaadin.v7.ui.LegacyTextField;
-
- public class CaptionsInLayoutsWaiAria extends TestBase {
-
- private static final Object CAPTION = "CAPTION";
- private static final Object CLASS = "C";
- private static final Object WIDTH = "W";
-
- private NativeSelect layoutSelect;
- private Layout layout;
- private VerticalLayout verticalLayout;
- private HorizontalLayout horizontalLayout;
- private GridLayout gridLayout;
- private FormLayout formLayout;
- private List<AbstractComponent> components = new ArrayList<>();
- private CssLayout cssLayout;
- private HorizontalLayout layoutParent = new HorizontalLayout();
-
- @Override
- protected void setup() {
- // setTheme("tests-tickets");
- addComponent(createLayoutSelect());
- addComponent(toggleRequired());
- // addComponent(toggleCaptions());
- // addComponent(toggleError());
- addComponent(toggleIcon());
- addComponent(toggleReadOnly());
- addComponent(toggleInvalid());
- addComponent(toggleEnabled());
- addComponent(addCaptionText());
- // layoutParent.addComponent(new
- // NativeButton("Button right of layout"));
- addComponent(layoutParent);
- // addComponent(new NativeButton("Button below layout"));
- createComponents();
- layoutSelect.setValue(layoutSelect.getItemIds().iterator().next());
- }
-
- private Component addCaptionText() {
- Button b = new Button("Add caption text");
- b.addListener(new ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- prependCaptions("a");
- }
- });
- return b;
- }
-
- protected void prependCaptions(String prepend) {
- for (Component c : components) {
- c.setCaption(prepend + c.getCaption());
- }
-
- }
-
- private Component toggleRequired() {
- CheckBox requiredToggle = new CheckBox();
- requiredToggle.setImmediate(true);
- requiredToggle.setCaption("Required");
- requiredToggle
- .addValueChangeListener(event -> setRequired(event.getValue()));
- return requiredToggle;
- }
-
- private Component toggleIcon() {
- CheckBox iconToggle = new CheckBox();
- iconToggle.setImmediate(true);
- iconToggle.setCaption("Icons");
- iconToggle.addValueChangeListener(event -> setIcon(event.getValue()));
- return iconToggle;
- }
-
- private Component toggleReadOnly() {
- CheckBox readOnlyToggle = new CheckBox();
- readOnlyToggle.setImmediate(true);
- readOnlyToggle.setCaption("Read only");
- readOnlyToggle
- .addValueChangeListener(event -> setReadOnly(event.getValue()));
-
- return readOnlyToggle;
- }
-
- private Component toggleEnabled() {
- CheckBox enabledToggle = new CheckBox();
- enabledToggle.setImmediate(true);
- enabledToggle.setValue(true);
- enabledToggle.setCaption("Enabled");
- enabledToggle
- .addValueChangeListener(event -> setEnabled(event.getValue()));
-
- return enabledToggle;
- }
-
- private Component toggleInvalid() {
- CheckBox invalid = new CheckBox("Invalid");
- invalid.setImmediate(true);
- invalid.addValueChangeListener(event -> setInvalid(event.getValue()));
-
- return invalid;
- }
-
- protected void setInvalid(boolean value) {
- UserError userError = null;
- if (value) {
- userError = new UserError(
- "Der eingegebene Wert ist nicht zulässig!");
- }
-
- for (AbstractComponent c : components) {
- c.setComponentError(userError);
- }
- }
-
- protected void setRequired(boolean value) {
- for (AbstractComponent c : components) {
- if (c instanceof HasRequired) {
- ((HasRequired) c).setRequired(value);
- }
- }
-
- }
-
- protected void setIcon(boolean value) {
- for (Component c : components) {
- if (!value) {
- c.setIcon(null);
- } else {
- c.setIcon(new ThemeResource("../runo/icons/16/ok.png"));
- }
- }
-
- }
-
- protected void setReadOnly(boolean value) {
- for (Component c : components) {
- c.setReadOnly(value);
- }
- }
-
- protected void setEnabled(boolean value) {
- for (Component c : components) {
- c.setEnabled(value);
- }
- }
-
- private Component toggleError() {
- CheckBox errorToggle = new CheckBox();
- errorToggle.setImmediate(true);
- errorToggle.setCaption("Error");
- errorToggle.addValueChangeListener(event -> setError(event.getValue()));
- return errorToggle;
- }
-
- protected void setError(boolean value) {
- for (AbstractComponent c : components) {
- if (value) {
- c.setComponentError(new UserError("error"));
- } else {
- c.setComponentError(null);
-
- }
- }
-
- }
-
- private void createComponents() {
- components.add(new LegacyTextField("Default TextBox"));
- components.add(new TextArea("Default TextArea."));
- // components.add(new RichTextArea("Default RichtTextArea"));
- components.add(new LegacyPasswordField("Default Password"));
- components.add(new DateField("Default DateField"));
-
- // PopupDateField popupDateField = new
- // PopupDateField("Default DateField");
- // popupDateField.setTextFieldEnabled(false);
- // components.add(popupDateField);
-
- components.add(new CheckBox("Default CheckBox"));
-
- ComboBox comboBox = new ComboBox("Default ComboBox");
- comboBox.addItem("Item1");
- components.add(comboBox);
-
- OptionGroup radioGroup = new OptionGroup("Single Items");
- radioGroup.addItem("Single Item 1");
- radioGroup.addItem("Single Item 2");
- radioGroup.setMultiSelect(false);
- components.add(radioGroup);
-
- OptionGroup checkGroup = new OptionGroup("Multi Items");
- checkGroup.addItem("Multi Item 1");
- checkGroup.addItem("Multi Item 2");
- checkGroup.setMultiSelect(true);
- components.add(checkGroup);
-
- // Tree tree = new Tree();
- // tree.setCaption("tree");
- // tree.addItem("single item");
- // components.add(tree);
- }
-
- private void setLayout(Layout newLayout) {
- if (layout == null) {
- layoutParent.addComponent(newLayout, 0);
- } else {
- layoutParent.replaceComponent(layout, newLayout);
- }
- layout = newLayout;
-
- for (Component c : components) {
- if (c.getParent() != layout) {
- layout.addComponent(c);
- }
- }
-
- }
-
- private Layout getLayout(String caption,
- Class<? extends Layout> layoutClass, String width) {
- Layout l;
- if (layoutClass == VerticalLayout.class) {
- if (verticalLayout == null) {
- verticalLayout = new VerticalLayout();
- verticalLayout.setStyleName("borders");
- }
- l = verticalLayout;
- } else if (layoutClass == HorizontalLayout.class) {
- if (horizontalLayout == null) {
- horizontalLayout = new HorizontalLayout();
- horizontalLayout.setStyleName("borders");
- }
- l = horizontalLayout;
- } else if (layoutClass == GridLayout.class) {
- if (gridLayout == null) {
- gridLayout = new GridLayout();
- gridLayout.setStyleName("borders");
- }
- l = gridLayout;
- } else if (layoutClass == CssLayout.class) {
- if (cssLayout == null) {
- cssLayout = new CssLayout();
- cssLayout.setStyleName("borders");
- }
- l = cssLayout;
- } else if (layoutClass == FormLayout.class) {
- if (formLayout == null) {
- formLayout = new FormLayout();
- formLayout.setStyleName("borders");
- }
- l = formLayout;
- } else {
- return null;
- }
-
- l.setCaption(caption);
- if (width.equals("auto")) {
- width = null;
- }
-
- l.setWidth(width);
-
- // addComponent(l);
-
- return l;
- }
-
- private Component createLayoutSelect() {
- layoutSelect = new NativeSelect("Layout");
- layoutSelect.addContainerProperty(CAPTION, String.class, "");
- layoutSelect.addContainerProperty(CLASS, Class.class, "");
- layoutSelect.addContainerProperty(WIDTH, String.class, "");
- layoutSelect.setItemCaptionPropertyId(CAPTION);
- layoutSelect.setNullSelectionAllowed(false);
-
- for (Class<?> cls : new Class[] { HorizontalLayout.class,
- VerticalLayout.class, GridLayout.class, CssLayout.class,
- FormLayout.class }) {
- for (String width : new String[] { "auto" }) {
- Object id = layoutSelect.addItem();
- Item i = layoutSelect.getItem(id);
- i.getItemProperty(CAPTION)
- .setValue(cls.getSimpleName() + ", " + width);
- i.getItemProperty(CLASS).setValue(cls);
- i.getItemProperty(WIDTH).setValue(width);
- }
-
- }
- layoutSelect.setImmediate(true);
- layoutSelect.addListener(new ValueChangeListener() {
-
- @Override
- @SuppressWarnings("unchecked")
- public void valueChange(ValueChangeEvent event) {
- Item i = layoutSelect.getItem(event.getProperty().getValue());
-
- setLayout(getLayout(
- (String) i.getItemProperty(CAPTION).getValue(),
- (Class<? extends Layout>) i.getItemProperty(CLASS)
- .getValue(),
- (String) i.getItemProperty(WIDTH).getValue()));
- }
- });
-
- return layoutSelect;
- }
-
- @Override
- protected String getDescription() {
- return "Tests what happens when the caption changes in various layouts. Behavior should be consistent.";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 5424;
- }
-
- }
|