package org.vaadin.touchmenu;
import org.vaadin.touchmenu.TouchMenu.ButtonSize;
import org.vaadin.touchmenu.TouchMenu.Command;
import org.vaadin.touchmenu.TouchMenu.TouchMenuButton;
import com.vaadin.Application;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.terminal.ThemeResource;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.TextField;
import com.vaadin.ui.Window;
@SuppressWarnings("unused")
public class TouchmenuApplication extends Application {
private static final long serialVersionUID = 4674022714443717358L;
private Window mainWindow;
private TouchMenu touch;
private TextField width, height, rows, columns;
private CheckBox animate, from, useArrows;
private ComboBox sizes;
@SuppressWarnings("serial")
@Override
public void init() {
String sizeW = "100%";
String sizeH = "450px";
mainWindow = new Window("Touchmenu Application");
touch = new TouchMenu(sizeW, sizeH);
// Add menu items(buttons)
for (int i = 0; i < 2; i++) {
TouchMenu.TouchMenuButton item = touch.addButton("Cake",
new ThemeResource("../cake-48x48.png"), menuCommand);
TouchMenu.TouchMenuButton item1 = touch.addButton("Capsule button",
new ThemeResource("../capsule-48x48.png"), menuCommand);
TouchMenu.TouchMenuButton item2 = touch.addButton("Coffee", null,
menuCommand);
TouchMenu.TouchMenuButton item3 = touch.addButton("Sugar", null,
menuCommand);
TouchMenu.TouchMenuButton item4 = touch.addButton("Honey", null,
menuCommand);
TouchMenu.TouchMenuButton item5 = touch.addButton("Rain", null,
menuCommand);
TouchMenu.TouchMenuButton item6 = touch.addButton("Movies", null,
menuCommand);
}
// Add fields to edit touchmenu
width = new TextField("Width");
width.setImmediate(true);
width.setValue(sizeW);
height = new TextField("Height");
height.setImmediate(true);
height.setValue(sizeH);
rows = new TextField("Rows");
rows.setImmediate(true);
rows.setValue("2");
columns = new TextField("Columns");
columns.setImmediate(true);
columns.setValue("3");
animate = new CheckBox("Animate");
animate.setValue(true);
animate.setImmediate(true);
from = new CheckBox("From arrow direction");
from.setValue(true);
from.setImmediate(true);
useArrows = new CheckBox("Use arrows");
useArrows.setValue(true);
useArrows.setImmediate(true);
sizes = new ComboBox("Button size");
sizes.setImmediate(true);
sizes.addItem(ButtonSize.SMALL);
sizes.addItem(ButtonSize.NORMAL);
sizes.addItem(ButtonSize.BIG);
sizes.select(ButtonSize.NORMAL);
sizes.setNullSelectionAllowed(false);
width.addListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
touch.setWidth((String) width.getValue());
}
});
height.addListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
touch.setHeight((String) height.getValue());
}
});
rows.addListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
touch.setRows(Integer.parseInt((String) rows.getValue()));
}
});
columns.addListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
touch.setColumns(Integer.parseInt((String) columns.getValue()));
}
});
animate.addListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent arg0) {
touch.setAnimate((Boolean) animate.getValue());
}
});
from.addListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent arg0) {
touch.setFrom((Boolean) from.getValue());
}
});
useArrows.addListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent arg0) {
touch.setUseArrows((Boolean) useArrows.getValue());
}
});
sizes.addListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
touch.setButtonSize((ButtonSize) sizes.getValue());
}
});
// text boxes
HorizontalLayout hl = new HorizontalLayout();
hl.addComponent(width);
hl.addComponent(height);
hl.addComponent(rows);
hl.addComponent(columns);
hl.setSpacing(true);
// Check boxes + button size drop down
HorizontalLayout hl2 = new HorizontalLayout();
hl2.addComponent(animate);
hl2.addComponent(from);
hl2.addComponent(useArrows);
hl2.addComponent(sizes);
hl2.setSpacing(true);
mainWindow.addComponent(hl);
mainWindow.addComponent(hl2);
mainWindow.addComponent(touch);
setMainWindow(mainWindow);
}
/**
* This is executed when clicking a item
*/
private Command menuCommand = new Command() {
private static final long serialVersionUID = 1L;
@Override
public void menuSelected(TouchMenuButton selectedItem) {
mainWindow.showNotification("Clicked " + selectedItem.getCaption());
}
};
}