package org.vaadin.touchkit.itest;
import java.util.Iterator;
import java.util.Locale;
import org.vaadin.touchkit.AbstractTouchKitIntegrationTest;
import org.vaadin.touchkit.ui.HorizontalButtonGroup;
import org.vaadin.touchkit.ui.NavigationButton;
import org.vaadin.touchkit.ui.NumberField;
import org.vaadin.touchkit.ui.Switch;
import org.vaadin.touchkit.ui.VerticalComponentGroup;
import com.vaadin.server.ExternalResource;
import com.vaadin.server.ThemeResource;
import com.vaadin.ui.Button;
import com.vaadin.ui.Component;
import com.vaadin.v7.ui.Label;
import com.vaadin.ui.Link;
import com.vaadin.v7.ui.OptionGroup;
import com.vaadin.v7.ui.TextField;
public class VerticalComponentGroupTest extends AbstractTouchKitIntegrationTest {
public VerticalComponentGroupTest() {
setDescription("This is VerticalComponentGroup test");
VerticalComponentGroup verticalComponentGroup = new VerticalComponentGroup(
"Vertical component group");
verticalComponentGroup.addComponent(new Button("Button"));
TextField tf = new TextField(
"A TextField with long caption text and 100% width textfield component");
verticalComponentGroup.addComponent(tf);
Link link = new Link("link caption", new ExternalResource(
"http://www.gizmag.com/"));
link.setDescription("link description text");
verticalComponentGroup.addComponent(link);
verticalComponentGroup.addComponent(new Switch("Switch"));
NumberField numberField = new NumberField("numberfield");
verticalComponentGroup.addComponent(numberField);
NavigationButton one = new NavigationButton("Navigation button");
one.setDescription("nav button description");
NavigationButton too = new NavigationButton(
"Navigation button with icon");
too.setIcon(new ThemeResource("../runo/icons/32/ok.png"));
too.setDescription("nav button description");
verticalComponentGroup.addComponent(one);
verticalComponentGroup.addComponent(too);
verticalComponentGroup.addComponent(new NavigationButton("Simple"));
verticalComponentGroup.addComponent(new Label(
"FIXME: Label, between buttons bugs"));
verticalComponentGroup.addComponent(new Button("Button too"));
verticalComponentGroup.addComponent(getOptiongroup());
addComponent(verticalComponentGroup);
verticalComponentGroup = new VerticalComponentGroup();
verticalComponentGroup.setCaption("Horizontal in vertical");
HorizontalButtonGroup horizontalGroup = getHorizontalGroup();
verticalComponentGroup.addComponent(horizontalGroup);
horizontalGroup = getHorizontalGroup();
horizontalGroup.addComponent(new Button("Third"));
horizontalGroup.setWidth("300px");
Iterator<Component> componentIterator = horizontalGroup
.getComponentIterator();
while (componentIterator.hasNext()) {
Component next = componentIterator.next();
next.setWidth("" + 100.0 / (double)horizontalGroup.getComponentCount() + "%");
}
verticalComponentGroup.addComponent(horizontalGroup);
horizontalGroup = getHorizontalGroup();
Iterator<Component> it = horizontalGroup.getComponentIterator();
it.next().setCaption("Only one here");
horizontalGroup.removeComponent(it.next());
verticalComponentGroup.addComponent(horizontalGroup);
addComponent(verticalComponentGroup);
}
private OptionGroup getOptiongroup() {
OptionGroup languageSelect = new OptionGroup();
Locale[] availableLocales = new Locale[] { Locale.CANADA,
Locale.ENGLISH, Locale.GERMAN };
for (Locale locale : availableLocales) {
languageSelect.addItem(locale);
languageSelect.setItemCaption(locale,
locale.getDisplayLanguage(locale));
}
languageSelect.setValue(Locale.ENGLISH);
return languageSelect;
}
private HorizontalButtonGroup getHorizontalGroup() {
HorizontalButtonGroup horizontalComponentGroup = new HorizontalButtonGroup();
horizontalComponentGroup.addComponent(new Button("First"));
horizontalComponentGroup.addComponent(new Button("Another"));
return horizontalComponentGroup;
}
}