package com.vci.client.uif.actions.client.changestatus;
|
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.swing.JOptionPane;
|
|
import com.vci.client.bof.ClientBusinessObject;
|
import com.vci.client.bof.ClientLinkObject;
|
import com.vci.client.ui.swing.VCIOptionPane;
|
import com.vci.client.uif.actions.client.AbstractBatchBusionessOperationAction;
|
import com.vci.client.uif.actions.client.UIFUtils;
|
import com.vci.client.uif.engine.common.IDataNode;
|
import com.vci.mw.ClientContextVariable;
|
|
public abstract class AbstractSelectDataAction extends AbstractBatchBusionessOperationAction{
|
|
protected UIFUtils operation = new UIFUtils();
|
|
/**
|
* 从选择的对象中构建对应的BO
|
* @param objs,选择对象
|
* @param cboList,构建结果
|
* @return
|
*/
|
public boolean getSelectData(Object[] objs, List<ClientBusinessObject> cboList) {
|
for(int i = 0; i < objs.length; i++){
|
if(objs[i] instanceof Map){
|
//做一个特殊处理,当选择值是一个Map时,获得Map中的OID和BtmName属性
|
String oid = (String) ((Map)objs[i]).get("OID");
|
String btmName = (String) ((Map)objs[i]).get("BTMNAME");
|
String ts = (String)((Map)objs[i]).get("TS");
|
String lcId = (String)((Map)objs[i]).get("LCTID");
|
String lcStatus = (String)((Map)objs[i]).get("LCSTATUS");
|
if(oid != null && !oid.equals("")
|
&& btmName != null && !btmName.equals("")
|
&& ts != null && !ts.equals("")
|
&& lcId != null && !lcId.equals("")
|
&& lcStatus != null && !lcStatus.equals("")){
|
ClientBusinessObject cbo = new ClientBusinessObject();
|
cbo.setOid(oid);
|
cbo.setBtmName(btmName);
|
cbo.setTs(Long.valueOf(ts));
|
cbo.setLastModifier(ClientContextVariable.getInvocationInfo().userName);
|
cbo.setLctId(lcId);
|
cbo.setLcStatus(lcStatus);
|
cboList.add(cbo);
|
}
|
} else if(objs[i] instanceof IDataNode){
|
IDataNode dtn = (IDataNode) objs[i];
|
try {
|
//判断主对象类型
|
if(dtn.getMaterObject() instanceof ClientBusinessObject){
|
//如果是业务类型
|
ClientBusinessObject cbo = (ClientBusinessObject) dtn.getMaterObject();
|
if(cbo == null){
|
int confirm = VCIOptionPane.showConfirmDialog(
|
ClientContextVariable.getFrame(), "“" + this.getParameterValue(ValueType.RuntimeData, "name", i)
|
+"”不存在或者已经被删除.", "系统提示",JOptionPane.YES_NO_OPTION);
|
if(confirm == JOptionPane.NO_OPTION){
|
return false;
|
}
|
}
|
cboList.add(cbo);
|
} else if (dtn.getMaterObject() instanceof ClientLinkObject){
|
//如果是link类型
|
String oid = this.getParameterValue(ValueType.RuntimeData, "t_oid", i);
|
String btmName = this.getParameterValue(ValueType.RuntimeData, "t_btwname", i);
|
//如果操作所需参数不存在则直接停止操作
|
if(oid == null || oid.equals("") ||btmName == null || btmName.equals("")){
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.syserror.parmerror.bo");
|
return false;
|
}
|
//需要重新下载cbo对象
|
ClientBusinessObject cbo = operation
|
.reloadClientBusinessObject(ClientContextVariable.getFrame(), oid, btmName);
|
//对象不存在或者已经被删除
|
if(cbo.getBusinessObject().oid == null || cbo.getBusinessObject().oid.equals("")){
|
int confirm = VCIOptionPane.showConfirmDialog(
|
ClientContextVariable.getFrame(), "“" + this.getParameterValue(ValueType.RuntimeData, "t_oid.name", i)
|
+"”不存在或者已经被删除.", "系统提示",JOptionPane.YES_NO_OPTION);
|
if(confirm == JOptionPane.NO_OPTION){
|
return false;
|
}
|
} else {
|
cboList.add(cbo);
|
}
|
} else if (dtn.getMaterObject() instanceof String){
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.engine.folder.root.delete", "");
|
return false;
|
}
|
|
} catch (Exception e){
|
UIFUtils.showErrorMessage(
|
ClientContextVariable.getFrame(), "uifmodel.plm.uif.actions.editboerror", e);
|
int confirm = VCIOptionPane.showConfirmDialog(ClientContextVariable.getFrame(),"系统加载对象“"
|
+ dtn.getValueMap().get("name") +"”时发生异常.“" + this.getParameterValue(ValueType.RuntimeData, "name", i)
|
+ "”当前操作可能会失败\n是否继续执行操作?", "系统提示",JOptionPane.YES_NO_OPTION);
|
if(confirm == JOptionPane.NO_OPTION){
|
return false;
|
}
|
}
|
}
|
}
|
return true;
|
}
|
}
|