package com.vaadin.tests.components.abstractfield; import java.util.HashSet; import java.util.Set; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.AbsoluteLayout; import com.vaadin.ui.CheckBox; import com.vaadin.ui.Component; import com.vaadin.ui.ComponentContainer; import com.vaadin.ui.CssLayout; import com.vaadin.ui.GridLayout; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; import com.vaadin.v7.ui.Field; import com.vaadin.v7.ui.TextField; public class RequiredIndicatorForFieldsWithoutCaption extends AbstractReindeerTestUI { private Set<Field> fields = new HashSet<>(); @Override protected void setup(VaadinRequest request) { CheckBox required = new CheckBox("Fields required", true); required.addValueChangeListener(event -> { boolean newRequired = event.getValue(); for (Field f : fields) { f.setRequired(newRequired); } }); addComponent(required); addComponent(createWrappedTextField(new GridLayout(2, 1))); addComponent(createWrappedTextField(new VerticalLayout())); addComponent(createWrappedTextField(new HorizontalLayout())); AbsoluteLayout al = new AbsoluteLayout(); al.setWidth("400px"); al.setHeight("100px"); addComponent(createWrappedTextField(al)); addComponent(createWrappedTextField(new CssLayout())); } /** * @since * @param gridLayout * @return */ private Component createWrappedTextField(ComponentContainer container) { TextField tf = new TextField(); tf.setRequired(true); tf.setWidth(200, Unit.PIXELS); fields.add(tf); container.addComponent(new Label(container.getClass().getSimpleName())); container.addComponent(tf); if (container instanceof AbsoluteLayout) { ((AbsoluteLayout) container).getPosition(tf).setLeft(100.0f, Unit.PIXELS); ((AbsoluteLayout) container).getPosition(tf).setTop(50.0f, Unit.PIXELS); } return container; } /* * (non-Javadoc) * * @see com.vaadin.tests.components.AbstractTestUI#getTestDescription() */ @Override protected String getTestDescription() { return "Test for ensuring that the required indicator is visible for fields even when they would not otherwise have a caption"; } /* * (non-Javadoc) * * @see com.vaadin.tests.components.AbstractTestUI#getTicketNumber() */ @Override protected Integer getTicketNumber() { return 12077; } }