⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webmenumanager.java

📁 《j2ee开发全程实录》随书源码
💻 JAVA
字号:
package com.cownew.PIS.framework.web.menu;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.dom4j.tree.DefaultElement;

import com.cownew.ctk.common.ExceptionUtils;
import com.cownew.ctk.constant.StringConst;
import com.cownew.ctk.io.ResourceUtils;

public class WebMenuManager
{
	private static WebMenuManager instance;
	
	private WebMenuColumnInfo[] columnInfos;	

	private WebMenuItemInfo[] menuItems;

	private WebMenuManager()
	{
		super();
	}

	public static WebMenuManager getManager()
	{
		if (instance == null)
		{
			instance = new WebMenuManager();
			try
			{
				instance.init();
			} catch (UnsupportedEncodingException e)
			{
				throw ExceptionUtils.toRuntimeException(e);
			} catch (DocumentException e)
			{
				throw ExceptionUtils.toRuntimeException(e);
			}
		}
		return instance;
	}
	
	private void init() throws UnsupportedEncodingException, DocumentException
	{
		InputStream beansXFStream = null;
		try
		{
			beansXFStream = getClass().getResourceAsStream(
					"/com/cownew/PIS/framework/web/menu/WebMainMenu.xml");
			Document doc = new SAXReader().read(new InputStreamReader(
					beansXFStream, StringConst.UTF8));
			List colList = doc.selectNodes("//Config/Columns/Column");
			columnInfos = new WebMenuColumnInfo[colList.size()];
			for (int i = 0, n = colList.size(); i < n; i++)
			{
				DefaultElement beanElement = (DefaultElement) colList.get(i);
				String name = beanElement.attribute("name").getText();
				String text = beanElement.getText();
				columnInfos[i] = new WebMenuColumnInfo(name,text);	
			}
			
			List itemList = doc.selectNodes("//Config/MenuItems/Item");
			menuItems = new WebMenuItemInfo[itemList.size()];
			for (int i = 0, n = itemList.size(); i < n; i++)
			{
				DefaultElement beanElement = (DefaultElement) itemList.get(i);
				String column = beanElement.attribute("column").getText();
				String link = beanElement.attribute("link").getText();
				String text = beanElement.getText();
				menuItems[i] = new WebMenuItemInfo(text,link,column);	
			}

		}finally
		{
			ResourceUtils.close(beansXFStream);
		}
	}

	/**
	 * 获取配置文件定义的所有栏目定义
	 * @return
	 */
	public WebMenuColumnInfo[] getColumnInfos()
	{
		return columnInfos;
	}

	/**
	 * 获取配置文件定义的所有菜单项定义
	 * @return
	 */
	public WebMenuItemInfo[] getMenuItems()
	{
		return menuItems;
	}

	/**
	 * 得到栏目columnName下的所有菜单项
	 * @param columnName
	 * @return List中数据类型为WebMenuItemInfo
	 */
	public List getMenuItems(String columnName)
	{
		List list = new ArrayList();
		//菜单项不是很多,所以这样做不会对效率产生影响
		//以后菜单项多了以后可以用map
		for(int i=0,n=menuItems.length;i<n;i++)
		{
			WebMenuItemInfo item = menuItems[i];
			if(item.getColumn().equals(columnName))
			{
				list.add(item);
			}
		}
		return list;
	}
	
}

⌨️ 快捷键说明

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