/** * Copyright (c) 2004-2011 Wang Jinbao(Julian Wong), http://www.ralasafe.com * Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php */ package org.ralasafe.servlet; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.ralasafe.EntityExistException; import org.ralasafe.group.Node; import org.ralasafe.privilege.Privilege; import org.ralasafe.privilege.PrivilegeManager; public class PrivilegeTreeHandler extends AbstractTreeHandler { protected final PrivilegeManager manager; //private final Privilege rootPvlg=new Privilege(); public PrivilegeTreeHandler(PrivilegeManager manager) { this.manager = manager; // rootPvlg.setId( 0 ); // rootPvlg.setPid( -333 ); // rootPvlg.setName( "Root" ); // rootPvlg.setType( 0 ); } public String getCreatePage() { return "/ralasafe/privilege/create.jsp"; } public String getPageTitle(){ return "Privilege_Tree"; } public String getModifyPage(){ return "/ralasafe/privilege/modify.jsp"; } public String getContextMenuPage(){ return "/ralasafe/privilege/contextMenu.jsp"; } public void addNode(Object node) throws EntityExistException{ Privilege pvlg=(Privilege)node; manager.addPrivilege(pvlg); } public Node getNode(int id){ return manager.getPrivilege(id); } public void deleteNode(int id){ manager.deletePrivilegeCascade( id ); } public Node getNode(HttpServletRequest req){ Privilege pvlg=new Privilege(); int id=getId(req); int pid=getParentId(req); String name=req.getParameter("name"); String desc=req.getParameter("description"); boolean isLeaf=WebUtil.getBooleanParameter(req,"isLeaf", false); String constantName = req.getParameter("constantName"); String target = req.getParameter("target"); String url = req.getParameter("url"); boolean display=WebUtil.getBooleanParameter( req, "display", true ); pvlg.setConstantName(constantName); pvlg.setTarget(target); pvlg.setUrl(url); pvlg.setId(id); pvlg.setIsLeaf(isLeaf); pvlg.setDisplay(display); pvlg.setName(name); pvlg.setPid(pid); pvlg.setDescription(desc); return pvlg; } public Node getNode( String name ) { Collection nodes=manager.getAllBusinessPrivileges(); for( Iterator iter=nodes.iterator(); iter.hasNext(); ) { Privilege node=(Privilege) iter.next(); if( node.getName().equals( name ) ) { return node; } } nodes=manager.getAllNonRolePrivileges(); for( Iterator iter=nodes.iterator(); iter.hasNext(); ) { Privilege node=(Privilege) iter.next(); if( node.getName().equals( name ) ) { return node; } } return null; } public Collection getAllNodes(){ Collection pvlgs=manager.getAllBusinessPrivileges(); List allPvlgs=new ArrayList(pvlgs.size()+1); //allPvlgs.add( rootPvlg ); allPvlgs.addAll( pvlgs ); return allPvlgs; } public String getNodeName(Node node ){ Privilege pvlg=(Privilege)node; return pvlg.getName(); } public void moveNode(int targetId,int nodeId,int position){ Privilege node=manager.getPrivilege( nodeId ); Privilege targetNode=manager.getPrivilege( targetId ); manager.movePrivilege(node, targetNode,position); } public void updateNode(Object node)throws EntityExistException{ Privilege db=(Privilege)node; manager.updatePrivilege(db); } public String getTreeType() { return "privilege"; } public void copyNode( Object node ) throws EntityExistException { // privilege doesn't support copy throw new UnsupportedOperationException(); } }