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

📄 viewhelper.java

📁 OBPM是一个开源
💻 JAVA
字号:
package cn.myapps.core.dynaform.view.action;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;

import cn.myapps.base.action.BaseHelper;
import cn.myapps.base.action.ParamsTable;
import cn.myapps.base.dao.DataPackage;
import cn.myapps.base.dao.PersistenceUtils;
import cn.myapps.core.dynaform.document.ejb.Document;
import cn.myapps.core.dynaform.document.ejb.DocumentProcess;
import cn.myapps.core.dynaform.form.ejb.Form;
import cn.myapps.core.dynaform.form.ejb.FormProcess;
import cn.myapps.core.dynaform.view.ejb.Column;
import cn.myapps.core.dynaform.view.ejb.View;
import cn.myapps.core.dynaform.view.ejb.ViewProcess;
import cn.myapps.core.macro.runner.JavaScriptRunner;
import cn.myapps.core.resource.ejb.ResourceProcess;
import cn.myapps.core.user.action.WebUser;
import cn.myapps.core.user.ejb.UserProcess;
import cn.myapps.core.user.ejb.UserVO;
import cn.myapps.util.ProcessFactory;

public class ViewHelper extends BaseHelper {

	public ViewHelper() throws ClassNotFoundException {
		super(ProcessFactory.createProcess(ViewProcess.class));
	}

	public static Map getALL_SYMBOL() {
		return ALL_SYMBOL;
	}

	public static void setALL_SYMBOL(Map all_symbol) {
		ALL_SYMBOL = all_symbol;
	}

	public static Map getCOMPARE_SYMBOL() {
		return COMPARE_SYMBOL;
	}

	public static void setCOMPARE_SYMBOL(Map compare_symbol) {
		COMPARE_SYMBOL = compare_symbol;
	}

	public static Map getOPERATOR_SYMBOL() {
		return OPERATOR_SYMBOL;
	}

	public static void setOPERATOR_SYMBOL(Map operator_symbol) {
		OPERATOR_SYMBOL = operator_symbol;
	}

	public static Map getRELATION_SYMBOL() {
		return RELATION_SYMBOL;
	}

	public static void setRELATION_SYMBOL(Map relation_symbol) {
		RELATION_SYMBOL = relation_symbol;
	}

	private static Map RELATION_SYMBOL = new LinkedHashMap();

	private static Map OPERATOR_SYMBOL = new LinkedHashMap();

	private static Map COMPARE_SYMBOL = new LinkedHashMap();

	private static Map ALL_SYMBOL = new LinkedHashMap();

	static {
		RELATION_SYMBOL.put("AND", "AND");
		RELATION_SYMBOL.put("OR", "OR");

		OPERATOR_SYMBOL.put("+", "+");
		OPERATOR_SYMBOL.put("-", "-");
		OPERATOR_SYMBOL.put("*", "*");
		OPERATOR_SYMBOL.put("/", "/");

		COMPARE_SYMBOL.put("LIKE", "LIKE");
		COMPARE_SYMBOL.put(">", ">");
		COMPARE_SYMBOL.put(">=", ">=");
		COMPARE_SYMBOL.put("<", "<");
		COMPARE_SYMBOL.put("<=", "<=");
		COMPARE_SYMBOL.put("=", "=");
		COMPARE_SYMBOL.put("IN", "IN");
		COMPARE_SYMBOL.put("NOT IN", "NOT IN");

		ALL_SYMBOL.putAll(RELATION_SYMBOL);
		ALL_SYMBOL.putAll(OPERATOR_SYMBOL);
		ALL_SYMBOL.putAll(COMPARE_SYMBOL);
	}

	public Collection get_viewList(String application) throws Exception {
		ViewProcess vp = (ViewProcess) ProcessFactory
				.createProcess((ViewProcess.class));
		return vp.getViewsByModule(this.getModuleid(), application);
	}

	public static String get_Styleid(String viewid) throws Exception {
		ViewProcess vp = (ViewProcess) ProcessFactory
				.createProcess((ViewProcess.class));
		View vw = (View) vp.doView(viewid);
		if (vw != null && vw.getStyle() != null) {
			return vw.getStyle().getId();
		} else
			return null;
	}

