package org.vaadin.touchkit.itest.oldtests;
import java.util.Iterator;
import org.vaadin.touchkit.AbstractTouchKitIntegrationTest;
import org.vaadin.touchkit.gwt.client.theme.StyleNames;
import org.vaadin.touchkit.ui.HorizontalButtonGroup;
import org.vaadin.touchkit.ui.NavigationView;
import org.vaadin.touchkit.ui.VerticalComponentGroup;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.Component;
import com.vaadin.ui.CssLayout;
import com.vaadin.v7.ui.Label;
import com.vaadin.ui.Notification;
import com.vaadin.v7.ui.TextField;
public class ButtonsInComponentGroups extends AbstractTouchKitIntegrationTest {
public ButtonsInComponentGroups() {
NavigationView navigationView = new NavigationView();
navigationView.setCaption("Buttons in various places");
CssLayout l = new CssLayout();
Button button = new Button("Button not in a component group");
button.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Notification.show("Clicked");
}
});
l.addComponent(button);
button = new Button("Primary button");
button.setStyleName(StyleNames.BUTTON_BLUE);
button.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Notification.show("Clicked");
}
});
l.addComponent(button);
button = new Button("Danger button");
button.setStyleName(StyleNames.BUTTON_RED);
button.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Notification.show("Clicked");
}
});
l.addComponent(button);
VerticalComponentGroup verticalComponentGroup = new VerticalComponentGroup(
"Vertical component group");
verticalComponentGroup.setWidth("100%");
button = new Button("Button");
button.setWidth("100%");
verticalComponentGroup.addComponent(button);
verticalComponentGroup.addComponent(new TextField("TextField"));
button = new Button("Button too");
button.setWidth("100%");
verticalComponentGroup.addComponent(button);
verticalComponentGroup.addComponent(new Label(
"FIXME: Label, between buttons bugs"));
button = new Button("Button too");
button.setWidth("100%");
verticalComponentGroup.addComponent(button);
l.addComponent(verticalComponentGroup);
verticalComponentGroup = new VerticalComponentGroup();
verticalComponentGroup.setWidth("100%");
verticalComponentGroup.setCaption("Horizontal in vertical");
HorizontalButtonGroup horizontalGroup = getHorizontalGroup();
horizontalGroup.setCaption("Caption");
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 / (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);
l.addComponent(verticalComponentGroup);
l.addComponent(getHorizontalGroup());
navigationView.setContent(l);
HorizontalButtonGroup horizontalComponentGroup = new HorizontalButtonGroup();
horizontalComponentGroup.addComponent(new Button("Up"));
horizontalComponentGroup.addComponent(new Button("Down"));
navigationView.setRightComponent(horizontalComponentGroup);
horizontalComponentGroup.setCaption("Horizontal straight to layout");
navigationView.setLeftComponent(new Button("Left"));
addComponent(navigationView);
TestUtils.makeSmallTabletSize(navigationView);
}
private HorizontalButtonGroup getHorizontalGroup() {
HorizontalButtonGroup horizontalComponentGroup = new HorizontalButtonGroup();
horizontalComponentGroup.addComponent(new Button("First"));
horizontalComponentGroup.addComponent(new Button("Another"));
return horizontalComponentGroup;
}
}