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