	public Map get_MenuTree(String application) throws Exception {
		ResourceProcess rp = (ResourceProcess) ProcessFactory
				.createProcess((ResourceProcess.class));
		Collection dc = rp.doSimpleQuery(null, application);
		Map dm = rp.deepSearchMenuTree(dc, null, null, 0);
		return dm;
	}

	public Collection get_searchForm(String application) throws Exception {
		FormProcess fp = (FormProcess) ProcessFactory
				.createProcess((FormProcess.class));
		Collection searchForms = fp.getSearchFormsByModule(moduleid,
				application);
		return searchForms;
	}

	public String convertValuesMapToPage(String formid, String viewid,
			String actfield, String userid, Map valuesMap) throws Exception {
		StringBuffer html = new StringBuffer();
		for (Iterator iter = valuesMap.keySet().iterator(); iter.hasNext();) {
			String key = (String) iter.next();
			html.append("<input type='hidden' name='").append(key).append(
					"' value='").append(valuesMap.get(key)).append("'").append(
					" />");
		}
		return html.toString();
	}

	public String displayViewHtml(String formid, String viewid,
			String actfield, String userid, Map valuesMap, String application)
			throws Exception {
		try {
//			//PersistenceUtils.getSessionSignal().sessionSignal++;
			DocumentProcess dp = (DocumentProcess) ProcessFactory
					.createProcess(DocumentProcess.class);

			ViewProcess vp = (ViewProcess) ProcessFactory
					.createProcess(ViewProcess.class);

			View view = (View) vp.doView(viewid);

			FormProcess fp = (FormProcess) ProcessFactory
					.createProcess(FormProcess.class);

			Form form = (Form) fp.doView(formid);

			// 显示Column
			StringBuffer html = new StringBuffer();
			html.append("<table width='100%'>");
			html.append("<tr>");
			Collection columns = view.getColumns();
			for (Iterator iter = columns.iterator(); iter.hasNext();) {
				Column clm = (Column) iter.next();
				html
						.append("<td")
						.append(
								clm.getWidth() != null
										&& clm.getWidth().trim().length() > 0 ? " width='"
										+ clm.getWidth() + "'"
										: "").append(">").append(clm.getName())
						.append("</td>");
			}

			String js = view.getFilterScript();
			if (js != null && js.trim().length() > 0) {
				ParamsTable params = new ParamsTable();
				params.putAll(valuesMap);

				UserProcess up = (UserProcess) ProcessFactory
						.createProcess(UserProcess.class);
				UserVO uservo = (UserVO) up.doView(userid);
				WebUser user = new WebUser(uservo);
				ArrayList errors = new ArrayList();

				Document currdoc = new Document();
				currdoc = form.createDocument(currdoc, params, false, user);

				JavaScriptRunner runner = JavaScriptRunner.getInstance();
				runner.initBSFManager(currdoc, params, user, errors,
						getApplicationid());
				Object result = runner.run(js);

				if (result != null && result instanceof String) {
					String dql = (String) result;
					DataPackage datas = dp.queryByDQL(dql, application);
					// 显示数据
					if (datas != null && datas.datas != null)
						for (Iterator iter = datas.datas.iterator(); iter
								.hasNext();) {
							Document doc = (Document) iter.next();
							runner.initBSFManager(doc, params, user, errors,
									getApplicationid());
							html
									.append("<tr bgcolor='#999999' style='cursor:hand' onclick='document.all(\""
											+ actfield
											+ "\").value=\""
											+ doc.getId()
											+ "\";dy_refresh(\""
											+ actfield + "\");cClick();'>");
							for (Iterator iter2 = columns.iterator(); iter2
									.hasNext();) {
								Column col = (Column) iter2.next();
								if (col.getType() != null
										&& col.getType().equals(
												Column.COLUMN_TYPE_SCRIPT)) {
									html.append("<td nowarp>").append(
											runner.run(col.getValueScript()))
											.append("</td>");
								} else if (col.getType() != null
										&& col.getType().equals(
												Column.COLUMN_TYPE_FIELD)) {
									html.append("<td nowarp>").append(
											doc.getItemValueAsString(col
													.getFieldName())).append(
											"</td>");
								}
							}
							html.append("</tr>");
						}
				}
			}

			html.append("</table>");
			return html.toString();

		} finally {
//			//PersistenceUtils.getSessionSignal().sessionSignal--;
			PersistenceUtils.closeSession();
		}
	}
}

⌨️ 快捷键说明

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