package examples.quickstart;
import java.util.ArrayList;
import net.sourceforge.tapestry_jsmenu.api.BasicJSCookMenuItem;
import net.sourceforge.tapestry_jsmenu.api.IJSCookMenuItem;
import net.sourceforge.tapestry_jsmenu.api.IStatusMessageProvider;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.event.PageBeginRenderListener;
import org.apache.tapestry.event.PageEvent;
import org.apache.tapestry.html.BasePage;
public abstract class QuickStart extends BasePage implements PageBeginRenderListener{
private ArrayList<IJSCookMenuItem> model = null;
/**
* The menu model provided by the java code
* must be an instance of Iterable<IJSCookMenuItem>
*/
public Iterable<IJSCookMenuItem> getMenuModel(){
return model;
}
/**
* The 'menuItem' property referenced in the bindings. It provides the actual
* rendered item of the model
*/
public abstract IJSCookMenuItem getMenuItem();
/**
* construct a static model
*/
public void pageBeginRender(PageEvent arg0) {
if(model == null){
model = new ArrayList<IJSCookMenuItem>();
//add a menu item with the name 'Continents', and a mouse over icon
BasicJSCookMenuItem continents = new BasicJSCookMenuItem("Continents", null, getAsset("world"));
model.add(continents);
//add some child menu items each one with a constant icon
continents.addItem(new BasicJSCookMenuItem("Africa", getAsset("dot")));
continents.addItem(new BasicJSCookMenuItem("North America", getAsset("dot")));
continents.addItem(new BasicJSCookMenuItem("South America", getAsset("dot")));
continents.addItem(new BasicJSCookMenuItem("Europe",getAsset("dot")));
continents.addItem(new BasicJSCookMenuItem("Asia", getAsset("dot")));
continents.addItem(new BasicJSCookMenuItem("Antarctica", getAsset("dot")));
continents.addItem(new BasicJSCookMenuItem("Australia", getAsset("dot")));
BasicJSCookMenuItem food = new BasicJSCookMenuItem("Food", getAsset("glass"));
model.add(food);
BasicJSCookMenuItem fastFood = new BasicJSCookMenuItem("Fast Food", getAsset("fastfood"));
food.addItem(fastFood);
fastFood.addItem(new BasicJSCookMenuItem("Hamburger"));
fastFood.addItem(new BasicJSCookMenuItem("Pizza"));
fastFood.addItem(new BasicJSCookMenuItem("Hot Dog"));
food.addItem(new BasicJSCookMenuItem("Ham & Eggs"));
food.addItem(new BasicJSCookMenuItem("Vegetables"));
//the fish-icon appears only on mouse over
food.addItem(new BasicJSCookMenuItem("Fish", null, getAsset("fish")));
food.addItem(new BasicJSCookMenuItem("Steak"));
//add a menu separator
food.addItem(IJSCookMenuItem.MENU_SEPARATOR);
food.addItem(new BasicJSCookMenuItem("How To"));
food.addItem(new BasicJSCookMenuItem("Eat Outside"));
food.addItem(new BasicJSCookMenuItem("Weight-Watchers!"));
model.add(IJSCookMenuItem.MENU_SEPARATOR);
model.add(new BasicJSCookMenuItem("Watches"));
model.add(new BasicJSCookMenuItem("Bracelets"));
model.add(new BasicJSCookMenuItem("Toys"));
model.add(new BasicJSCookMenuItem("Hats"));
model.add(new BasicJSCookMenuItem("Books",getAsset("book")));
model.add(IJSCookMenuItem.MENU_SEPARATOR);
model.add(new BasicJSCookMenuItem("Margret"));
model.add(new BasicJSCookMenuItem("Linda"));
model.add(new BasicJSCookMenuItem("Patricia"));
model.add(IJSCookMenuItem.MENU_SEPARATOR);
BasicJSCookMenuItem authors = new BasicJSCookMenuItem("Music");
model.add(authors);
authors.addItem(new BasicJSCookMenuItem("R&B"));
authors.addItem(new BasicJSCookMenuItem("Classics"));
authors.addItem(new BasicJSCookMenuItem("Swing"));
authors.addItem(new BasicJSCookMenuItem("Soul"));
authors.addItem(new BasicJSCookMenuItem("Folk"));
}
}
/**
* This is called when one of the menu items is clicked
*/
public void onNavigate(IRequestCycle cycle, String value){
System.out.println("navigating from menuitem " + value );
}
}
|