Wicket-menu(2)

先日の 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

結局作成したサンプルは、以下のように。。