permissiontree.java

来自「评分系统,acegi+JSF+spring+hibernate,可上传附件」· Java 代码 · 共 99 行

JAVA
99
字号
package com.sgm.partybranch.presentation.bean;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.richfaces.model.TreeNode;

import com.sgm.partybranch.business.common.UserService;
import com.sgm.partybranch.common.constants.SessionKey;
import com.sgm.partybranch.vo.sysadmin.Permission;

public class PermissionTree implements TreeNode {
	private static final Integer ROOT_PERMISSION_LENGTH = 2;

	private Map<String, PermissionBean> roots;
	private List<Permission> permissions;

	public Map getRoots() {
		return roots;
	}

	public void setRoots(Map<String, PermissionBean> roots) {
		this.roots = roots;
	}

	@SuppressWarnings("unchecked")
	public PermissionTree() {
		FacesContext context = FacesContext.getCurrentInstance();
		HttpServletRequest request = (HttpServletRequest) context
				.getExternalContext().getRequest();
		HttpSession session = request.getSession();
		this.permissions = (List<Permission>) session
				.getAttribute(SessionKey.PERMISSION_KEY);
	}

	public void addChild(Object identifier, TreeNode child) {
		// TODO Auto-generated method stub
		this.getRoots().put(identifier, child);
	}

	public TreeNode getChild(Object id) {
		return (TreeNode) this.getRoots().get(id);
	}

	public Iterator getChildren() {
		roots = new HashMap();
		for (Permission permission : permissions) {
			if (permission.getPermissionId().length() == ROOT_PERMISSION_LENGTH) {
				PermissionBean permBean = new PermissionBean();
				permBean.initBean(permission, permBean);
				permBean.setNodeParent(this);
				roots.put(permBean.getPermissionId(), permBean);
			}
		}
		return roots.entrySet().iterator();
	}

	public Object getData() {
		// TODO Auto-generated method stub
		return this;
	}

	public TreeNode getParent() {
		return null;
	}

	public boolean isLeaf() {
		if (permissions == null) {
			return true;
		}
		return false;
	}

	public void removeChild(Object id) {
		// TODO Auto-generated method stub
		this.getRoots().remove(id);
	}

	public void setData(Object data) {
		// TODO Auto-generated method stub

	}

	public void setParent(TreeNode parent) {
		// TODO Auto-generated method stub

	}

	public String getType() {
		return "library";
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?