📄 tagfield.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 + -