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

📄 tagfield.java

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

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

import cn.myapps.base.action.ParamsTable;
import cn.myapps.core.dynaform.PermissionType;
import cn.myapps.core.dynaform.document.ejb.Document;
import cn.myapps.core.macro.runner.JavaScriptRunner;
import cn.myapps.core.user.action.WebUser;
import cn.myapps.util.ProcessFactory;
import cn.myapps.util.StringUtil;

public class TagField extends FormField {
	protected String relStr = "";

	public static String KEY_NAME = "name";

	public static String KEY_FORMID = "formId";

	public static String KEY_HIDDENSCRIPT = "hiddenScript";

	public ValidateMessage validate(JavaScriptRunner runner, Document doc)
			throws Exception {
		return null;
	}

	public String toTemplate() {
		StringBuffer template = new StringBuffer();
		template.append("<span");
		template.append(" className='" + this.getClass().getName() + "'");
		template.append(" id='" + getId() + "'");
		template.append(" relStr='" + getRelStr() + "'");
		template.append("/>");
		return template.toString();
	}

	public String toHtmlTxt(ParamsTable params, WebUser user,
			JavaScriptRunner runner, Document doc) throws Exception {
		StringBuffer html = new StringBuffer();
		Collection tabEls = getElements(StringUtil.dencodeHTML(relStr));
		html.append(addScript());
		html.append("<DIV id=\"" + getId() + "\" class=\"basictab\">");
		html.append("<ul>");
		int index = 0;
		boolean isHidden = false;
		for (Iterator iter = tabEls.iterator(); iter.hasNext();) {
			Map el = (Map) iter.next();
			String name = (String) el.get(KEY_NAME);
			setHiddenScript((String) el.get(KEY_HIDDENSCRIPT));
			isHidden = runHiddenScript(runner, doc);
			if (isHidden) {
				continue;
			}
			html.append("<li><a href=\"#\" rel=\"" + getId() + index + "\">"
					+ StringUtil.dencodeHTML(name) + "</a></li>");
			index++;
		}
		html.append("</ul>");
		html.append("</DIV>");

		index = 0;
		html.append("<DIV class=\"tabcontainer\">");
		try {
			FormProcess fp = (FormProcess) ProcessFactory
					.createProcess(FormProcess.class);

			for (Iterator iter = tabEls.iterator(); iter.hasNext();) {
				Map el = (Map) iter.next();
				String formId = (String) el.get(KEY_FORMID);
				setHiddenScript((String) el.get(KEY_HIDDENSCRIPT));
				isHidden = runHiddenScript(runner, doc);
				if (isHidden) {
					continue;
				}
				Form form = (Form) fp.doView(formId);

				html.append("<div id=\"" + getId() + index
						+ "\" class=\"tabcontent\">");
				if (form != null) {
					if (!get_form().getId().equals(form.getId())) {
						if (getDisplayType(runner, doc) != PermissionType.MODIFY) {
							form.setEditmodal(false);
						}
						html.append(form.toHtml(doc, params, user,
								new ArrayList(), false));
					}
				}
				html.append("</div>");
				index++;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		html.append("</DIV>");
		return html.toString();
	}

	public String toPrintHtmlTxt(ParamsTable params, WebUser user,
			JavaScriptRunner runner, Document doc) throws Exception {
		StringBuffer html = new StringBuffer();
		Collection tabEls = getElements(StringUtil.dencodeHTML(relStr));
		// html.append("<DIV id=\"" + getId() + "\" class=\"basictab\">");
		html.append("<DIV id=\"" + getId() + "\">");
		int index = 0;
		boolean isHidden = false;
		html.append("</DIV>");

		index = 0;
		html.append("<DIV>");
		try {
			FormProcess fp = (FormProcess) ProcessFactory
					.createProcess(FormProcess.class);

			for (Iterator iter = tabEls.iterator(); iter.hasNext();) {
				Map el = (Map) iter.next();
				String formId = (String) el.get(KEY_FORMID);
				setHiddenScript((String) el.get(KEY_HIDDENSCRIPT));
				isHidden = runHiddenScript(runner, doc);
				if (isHidden) {
					continue;
				}
				Form form = (Form) fp.doView(formId);

				html.append("<div id=\"" + getId() + index + "\">");
				if (form != null) {
					if (!get_form().getId().equals(form.getId())) {
						html.append(form.toPrintHtmlTxt(doc, params, user,
								new ArrayList()));
					}
				}
				html.append("</div>");
				index++;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		html.append("</DIV>");
		return html.toString();
	}

	private static Collection getElements(String str) {
		Collection rtn = new ArrayList();
		if (str.indexOf("[") != -1 && str.indexOf("]") != -1) {
			str.substring(str.indexOf("[") + 1, str.indexOf("]"));
			int formIndex = 0;
			while (str.indexOf("{", formIndex) != -1) {
				Map map = new HashMap();
				int start = str.indexOf("{", formIndex);
				int end = str.indexOf("}", formIndex);
				String content = str.substring(start + 1, end);
				String[] values = content.split(",");
				for (int i = 0; i < values.length; i++) {
					String[] elements = values[i].split(":");
					map.put(elements[0], elements[1].replaceAll("'", ""));
				}
				rtn.add(map);
				formIndex = end + 1;
			}
		}

		return rtn;
	}

	private String addScript() {
		StringBuffer script = new StringBuffer();
		script.append("<script language='JavaScript'>");
		script.append("ddtabmenu.definemenu(\"" + getId() + "\", 0)");
		script.append("</script>");

		return script.toString();
	}

	public Collection getForms() throws Exception {
		Collection rtn = new ArrayList();
		Collection tabEls = getElements(StringUtil.dencodeHTML(relStr));
		for (Iterator iter = tabEls.iterator(); iter.hasNext();) {
			Map map = (Map) iter.next();
			String formid = (String) map.get(KEY_FORMID);
			FormProcess fp = (FormProcess) ProcessFactory
					.createProcess(FormProcess.class);
			Form form = (Form) fp.doView(formid);

			if (form != null) {
				rtn.add(fp.doView(formid));
			}
		}
		return rtn;
	}

	public String getRelStr() {
		return relStr;
	}

	public void setRelStr(String relStr) {
		this.relStr = relStr;
	}

	public static void main(String[] args) {
		Collection colls = getElements("[{a:'42342',b:'cccc'},{e:'fsdfsdfsd',f:'42342342423'}]");
		System.out.println(colls);
	}
}

⌨️ 快捷键说明

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