treebuildmenu.java

来自「一个购房管理系统,JSF+Hibernate+Mssql2」· Java 代码 · 共 275 行

JAVA
275
字号
package com.housesale.util;

import java.util.Iterator;
import java.util.List;

import org.hibernate.HibernateException;

import com.housesale.hibernate.Customer;
import com.housesale.hibernate.CustomerFunction;
import com.housesale.hibernate.HierarchyMenu;
import com.housesale.hibernate.Operator;
import com.housesale.hibernate.OperatorFunction;
import com.housesale.hibernate.dao.CustomerDAO;
import com.housesale.hibernate.dao.CustomerFunctionDAO;
import com.housesale.hibernate.dao.HierarchyMenuDAO;
import com.housesale.hibernate.dao.OperatorDAO;
import com.housesale.hibernate.dao.OperatorFunctionDAO;

public class TreeBuildMenu extends AbstractBuildMenu {

	public String buildMenu(String userNume, String userType) {

		HierarchyMenuDAO hierarchyMenuDAO = new HierarchyMenuDAO();
		String own_menuids = "";
		if (userType.equals("manager")) {
			own_menuids = getOperatorMenuIds(userNume);
		} else {
			own_menuids = getCustomerMenuIds(userNume);
		}

		StringBuffer sb = new StringBuffer();
		if (!own_menuids.equals("")&&own_menuids!=null) {
			hierarchymenus = hierarchyMenuDAO.getMenuByIn(own_menuids);
			dispartParentMenu();
			makeScriptForSubMenu(sb);
			topMenus.clear();
			hierarchymenus.clear();
		}
		return sb.toString();

	}

	public Customer getCustomer(String customerNume, String password) {

		CustomerDAO.initialize();
		CustomerDAO customerDAO = new CustomerDAO();
		String sql ="";
		try {
			Integer.valueOf(customerNume);
			sql = "from Customer as o where (o.customerName='" + customerNume+"' or o.customerId=" + customerNume
			+ ") and o.password='" + password + "'";
		} catch (NumberFormatException e1) {			
			sql = "from Customer as o where o.customerName='" + customerNume+"' and o.password='" + password + "'";
		}
		
		List list = null;
		Customer customer = null;

		try {
			list = customerDAO.getSession().createQuery(sql).list();
		} catch (HibernateException e) {

		}
		if (list.size() == 0 || list.size() < 0) {
			return null;
		} else {

			for (int i = 0; i < list.size(); i++) {
				customer = (Customer) list.get(0);

			}
			return customer;
		}
	}

	public Operator getOperator(String operatorName, String password) {

		List list = null;
		Operator operator = null;
		OperatorDAO.initialize();
		OperatorDAO customerDAO = new OperatorDAO();		
		String sql = null;
		try {
			Integer.valueOf(operatorName);
			sql = "from Operator as o where (o.operatorName='" + operatorName+"' or o.operatorId=" + operatorName
			+ ") and o.password='" + password+ "'";
		} catch (NumberFormatException e1) {			
			sql = "from Operator as o where o.operatorName='" + operatorName+"' and o.password='" + password + "'";
		}
		try {
			list = customerDAO.getSession().createQuery(sql).list();
		} catch (HibernateException e) {

		}
		if (list.size() == 0 || list.size() < 0) {
			return null;
		} else {

			for (int i = 0; i < list.size(); i++) {
				operator = (Operator) list.get(0);

			}
			return operator;
		}
	}

	private String getCustomerMenuIds(String customerName) {

		String own_menuids = "";
		List customerFunction_list = null;
		CustomerFunction customerFunction = null;

		CustomerFunctionDAO.initialize();
		CustomerFunctionDAO customerFunctionDAO = new CustomerFunctionDAO();
		if (customerName != null && !customerName.equals("")) {
			customerFunction_list = customerFunctionDAO.findByProperty(
					"customer.customerName", customerName).list();
		}

		for (int i = 0; i < customerFunction_list.size(); i++) {
			customerFunction = (CustomerFunction) customerFunction_list.get(0);
		}

		if (customerFunction == null) {
			return "";
		} else {
			own_menuids = customerFunction.getFunctionId();
		}
		return own_menuids;
	}

