package org.vaadin.touchkit.itest;
import java.util.Random;
import org.vaadin.touchkit.AbstractTouchKitIntegrationTest;
import org.vaadin.touchkit.ui.NavigationManager;
import org.vaadin.touchkit.ui.NavigationView;
import org.vaadin.touchkit.ui.VerticalComponentGroup;
import org.vaadin.touchkit.ui.NavigationManager.NavigationEvent;
import org.vaadin.touchkit.ui.NavigationManager.NavigationListener;
import com.vaadin.v7.data.Property.ValueChangeEvent;
import com.vaadin.v7.data.Property.ValueChangeListener;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.CssLayout;
import com.vaadin.v7.ui.Label;
import com.vaadin.v7.ui.NativeSelect;
import com.vaadin.ui.Notification;
import com.vaadin.v7.ui.TextField;
public class NavigationViewBarTest extends AbstractTouchKitIntegrationTest {
Random r = new Random(0);
public NavigationViewBarTest() {
setDescription("NavigationView and -Bar test");
addComponent(makeNavigationManager());
}
NavigationManager makeNavigationManager() {
final NavigationManager navman = new NavigationManager();
final NavigationView one = createView("One", "one", true);
final NavigationView two = createView("Two", "two", true);
final NavigationView three = createView("Three", "three", true);
final NavigationView four = createView("Four", "four", false);
navman.setCurrentComponent(one);
navman.setNextComponent(two);
addNextButton(navman, one, two);
addNextButton(navman, two, three);
addNextButton(navman, three, four);
navman.addNavigationListener(new NavigationListener() {
@Override
public void navigate(NavigationEvent event) {
if (navman.getCurrentComponent() == one) {
navman.setNextComponent(two);
} else if (navman.getCurrentComponent() == two) {
navman.setNextComponent(three);
} else if (navman.getCurrentComponent() == three) {
navman.setNextComponent(four);
}
}
});
return navman;
}
private static void addNextButton(final NavigationManager navman,
final NavigationView view, final NavigationView next) {
((Button) view.getRightComponent())
.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
navman.navigateTo(next);
}
});
}
NavigationView createView(String caption, String debugId, boolean hasNext) {
final CssLayout layout = new CssLayout();
NativeSelect nativeSelect = new NativeSelect();
nativeSelect.addItem("FOO");
for (int i = 0; i < 200; i++) {
nativeSelect.addItem("BAR " + i);
}
nativeSelect
.addItem("CAaaaaaaaaaaaaaaaaa Rsdfs sfsdfsdfsdsd fdsf adsfdsf sdaf j sdlfkjs ld adsfsd f");
nativeSelect.setImmediate(true);
nativeSelect.addValueChangeListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
Notification.show("Value:" + event.getProperty().getValue());
}
});
VerticalComponentGroup verticalComponentGroup = new VerticalComponentGroup("Textifedf");
verticalComponentGroup.addComponent(new TextField("Böö"));
layout.addComponent(verticalComponentGroup);
layout.addComponent(nativeSelect);
layout.setId(debugId);
int max = (int) (r.nextInt(100));
for (int i = 0; i < max; i++) {
Label l = new Label("Foo " + i);
layout.addComponent(l);
}
NavigationView navView = new NavigationView();
if (hasNext) {
navView.setRightComponent(new Button("Next"));
}
navView.setCaption(caption);
navView.setContent(layout);
navView.getLeftComponent().setCaption("Back");
return navView;
}
}