先日の Wicket-menu(1)の続き、、、
作成した HorizonDropdown 継承クラスを作る
import java.util.List;
import org.apache.wicket.ResourceReference;
import org.apache.wicket.markup.html.resources.CompressedResourceReference;
import com.cooldatasoft.common.MenuItem;
import sample.menu.horizon.dropdown.HorizonDropdownMenu;
/**
* SampleMenu.java
*/
public class SampleMenu extends HorizonDropdownMenu{
public SampleMenu(String id,List<MenuItem> menuItemList){
super(id,menuItemList);
}
@Override
protected ResourceReference getCSSResourceReference(){
// 用意するCSS を指定する。
return new CompressedResourceReference(SampleMenu.class,"sample_menu.css");
}
}
この SampleMenu を張りつけるHTMLは、div タグで記述、div のbodyとしてメニューが
生成される。
<div wicket:id="horizonDropMenu"></div>
このHTML のPageクラスで、wicket:id="horizonDropMenu" に対して上のSampleMenuを生成してaddする。
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.markup.html.WebPage;
import com.cooldatasoft.common.MenuItem;
/**
* SampleMenuBase
*/
public class SampleMenuBase extends WebPage{
public SampleMenuBase(){
List<MenuItem> primaryMenuList = buildMenu();
add(new SampleMenu("horizonDropMenu",primaryMenuList));
}
private List<MenuItem> buildMenu(){
MenuItem primaryMenu1 = new MenuItem("Menu 1", Pa1Page.class);
MenuItem primaryMenu2 = new MenuItem("Menu 2", Pb1Page.class);
MenuItem primaryMenu3 = new MenuItem("Menu 3", Pc1Page.class);
MenuItem primaryMenu4 = new MenuItem("MenU 4", Pd1Page.class);
primaryMenu1.addSubmenu(new MenuItem("Plan A 1", Pa1Page.class));
primaryMenu1.addSubmenu(new MenuItem("Plan A 2", Pa2Page.class));
primaryMenu1.addSubmenu(new MenuItem("Plan A 3", Pa3Page.class));
primaryMenu1.addSubmenu(new MenuItem("Plan A 4", Pa4Page.class));
primaryMenu2.addSubmenu(new MenuItem("Plan B 1", Pb1Page.class));
primaryMenu2.addSubmenu(new MenuItem("Plan B 2", Pb2Page.class));
primaryMenu2.addSubmenu(new MenuItem("------------"));
primaryMenu2.addSubmenu(new MenuItem("Plan B 3", Pb3Page.class));
primaryMenu3.addSubmenu(new MenuItem("Plan C 1", Pc1Page.class));
primaryMenu3.addSubmenu(new MenuItem("Plan C 2", Pc2Page.class));
List<MenuItem> primaryMenuList = new ArrayList<MenuItem>();
primaryMenuList.add(primaryMenu1);
primaryMenuList.add(primaryMenu2);
primaryMenuList.add(primaryMenu3);
primaryMenuList.add(primaryMenu4);
return primaryMenuList;
}
}
以下サイトで CSS 作成や、画像を入手を行い
http://www.cssmenumaker.com/drop_down_css_menu.php
結局作成したサンプルは、以下のように。。