天天看點

JSF Tree學習...

RAD7.0開發Faces Portlet.使用到Tree元件.

=====================================

使用JSF中的<ig:Sidebar></ig:Sidebar>實作動态加載菜單,其中bar.getChildren().add(aSidebarGroup);是實作動态加載首節點,HtmlSidebarGroup aSidebarGroup = (HtmlSidebarGroup) application.createComponent(HtmlSidebarGroup.COMPONENT_TYPE);

    aSidebarGroup.setText(boardName);

    aSidebarGroup.setExpanded(true);

    aSidebarGroup.setId(viewRoot.createUniqueId());實作加載該節點下的子節點,非常友善。

private Sidebar buildSideBar(Sidebar bar)

 {

  boolean isInitialised = bar.getAttributes().get("IS_INITIALISED")!=null;

  if (!isInitialised) {

   // Get a reference to the JSF Application, 

   // we need it to create value bindings later-on

   Application application = FacesContext.getCurrentInstance().getApplication();

   UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();

   /* Create Infragistics SidebarGroup */

   // Set the Sidebar's width and height

   bar.getAttributes().put("style","width: 155px; height: 590px;");

   // Create SidebarGroup

   List list = this.getBoardNameForMenu();

   for(int i = 0 ;i<list.size();i++)

   {

    Object[] row = (Object[])list.get(i);

   //Object[] row = (Object[])list.listIterator().next();

    String boardId = String.valueOf(row[0]);

    String boardName = String.valueOf(row[1]);

    String parentId = String.valueOf(row[2]);

    HtmlSidebarGroup aSidebarGroup = (HtmlSidebarGroup) application.createComponent(HtmlSidebarGroup.COMPONENT_TYPE);

    aSidebarGroup.setId(viewRoot.createUniqueId());

    // Add the newly created SidebarGroup to the Sidebar's children list

    bar.getChildren().add(aSidebarGroup);

    List ls = this.getBoardNameForMenuBar(Integer.parseInt(boardId));

    if(ls.size() != 0)

    {

     for(int j=0;j<ls.size();j++)

     {

      Object[] row1 = (Object[])ls.get(j);

      String boardid = String.valueOf(row1[0]);

      String boardname = String.valueOf(row1[1]);

      //HtmlSidebarGroup aSidebarGroup = (HtmlSidebarGroup) application.createComponent(HtmlSidebarGroup.COMPONENT_TYPE);

      HtmlLink aLink1 = (HtmlLink)application.createComponent(HtmlLink.COMPONENT_TYPE);

      aLink1.setId(viewRoot.createUniqueId());

      //aSidebarGroup.setText(sidebarGroupNameStr);

      //aSidebarGroup.setExpanded(true);

      //aSidebarGroup.setId(viewRoot.createUniqueId());

      //aLink1.setId(parentId);

      aLink1.setUrl("/pages/bbs/visitor/topic/topicforboard.jsf?boardid="+boardid+"");

      aLink1.setValue(boardname);

      aSidebarGroup.getChildren().add(aLink1);

     }

    }

   }

本文轉自kenty部落格園部落格,原文連結http://www.cnblogs.com/kentyshang/archive/2008/06/04/1213825.html如需轉載請自行聯系原作者

kenty

繼續閱讀