package com.vci.client.uif.actions.client;
|
|
import java.util.Map;
|
|
import com.vci.client.portal.utility.PLDefination;
|
import com.vci.client.portal.utility.UITools;
|
import com.vci.client.ui.swing.components.VCIJOptionPane;
|
import com.vci.client.ui.swing.components.VCIJDialog.DialogResult;
|
import com.vci.client.uif.engine.client.UIHelper;
|
import com.vci.client.uif.engine.client.objopt.ObjectAddEditDialog;
|
import com.vci.client.uif.engine.common.IDataNode;
|
import com.vci.corba.portal.data.PortalVI;
|
import com.vci.mw.ClientContextVariable;
|
|
/**
|
* link类型创建按钮事件
|
* 参数信息:
|
* type(创建业务对象类型)
|
* formName(创建时使用的表单,表单form和linkform都可)
|
* frombooid(from端OID)
|
* fromboBtmName(from端类型)
|
* linkType(链接的类型)
|
* @author VCI-STGK006
|
*
|
*/
|
public class AddLinkAction extends DoseNotSelectDataHasRightCheckAction{
|
|
/**
|
* 判断是创建有link属性的BO,还是创建没有link属性的BO
|
* 0:无link属性(业务类型),1:有link属性(有链接属性)
|
*/
|
private int operationType = 0;
|
|
/**
|
* 是否需要先选择数据然后执行创建操作
|
* 默认为false
|
*/
|
boolean needSelect = false;
|
|
/**
|
* 按钮参数信息
|
*/
|
private Map<String, String> paramsMap;
|
public AddLinkAction(){
|
super();
|
}
|
|
@Override
|
public String getKey() {
|
return "addlink";
|
}
|
|
@Override
|
public boolean checkHasRight(){
|
// 按LBO进行数据权限检查
|
setDataRightCheckType(RightCheckConstants.RIGHT_CHECK_TYPE_FB);
|
return super.checkHasRight();
|
}
|
|
/**
|
* 判断执行Action任务之前是否需要先选择数据
|
*/
|
public boolean beforePost() {
|
|
//获得按钮参数
|
paramsMap = getButtonParams();
|
if(paramsMap.containsKey("needselect")){
|
String value = paramsMap.get("needselect");
|
if(value.equalsIgnoreCase("true")){
|
needSelect = true;
|
}
|
}
|
if(needSelect){
|
if(!isSelectedObject()) return false;
|
|
Object[] objs = getDataModel().getSelectObjects();
|
if(objs.length > 1){
|
VCIJOptionPane.showMessage(getParentComponent(), "只能选择一条数据执行创建操作!");
|
return false;
|
}
|
}
|
return true;
|
}
|
|
@Override
|
public boolean doPost() {
|
try {
|
//获得按钮参数
|
paramsMap = getButtonParams();
|
//得到打开窗口的上下文信息
|
String type = paramsMap.get("type");
|
String context = paramsMap.get("context");
|
String directionStr = paramsMap.get("direction");
|
if(type == null || type.equals("") || context == null || context.equals("")){
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.syserror.parmerror", "");
|
return false;
|
}
|
/**
|
* 判断是否是正向还是反向
|
*/
|
boolean direction = true;
|
if(directionStr != null && directionStr.trim().equalsIgnoreCase("false")){
|
direction = false;
|
}
|
//获得按钮打开窗口的PLDefination
|
PLDefination plDef = getDefination(type, context);
|
if(plDef == null){
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.syserror.configerror.notformname", type, context);
|
return false;
|
}
|
String formName = plDef.getTemplateId();
|
if(formName == null || formName.equals("")){
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.syserror.configerror.notformname", type, context);
|
return false;
|
}
|
PortalVI sheet = UITools.getService().getPortalVIBySymbol(formName);
|
//确定使用表单类型
|
if(sheet != null){
|
this.operationType = sheet.typeFlag;
|
}
|
ObjectAddEditDialog oad = new ObjectAddEditDialog(type, context,
|
plDef, paramsMap, ObjectAddEditDialog.OperateType.ADD, null, this);
|
oad.setSelectObjects(getDataModel().getSelectObjects());
|
oad.setTypeFlag(operationType);
|
oad.setDirection(direction);
|
//获得sourceDate,source可能来自用户选择的数据,也可能来自父窗口传递的数据
|
if(needSelect){
|
oad.setSourceDataNode((IDataNode)getDataModel().getSelectObjects()[0]);
|
} else {
|
oad.setSourceDataNode(getRegionPanel().getSourceData());
|
}
|
// add by xchao 2015.08.12
|
// 设置新打开的上下文模块的inputdata
|
// 设置值类型:sourceData、inputData、selectData
|
oad = super.setTargetUILayoutPanelInputData(oad);
|
// add by xchao 2015.08.12 end
|
oad.init();
|
oad.setSize(UIHelper.DIALOG_DEFAULT_WIDTH, UIHelper.DIALOG_DEFAULT_HEIGHT);
|
oad.setLocationRelativeTo(ClientContextVariable.getFrame());
|
oad.setVisible(true);
|
if(oad.getDialogResult() == DialogResult.OK){
|
return true;
|
} else {
|
return false;
|
}
|
} catch (Throwable e) {
|
UIFUtils.showErrorMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.createloerror", e);
|
return false;
|
}
|
}
|
}
|