	private String getOperatorMenuIds(String operatorName) {

		String own_menuids = "";
		List operatorFunction_list = null;
		OperatorFunction operatorFunction = null;
		OperatorFunctionDAO.initialize();
		OperatorFunctionDAO operatorFunctionDAO = new OperatorFunctionDAO();
		if (operatorName != null && !operatorName.equals("")) {
			operatorFunction_list = operatorFunctionDAO.findByProperty(
					"operator.operatorName", operatorName).list();
		}

		for (int i = 0; i < operatorFunction_list.size(); i++) {
			operatorFunction = (OperatorFunction) operatorFunction_list.get(0);
		}

		if (operatorFunction == null) {
			return "";
		} else {

			own_menuids = operatorFunction.getFunctionId();
		}
		return own_menuids;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.fenghua.util.BuildMenu#makeScriptForSubMenu(java.lang.StringBuffer)
	 */
	private void makeScriptForSubMenu(StringBuffer sb) {

		sb.append("var cooltree=new alai_tree_cool(treeFrame);");
		sb.append("\n");
		sb.append("var root=cooltree.root;");
		sb.append("\n");

		int j = 1;
		for (int i = 0; i < topMenus.size(); i++) {
			TreeCompositeMenu treeCompositeMenu = (TreeCompositeMenu) topMenus
					.get(i);
			treeCompositeMenu.setLevelCoord(Integer.toString(j));
			j++;
			try {

				dispartSubMenu(treeCompositeMenu.getMenuId(), treeCompositeMenu);
				sb.append("root_");
				sb.append(treeCompositeMenu.getLevelCoord());
				sb.append("=");
				sb.append("root.add(\"" + treeCompositeMenu.getMenuName()
						+ "\"");
				sb.append(");");
				sb.append("\n");

			} catch (Exception e) {
				e.printStackTrace();
			}
			sb.append(treeCompositeMenu.newMenu());
			sb.append("\n");
		}
		// /////////////////////////////////////////
		for (int i = 0; i < topMenus.size(); i++) {
			TreeCompositeMenu menu = (TreeCompositeMenu) topMenus.get(i);
			sb.append(menu.addMenuItems());
			sb.append("\n");
		}
		sb.append("\n");
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.fenghua.util.BuildMenu#dispartParentMenu()
	 */
	private void dispartParentMenu() {

		for (Iterator it = hierarchymenus.iterator(); it.hasNext();) {

			HierarchyMenu hierarchymenu = (HierarchyMenu) it.next();
			String parentmenuid = hierarchymenu.getParentMenuId();
			if (parentmenuid == null || parentmenuid.equals("")) {
				TreeCompositeMenu aTopMenu;
				aTopMenu = new TreeCompositeMenu(hierarchymenu.getMenuId(),
						hierarchymenu.getMenuNameZhCn(), hierarchymenu
								.getMenuUrl(), isHasLeaf(hierarchymenu
								.getMenuId()), hierarchymenu.getMenuType());
				topMenus.add(aTopMenu);

			}
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.fenghua.util.BuildMenu#dispartSubMenu(java.lang.String,
	 *      org.fenghua.util.WinXPCompositeMenu)
	 */
	private void dispartSubMenu(String menuId, TreeCompositeMenu comSrc) {

		for (Iterator itr = hierarchymenus.iterator(); itr.hasNext();) {

			HierarchyMenu hm = (HierarchyMenu) itr.next();
			if (menuId.equals(hm.getParentMenuId())) {

				String childMenuId = hm.getMenuId();
				String menuName = hm.getMenuNameZhCn();
				;
				String href = hm.getMenuUrl();

				if (hm.getMenuType().equals("url")) // simple menu
				{
					TreeCompositeMenu treeCompositeMenu = new TreeCompositeMenu(
							childMenuId, menuName, href,
							isHasLeaf(childMenuId), hm.getMenuType());
					comSrc.add(treeCompositeMenu);
				} else {

					TreeCompositeMenu aParentMenu = new TreeCompositeMenu(
							childMenuId, menuName, isHasLeaf(childMenuId), hm
									.getMenuType());
					comSrc.add(aParentMenu);
					dispartSubMenu(childMenuId, aParentMenu);
				}
			}
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.fenghua.util.BuildMenu#isHasLeaf(java.lang.String)
	 */
	private boolean isHasLeaf(String menuId) {

		for (Iterator it = hierarchymenus.iterator(); it.hasNext();) {
			HierarchyMenu hierarchymenu = (HierarchyMenu) it.next();
			if (menuId.equals(hierarchymenu.getParentMenuId()))
				return false;
		}
		return true;
	}
}

⌨️ 快捷键说明

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