Ejemplo n.º 1
0
  /**
   * 根据角色ID,加载用户菜单资源
   *
   * @param u
   * @param pid
   * @param url
   * @return
   */
  private List<MenuItem> loadMenus(User u, String pid, String url) {
    /*
     * 首先,加载顶级目录或页面菜单
     */
    Map<String, String> param = new HashMap<String, String>();
    if (u != null && u.getRid() != null) {
      param.put("rid", u.getRid()); // 角色ID
    }
    param.put("pid", pid); // 菜单父ID
    List<Menu> menus = menuService.selectList(param);
    // 创建菜单集合
    List<MenuItem> root = new ArrayList<MenuItem>();
    // 循环添加菜单到菜单集合
    for (Iterator<Menu> it = menus.iterator(); it.hasNext(); ) {
      Menu entry = it.next();
      MenuItem item = new MenuItem(entry.getName(), null);
      item.setId(entry.getId());
      item.setPid(entry.getPid());
      item.setMenuType(entry);
      //			if(item.getType().equals(MenuType.page)){
      //				item.setIcon("http://127.0.0.1:8082/myshop/resource/images/letter.gif");
      //			}
      if (url != null) {
        item.setUrl(url);
      } else {
        item.setUrl(entry.getUrl());
      }
      root.add(item);
    }

    /*
     * 其次,加载子菜单 或 按钮功能
     */
    for (int i = 0; i < root.size(); i++) {
      MenuItem item = root.get(i);
      if (!item.isButton()) {
        Menu mm = new Menu();
        mm.setPid(item.getId());
        loadChildrenByPid(root.get(i), mm, url, u);
      } else {
        // addUserResourceMenusButton(item.getUrl());
      }
    }

    return root;
  }
Ejemplo n.º 2
0
 /**
  * 角色权限和资源菜单进行对比,使checkbox选中
  *
  * @param p
  * @param menus
  */
 private void eeee(Privilege p, List<MenuItem> menus) {
   for (int j = 0; j < menus.size(); j++) {
     MenuItem menu = menus.get(j);
     if (p.getMid().equals(menu.getId())) {
       menu.setChecked(true);
       return;
     } else {
       if (menu.getChildren() != null && menu.getChildren().size() > 0)
         eeee(p, menu.getChildren());
     }
   }
 }
Ejemplo n.º 3
0
  // 根据父ID加载子节点
  private void loadChildrenByPid(MenuItem item, Menu menu, String url, User u) {
    Map<String, String> param = new HashMap<String, String>();

    if (u != null && u.getRid() != null) param.put("rid", u.getRid());
    param.put("pid", menu.getPid());
    // 加载菜单节点
    List<Menu> data = menuService.selectList(param);
    if (data == null || data.size() == 0) {
      return;
    }
    if (item.getChildren() == null) item.setChildren(new ArrayList<MenuItem>());
    // 创建菜单节点
    for (int i = 0; i < data.size(); i++) {
      Menu entry = data.get(i);

      MenuItem addItem = new MenuItem(entry.getName(), null);
      addItem.setId(entry.getId());
      addItem.setPid(entry.getPid());
      addItem.setMenuType(entry);
      String url0 = null;
      if (url != null) {
        addItem.setUrl(url);
        url0 = url;
      } else {
        addItem.setUrl(entry.getUrl());
        url0 = entry.getUrl();
      }
      //
      //	System.out.println("entry.getType()="+entry.getType()+",MenuType.button="+MenuType.button);
      if (entry.getType().equals("button")) {
        addUserResourceMenusButton(url0);
      } else {
        item.getChildren().add(addItem);
      }
    }
    // 根据菜单节点进行递归加载
    for (int i = 0; i < item.getChildren().size(); i++) {
      MenuItem childItem = item.getChildren().get(i);
      if (!childItem.isButton()) {
        Menu itemMenu = new Menu();
        itemMenu.setPid(childItem.getId());
        //				itemMenu.setMenuType(entry);
        loadChildrenByPid(childItem, itemMenu, url, u);
      }
    }
  }