package com.norteksoft.acs.web.log; import java.util.List; import org.apache.struts2.convention.annotation.ParentPackage; import org.springframework.beans.factory.annotation.Required; import com.norteksoft.acs.base.web.struts2.CRUDActionSupport; import com.norteksoft.acs.entity.authorization.BusinessSystem; import com.norteksoft.acs.entity.log.Log; import com.norteksoft.acs.entity.organization.Company; import com.norteksoft.acs.service.authorization.BusinessSystemManager; import com.norteksoft.acs.service.organization.CompanyManager; import com.norteksoft.product.util.ContextUtils; @ParentPackage("default") public class LoadTreeAction extends CRUDActionSupport<Log> { private static final long serialVersionUID = 1L; private CompanyManager companyManager; private BusinessSystemManager businessSystemManager; private String currentId; public String loadLogTree(){ StringBuilder tree = new StringBuilder("[ "); if("INITIALIZED".equals(currentId)){ tree.append(getCompanyNodes(ContextUtils.getCompanyId())); }else if(currentId.startsWith("COMPANY")){ Company company = companyManager.getCompany(Long.valueOf(currentId.substring(currentId.indexOf(',')+1, currentId.length()))); tree.append(getLeafNodes(company)); } tree.append(" ]") ; renderText(tree.toString()); return null; } private String getCompanyNodes(Long companyId){ Company company = companyManager.getCompany(companyId); StringBuilder nodes = new StringBuilder(); nodes.append(generateJsTreeNode("COMPANY,"+company.getId(), "open", company.getName(), getLeafNodes(company))); return nodes.toString(); } private String getLeafNodes(Company company){ StringBuilder nodes = new StringBuilder(); nodes.append(generateJsTreeNode("USERLOGINLOGS,"+company.getId(), "", getText("log.loginLog"), "")); List<BusinessSystem> systems = businessSystemManager.getAllBusiness(); for(BusinessSystem sys : systems){ nodes.append(",").append(generateJsTreeNode("SYSLOGS,"+sys.getId(), "", sys.getName(), "")); } for(Company c : company.getChildren()){ nodes.append(",").append(generateJsTreeNode("COMPANY,"+c.getId(), "closed", c.getName(), "")); } return nodes.toString(); } protected String generateJsTreeNode(String id, String state, String data, String children){ StringBuilder node = new StringBuilder(); node.append("{ attributes: { id : \"").append(id).append("\" }"); if(state != null && !"".equals(state.trim())){ node.append(",state : \"").append(state).append("\""); } node.append(", data: \"").append(data).append("\" "); if(children != null && !"".equals(children.trim())){ node.append(", children : [").append(children).append("]"); } node.append("}"); return node.toString(); } public String getCurrentId() { return currentId; } public void setCurrentId(String currentId) { this.currentId = currentId; } @Required public void setBusinessSystemManager(BusinessSystemManager businessSystemManager) { this.businessSystemManager = businessSystemManager; } @Required public void setCompanyManager(CompanyManager companyManager) { this.companyManager = companyManager; } @Override public String delete() throws Exception { return null; } @Override public String list() throws Exception { return null; } @Override protected void prepareModel() throws Exception { } @Override public String save() throws Exception { return null; } public Log getModel() { return null; } }