您的位置:首页 > 运维架构 > 网站架构

JAVA软件设计思想之我见之架构设计(2)

2017-09-14 12:15 337 查看
  这一篇打算写树。树可用作菜单,也可以用做其他方面,如组织架构等,由于EasyUI已给出了树的JSON格式,我不打算对其进行讲解

   我的架构,暂且命名Cerise吧,因为我和我爱人,小孩都很喜欢吃车里子。 废话不多说,来组织树的结构。
    1、 树的结构
/** 节点的 id **/
private String id;
/** 显示的节点文字 **/
private String text;
/** 链接 */
private String url;
/** 节点图标 **/
private String iconCls;
/** 节点状态 **/
private String state;
/** 指示节点是否被选中 **/
private boolean checked;
/** 自定义属性 **/
private String attributes;
/** 是否有树叶 */
private boolean isleaf;
/**树级别**/
private String level;

/** 叶子数据组 **/
private List<BaseTree> children = new ArrayList<BaseTree>(); 2、树的构造

/**
* 简单构造函数,一般用于菜单,菜单树
* @param id
* @param text
* @param url
* @param level
* @param children
*/
public BaseTree(String id,String text,String url,String level,List<BaseTree> children){
super();
this.id=id;
this.text=text;
this.url=url;
this.iconCls =null;
this.checked=false;
this.attributes=null;
this.level =level;
this.children =children;
if (children.size()==0){
this.setState("open");
this.setLeaf(true);
}
else{
this.setState("open");
this.setLeaf(false);
}
}

3、定义树

private List<BaseTree> userMenu; // 菜单树,用户菜单


4、 填充数据, 数据可以任意组合

public List<BaseTree> queryRootSysMenuByUserId(String userId) {
List<SysMenu> menus = dao.queryUserMenuByUserId(dbp, userId);
List<BaseTree> menuTree = new ArrayList<BaseTree>();
List<BaseTree> children = new ArrayList<BaseTree>();
for (SysMenu menu : menus) {
BaseTree sysTree = new BaseTree();
sysTree.setId(menu.getMenuId());
sysTree.setText(menu.getMenuName());
sysTree.setUrl(menu.getMenuUrl());
sysTree.setIconCls(null);
sysTree.setChecked(false);
sysTree.setAttributes("null");
sysTree.setLeaf(false);
children = this.querySubUserMenuByUserId(userId, menu.getMenuId());
if (children.size() == 0) {
sysTree.setState("open");
} else {
sysTree.setState("closed");
}
sysTree.setChildren(children);
menuTree.add(sysTree);
}
return menuTree;
}


5、页面效果












                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: