package com.vci.client.uif.actions.client;
|
|
import java.util.Map;
|
|
import com.vci.client.bof.ClientBusinessObject;
|
import com.vci.client.ui.swing.components.VCIJDialog;
|
import com.vci.client.uif.engine.client.ChooseBusinessObjectDialog;
|
import com.vci.client.uif.engine.client.objopt.ObjectAddEditDialog;
|
import com.vci.client.uif.engine.common.DefaultTableNode;
|
import com.vci.mw.ClientContextVariable;
|
|
/**
|
* 选择添加to端对象的选择事件
|
* 负责打开选择窗口
|
* 出窗口没有doAfter事件,在doPost完成后直接终止后续动作
|
* @author VCI-STGK006
|
*
|
*/
|
public class ChooseSelectAction extends DoseNotSelectDataAction{
|
|
/**
|
* 按钮参数
|
*/
|
private Map<String, String> paramsMap = null;
|
|
@Override
|
public String getKey() {
|
return "chooseselect";
|
}
|
|
@Override
|
public boolean checkHasRight(){
|
return true;
|
}
|
|
@Override
|
public boolean doPost() {
|
try {
|
//获得按钮参数
|
paramsMap = getButtonParams();
|
//得到打开窗口的上下文信息
|
String type = paramsMap.get("type");
|
String context = paramsMap.get("context");
|
if(type == null || type.equals("") || context == null || context.equals("")){
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.syserror.parmerror", "");
|
return false;
|
}
|
|
//用户输入属性 期中以t_oid开始的为业务对象属性,其它为link对象属性
|
//获得按钮所属窗口,此窗口一定要是一个弹出窗口
|
//并且窗口的类型一定是ObjectAddEditDialog
|
ObjectAddEditDialog oaed = null;
|
VCIJDialog dialog = getOwnerDialog();
|
if(dialog instanceof ObjectAddEditDialog){
|
oaed = (ObjectAddEditDialog) dialog;
|
}
|
if(oaed == null){
|
return false;
|
}
|
|
//构建选择窗口
|
ChooseBusinessObjectDialog cbd = new ChooseBusinessObjectDialog(
|
ClientContextVariable.getFrame(), type, context, false, "");
|
if(cbd.isOk()){
|
//得到用户所选数据
|
Object[] selectedDatas = cbd.getSelectedData();
|
//验证选择的数据类型,在选择窗口中只允许选择业务对象数据,
|
//但是如果按钮配置错误有可能会选择成link类型数据
|
DefaultTableNode dtn = (DefaultTableNode) selectedDatas[0];
|
if(!(dtn.getMaterObject() instanceof ClientBusinessObject)){
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.syserror.parmerror", "");
|
return false;
|
}
|
//设置用户选择数据
|
oaed.setSelectedDatas(selectedDatas);
|
oaed.getOaep().setValueToUIControl(dtn, oaed.getTypeFlag());
|
}
|
return false;
|
} catch (Exception e){
|
UIFUtils.showErrorMessage(ClientContextVariable.getFrame(), e);
|
return false;
|
}
|
}
|
|
}
|