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

📄 textareafield.java

📁 OBPM是一个开源
💻 JAVA
字号:
//Source file:
//C:\\Java\\workspace\\SmartWeb3\\src\\com\\cyberway\\dynaform\\form\\ejb\\InputField.java

package cn.myapps.core.dynaform.form.ejb;

import cn.myapps.base.action.ParamsTable;
import cn.myapps.core.dynaform.PermissionType;
import cn.myapps.core.dynaform.document.ejb.Document;
import cn.myapps.core.dynaform.document.ejb.Item;
import cn.myapps.core.macro.runner.JavaScriptRunner;
import cn.myapps.core.user.action.WebUser;
import cn.myapps.core.validate.repository.ejb.ValidateRepositoryProcess;
import cn.myapps.core.validate.repository.ejb.ValidateRepositoryVO;
import cn.myapps.util.Debug;
import cn.myapps.util.HtmlEncoder;
import cn.myapps.util.ProcessFactory;
import cn.myapps.util.StringUtil;

public class TextareaField extends FormField {

	protected static String cssClass = "textarea-cmd";

	protected String validateLibs = "";

	public String getValidateLibs() {
		return validateLibs;
	}

	public void setValidateLibs(String validateLibs) {
		this.validateLibs = validateLibs;
	}

	/**
	 * @roseuid 41ECB66E012A
	 */
	public TextareaField() {

	}

	/**
	 * @return boolean
	 * @roseuid 41ECB66E013E
	 */
	public ValidateMessage validate(JavaScriptRunner runner, Document doc)
			throws Exception {
		Object result = null;
		String rtn = "";
		ValidateMessage msg = new ValidateMessage();
		if (getValidateLibs() != null && getValidateLibs().trim().length() > 0) {
			String libs[] = getValidateLibs().split(";");
			ValidateRepositoryProcess vp = (ValidateRepositoryProcess) ProcessFactory
					.createProcess(ValidateRepositoryProcess.class);
			for (int i = 0; i < libs.length; i++) {
				ValidateRepositoryVO vo = (ValidateRepositoryVO) vp
						.doView(libs[i]);
				String cotent = "";
				String functionName = getFunctionNames(vo.getContent());
				if (functionName != null) {
					cotent += functionName + "('" + getName() + "');";
					cotent += vo.getContent();
					Object obj = runner.run(cotent);
					if (obj instanceof String) {
						rtn += (String) obj;
					}
				}
			}
		}

		if (getValidateRule() != null && getValidateRule().trim().length() > 0) {
			result = runner.run(StringUtil.dencodeHTML(getValidateRule()));
			System.out.print(getValidateLibs());
			// Item item = doc.findItem(this.getName());
			if (result instanceof String) {
				String rs = (String) result;
				if (rs != null && rs.trim().length() > 0) {
					rtn += rs;

				}
			}
		}

		if (rtn != null && rtn.trim().length() > 0) {
			msg.setFieldname(this.getName());
			msg.setErrmessage(rtn);
			return msg;
		} else
			return null;
	}

	public String getFunctionNames(String content) {

		if (content == null || content.trim().length() == 0)
			return null;
		int i = content.indexOf("function");
		int j = content.substring(i + 8, content.length()).indexOf("(");
		String functionname = content.substring(i + 8, i + 8 + j);
		if (functionname != null && functionname.trim().length() > 0)
			return functionname;
		else
			return null;
	}

	/**
	 * @roseuid 41ECB66E0152
	 */
	public void store() {

	}

	/**
	 * @param doc
	 * @return java.lang.String
	 * @throws Exception
	 * @roseuid 41ECB66E015C
	 */
	public String toHtmlTxt(ParamsTable params, WebUser user,
			JavaScriptRunner runner, Document doc) throws Exception {

		StringBuffer html = new StringBuffer();
		int displayType = getDisplayType(runner, doc);

		if (displayType == PermissionType.HIDDEN) {// 节点设置对应field隐藏
			return "(hidden)";
		} else {
			if (doc == null) {

				html.append("<textarea");
				html.append(" id='" + getId() + "'");
				html.append(" name='" + getName() + "'");
				if (isRefreshOnChanged()) {
					html.append(" onchange='dy_refresh(this.name)'");
				}
				html.append(toOtherpropsHtml());
				if (displayType == PermissionType.READONLY) {
					html.append(" readonly ");
				} else if (displayType == PermissionType.DISABLED) {
					html.append(" disabled ");
				}
				html.append(" class='" + cssClass + "'");
				html.append(">");
				html.append("</textarea>");

			} else {
				html.append("<textarea");
				html.append(" id='" + getId() + "'");
				html.append(" name='" + getName() + "'");

				html.append(toOtherpropsHtml());

				if (displayType == PermissionType.READONLY) {
					html.append(" readonly ");
				} else if (displayType == PermissionType.DISABLED) {
					html.append(" disabled ");
				}

				html.append(" class='" + cssClass + "'");
				html.append(">");
				Item item = doc.findItem(this.getName());
				if (item != null && item.getValue() != null) {
					html.append(HtmlEncoder.encode(item.getValue() + ""));
				}

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

	}

	public String toPrintHtmlTxt(ParamsTable params, WebUser user,
			JavaScriptRunner runner, Document doc) throws Exception {
		StringBuffer html = new StringBuffer();

		if (doc != null) {
			Item item = doc.findItem(this.getName());

			if (item != null && item.getValue() != null) {
				html.append("<SPAN style=\"FONT-SIZE: 9pt\">");
				html.append(item.getValue() + "");
				html.append("</SPAN>");
			}
		}
		return html.toString();
	}

	public String toTemplate() {
		StringBuffer template = new StringBuffer();
		template.append("<textarea'");
		template.append(" className='" + this.getClass().getName() + "'");
		template.append(" id='" + getId() + "'");
		template.append(" name='" + getName() + "'");
		template.append(" formid='" + getFormid() + "'");
		template.append(" discript='" + getDiscript() + "'");
		template.append(" hiddenScript='" + getHiddenScript() + "'");
		template.append(" hiddenPrintScript='" + getHiddenPrintScript() + "'");
		template.append(" refreshOnChanged='" + isRefreshOnChanged() + "'");
		template.append(" validateRule='" + getValidateRule() + "'");
		template.append(" valueScript='" + getValueScript() + "'");
		template.append(">");
		return template.toString();
	}

	/**
	 * 重新计算
	 * 
	 * @roseuid 41DB89D700F9
	 */
	public void recalculate(JavaScriptRunner runner, Document doc)
			throws Exception {
		Debug.println("InputField.recalculate");
		runValueScript(runner, doc);
	}

	/*
	 * 运行计算Field值Script,返回值即为计算结果。
	 * 
	 * @return java.lang.String @roseuid 41DB8C1E03E7
	 */
	public Object runValueScript(JavaScriptRunner runner, Document doc)
			throws Exception {
		Object result = null;

		if (getValueScript() != null && getValueScript().trim().length() > 0) {
			Debug.println("JavaScript->"
					+ StringUtil.dencodeHTML(getValueScript()));
			result = runner.run(StringUtil.dencodeHTML(getValueScript()));
			Item item = doc.findItem(this.getName());
			item.setValue(result);
		}
		return result;
	}
}
/*
 * FormField InputField.init(java.lang.String){ return null; }
 */

⌨️ 快捷键说明

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