📄 wizardaction.java
字号:
package cn.myapps.core.wizard.action;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import cn.myapps.base.action.ParamsTable;
import cn.myapps.constans.Web;
import cn.myapps.core.deploy.application.ejb.ApplicationProcessBean;
import cn.myapps.core.deploy.application.ejb.ApplicationVO;
import cn.myapps.core.deploy.module.ejb.ModuleProcess;
import cn.myapps.core.deploy.module.ejb.ModuleVO;
import cn.myapps.core.dynaform.activity.ejb.Activity;
import cn.myapps.core.dynaform.activity.ejb.ActivityProcessBean;
import cn.myapps.core.dynaform.form.action.FormAction;
import cn.myapps.core.dynaform.form.ejb.Form;
import cn.myapps.core.dynaform.form.ejb.FormProcessBean;
import cn.myapps.core.dynaform.view.ejb.Column;
import cn.myapps.core.dynaform.view.ejb.ColumnProcessBean;
import cn.myapps.core.dynaform.view.ejb.View;
import cn.myapps.core.dynaform.view.ejb.ViewProcessBean;
import cn.myapps.core.resource.ejb.ResourceProcess;
import cn.myapps.core.resource.ejb.ResourceType;
import cn.myapps.core.resource.ejb.ResourceVO;
import cn.myapps.core.user.action.WebUser;
import cn.myapps.core.user.ejb.UserVO;
import cn.myapps.core.workflow.storage.definition.ejb.BillDefiProcessBean;
import cn.myapps.core.workflow.storage.definition.ejb.BillDefiVO;
import cn.myapps.util.ProcessFactory;
import cn.myapps.util.sequence.Sequence;
import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.ActionSupport;
public class WizardAction extends ActionSupport{
private static final ThreadLocal _params = new ThreadLocal();
protected String application;
private String moduleid;
private String _formact[];
private String flowlist;
private String disField;
private String workflowname;
// the property of view
private String _viewact[];
private String viewname;
private String description;
private String superiorid;
private String opentype;
private String name;
private int type;
public static Map _FORMACLIST = new TreeMap();
public static Map _VIEWACLIST = new TreeMap();
private static Map _OPENTYPE = new TreeMap();
public static Map _WORKFLOW = new TreeMap();
static {
_OPENTYPE.put(Integer.valueOf(View.OPEN_TYPE_NORMAL), "Normal");
_OPENTYPE
.put(Integer.valueOf(View.OPEN_TYPE_POP), "Open in pop window");
_OPENTYPE.put(Integer.valueOf(View.OPEN_TYPE_PARENT),
"Open in working area");
}
static
{
//_ACLIST.put("0", "Please Choose");
_VIEWACLIST.put("1", "查询");
_VIEWACLIST.put("2", "新建");
_VIEWACLIST.put("3", "删除");
_VIEWACLIST.put("4", "修改");
// _ACLIST.put("6", "脚本处理");
// _ACLIST.put("7", "DOCUMENT_MODIFY");
_FORMACLIST.put("8", "关闭窗口");
_FORMACLIST.put("9", "保存并关闭");
_FORMACLIST.put("10", "返回");
_FORMACLIST.put("11", "保存返回");
_FORMACLIST.put("12", "保存新建");
_WORKFLOW.put("5", "流程处理");
}
private static Map _FORMTYPE = new TreeMap();
static {
_FORMTYPE.put(Integer.valueOf(Form.FORM_TYPE_NORMAL), "NORMAL");
_FORMTYPE.put(Integer.valueOf(Form.FORM_TYPE_SEARCHFORM), "SEARCHFORM");
_FORMTYPE.put(Integer.valueOf(Form.FORM_TYPE_SUBFORM), "SUBFORM");
}
public String doNew() throws Exception {
return SUCCESS;
}
public String doSaveShortHand() throws Exception
{
Form form = new Form();
FormProcessBean formbean = new FormProcessBean();
ModuleProcess mp = (ModuleProcess) ProcessFactory
.createProcess(ModuleProcess.class);
ModuleVO mv = (ModuleVO) mp.doView(moduleid);
form.setModule(mv);
if (mv != null) {
form.setApplication(mv.getApplication());
}
form.setApplicationid(this.getInstance());
form.setName(this.getName());
form.setType(this.getType());
String authorname = getUser().getLoginno();
List list = new ArrayList();
try{
ParamsTable params= this.getParams();
if(disField.equals("ture"))
{
form.setTemplatecontext("Test1:<INPUT name=test1 validateLibs dialogView fieldtype=\"VALUE_TYPE_VARCHAR\" selectDate=\"false\" textType=\"text\" readonlyScript hiddenPrintScript hiddenScript validateRule valueScript discript popToChoice=\"false\" calculateOnRefresh=\"false\" refreshOnChanged=\"false\" className=\"cn.myapps.core.dynaform.form.ejb.InputField\"> Test2:<INPUT name=test2 validateLibs=\"\" dialogView=\"\" fieldtype=\"VALUE_TYPE_VARCHAR\" selectDate=\"false\" textType=\"text\" readonlyScript=\"\" hiddenPrintScript=\"\" hiddenScript=\"\" validateRule=\"\" valueScript=\"\" discript=\"\" popToChoice=\"false\" calculateOnRefresh=\"false\" refreshOnChanged=\"false\" className=\"cn.myapps.core.dynaform.form.ejb.InputField\">");
}
formbean.doCreate(form);
// dealwith the activity of from
Activity act;
ActivityProcessBean activity = new ActivityProcessBean();
if(_formact!=null&&_formact.length>0)
{
for(int i=0;i<_formact.length;i++)
{
act = new Activity();
act.setName((String)_FORMACLIST.get(_formact[i]));
act.setType(Integer.parseInt(_formact[i]));
act.setParentForm(form);
act.setApplicationid(form.getApplicationid());
activity.doCreate(act);
}
}
if(viewname!=null&&viewname.trim().length()>0)
{
int opentype = params.getParameterAsLong("opentype").intValue();
String resourceid = params.getParameterAsString("_resourceid");
ApplicationProcessBean ap = new ApplicationProcessBean();
ApplicationVO av = (ApplicationVO)ap.doView(mv.getApplication().getId());
String filterscript = "\"$formname = '"+av.getName()+"/"+mv.getName()+"/"+form.getName()+"'\"";
View view = new View();
ViewProcessBean viewbean = new ViewProcessBean();
view.setName(viewname);
view.setOpenType(opentype);
view.setFilterScript(filterscript);
view.setModule(mv);
if (view.getId() == null || view.getId().trim().length() <= 0) {
view.setId(Sequence.getSequence());
view.setSortId(Sequence.getTimeSequence());
view.setApplicationid(params.getParameterAsString("application"));
}
ResourceProcess rp = (ResourceProcess) ProcessFactory
.createProcess(ResourceProcess.class);
ResourceVO resource = (ResourceVO) rp.doView(resourceid);
if (superiorid != null && superiorid.trim().length() > 0) {
if (resource == null) {
resource = new ResourceVO();
resource.setId(Sequence.getSequence());
resource.setSortId(Sequence.getTimeSequence());
resource.setApplicationid(params.getParameterAsString("application"));
}
ResourceVO sp = (ResourceVO) rp.doView(superiorid);
resource.setSuperior(sp);
resource.setModule(mv.getId());
resource.setApplication(mv.getApplication().getId());
resource.setDisplayView(view.getId());
resource.setDescription(description);
resource.setType(ResourceType.RESOURCE_TYPE_MENU);
// resource.setIsprotected(ResourceType.ISPROTECTED_YES);
resource.setIsprotected(false);
resource.setResourceAction(ResourceType.ACTION_TYPE_VIEW);
resource.setDisplayView(view.getId());
view.setRelatedResourceid(resource.getId());
rp.doUpdate(resource);
} else {
if (resource != null) {
rp.doRemove(resource.getId());
}
}
viewbean.doUpdate(view);
// dealwith the columne of view
if(disField.equals("ture"))
{
Column column = new Column();
Column column2 = new Column();
ColumnProcessBean cp = new ColumnProcessBean();
column.setName("Test1");
column.setType(Column.COLUMN_TYPE_FIELD);
column.setView(view);
column.setFieldName("test1");
column.setFormid(form.getId());
column.setApplicationid(params.getParameterAsString("application"));
cp.doCreate(column);
column2.setName("Test2");
column2.setType(Column.COLUMN_TYPE_FIELD);
column2.setView(view);
column2.setFieldName("test2");
column2.setFormid(form.getId());
column2.setApplicationid(params.getParameterAsString("application"));
cp.doCreate(column2);
}
// dealwith the activity of view
if(_viewact!=null&&_viewact.length>0)
{
for(int i=0;i<_viewact.length;i++)
{
act = new Activity();
act.setName((String)_VIEWACLIST.get(_viewact[i]));
act.setType(Integer.parseInt(_viewact[i]));
act.setParentView(view);
if(_viewact[i].equals("1"))
{
//get flowid and save to activitys
act.setOnActionView(view);
}else if(_viewact[i].equals("2")||_viewact[i].equals("4"))
{
act.setOnActionForm(form);
}
act.setApplicationid(form.getApplicationid());
activity.doCreate(act);
}
}
//create a new workfow
if(!authorname.equals("")&&authorname!=null)
{
StringBuffer strb = new StringBuffer();
strb.append( "<cn.myapps.core.workflow.element.FlowDiagram><ACTION_NORMAL>0</ACTION_NORMAL><ACTION_REMOVE>1</ACTION_REMOVE><ACTION_ADD_ABORTNODE>16</ACTION_ADD_ABORTNODE><ACTION_ADD_AUTONODE>17</ACTION_ADD_AUTONODE>");
strb.append("<ACTION_ADD_COMPLETENODE>18</ACTION_ADD_COMPLETENODE><ACTION_ADD_MANUALNODE>19</ACTION_ADD_MANUALNODE><ACTION_ADD_STARTNODE>20</ACTION_ADD_STARTNODE><ACTION_ADD_SUSPENDNODE>21</ACTION_ADD_SUSPENDNODE>");
strb.append("<ACTION_ADD_TERMINATENODE>22</ACTION_ADD_TERMINATENODE><ACTION_ADD_RELATION>4096</ACTION_ADD_RELATION><ACTION_EDIT_NODE>268435472</ACTION_EDIT_NODE><ACTION_EDIT_RELATION>268439552</ACTION_EDIT_RELATION>");
strb.append("<ACTION_BREAK_LINE>1048576</ACTION_BREAK_LINE><flowstatus>16</flowstatus><flowpath></flowpath><deleteMSG>null</deleteMSG><TOP_ALIGNMENT>0.0</TOP_ALIGNMENT><CENTER_ALIGNMENT>0.5</CENTER_ALIGNMENT>");
strb.append("<BOTTOM_ALIGNMENT>1.0</BOTTOM_ALIGNMENT><LEFT_ALIGNMENT>0.0</LEFT_ALIGNMENT><RIGHT_ALIGNMENT>1.0</RIGHT_ALIGNMENT><WIDTH>1</WIDTH><HEIGHT>2</HEIGHT><PROPERTIES>4</PROPERTIES><SOMEBITS>8</SOMEBITS>");
strb.append("<FRAMEBITS>16</FRAMEBITS><ALLBITS>32</ALLBITS><ERROR>64</ERROR><ABORT>128</ABORT><cn.myapps.core.workflow.element.StartNode><prenodeid></prenodeid><backnodeid></backnodeid><formname></formname>");
strb.append("<fieldpermlist></fieldpermlist><isstartandnext>false</isstartandnext><x>36</x><y>70</y><width>46</width><height>55</height><_iscurrent>false</_iscurrent><scale>0</scale><name></name><note></note><id>1181125456593</id>");
strb.append("</cn.myapps.core.workflow.element.StartNode><cn.myapps.core.workflow.element.CompleteNode><prenodeid></prenodeid><backnodeid></backnodeid><formname></formname><fieldpermlist></fieldpermlist>");
strb.append("<isstartandnext>false</isstartandnext><x>351</x><y>146</y><width>46</width><height>55</height><_iscurrent>false</_iscurrent><scale>0</scale><name></name><note></note><id>1181125467687</id></cn.myapps.core.workflow.element.CompleteNode>");
strb.append("<cn.myapps.core.workflow.element.Relation><state></state><startnodeid>1181125456593</startnodeid><endnodeid>1181125467687</endnodeid><ispassed>false</ispassed><isreturn>false</isreturn><condition></condition><action></action><pointstack>36;70;351;146</pointstack>");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -