package com.vci.client.uif.actions.client.changestatus;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
import com.vci.client.bof.ClientBusinessObject;
|
import com.vci.client.ui.swing.components.VCIJOptionPane;
|
import com.vci.client.uif.actions.client.RightCheckConstants;
|
import com.vci.client.uif.actions.client.UIFUtils;
|
import com.vci.corba.omd.lcm.TransitionVO;
|
import com.vci.mw.ClientContextVariable;
|
|
/**
|
* 业务类型启用action
|
* @author VCI_STGK_Lincq
|
*
|
*/
|
public class DisableAction extends AbstractSelectDataAction {
|
|
/**
|
* 操作方法集合
|
*/
|
private UIFUtils operation = new UIFUtils();
|
/**
|
* 按钮参数
|
*/
|
private Map<String, String> paramsMap = null;
|
/**
|
* 目标状态
|
*/
|
String targetStatus = "";
|
|
public DisableAction() {
|
super();
|
}
|
|
@Override
|
public String getKey() {
|
return DISABLE;
|
}
|
|
@Override
|
public boolean checkHasRight(){
|
// 按BO进行数据权限检查
|
setDataRightCheckType(RightCheckConstants.RIGHT_CHECK_TYPE_B);
|
return super.checkHasRight();
|
}
|
|
@Override
|
public boolean beforePost() {
|
boolean res = false;
|
Object[] objs = getDataModel().getSelectObjects();
|
if(objs == null || objs.length < 1){
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.chooseData");
|
return false;
|
}
|
//启用前确认
|
if(getQuestionDialogResult(UIFUtils.getI18nString("uifmodel.plm.uif.actions.confirmDisableData")) == VCIJOptionPane.OK_OPTION){
|
res = true;
|
} else {
|
res = false;
|
}
|
return res;
|
}
|
|
@SuppressWarnings("rawtypes")
|
@Override
|
public boolean doPost() {
|
paramsMap = getButtonParams();
|
if(paramsMap.containsKey("targetStatus")){
|
String value = paramsMap.get("targetStatus");
|
if (value == null || value.trim().equals("")) {
|
UIFUtils.showMessage(ClientContextVariable.getFrame(),
|
"uifmodel.plm.uif.actions.statusIsNull");
|
return false;
|
}
|
targetStatus = value;
|
}
|
Object[] objs = getDataModel().getSelectObjects();
|
List<ClientBusinessObject> cboList = new ArrayList<ClientBusinessObject>();
|
boolean isDataRight = this.getSelectData(objs, cboList);
|
if (!isDataRight) {
|
return isDataRight;
|
}
|
|
boolean success = false;
|
if(!cboList.isEmpty()){
|
List<ClientBusinessObject> validBoList = new ArrayList<ClientBusinessObject>();
|
for (int i = 0; i< cboList.size(); i++) {
|
if (!cboList.get(i).getLcStatus().equals(targetStatus)) {
|
validBoList.add(cboList.get(i));
|
}
|
}
|
if (validBoList.size() < 1) {
|
return true;
|
}
|
TransitionVO[] vos = new TransitionVO[validBoList.size()];
|
TransitionVO vo = null;
|
for (int i = 0; i < vos.length; i++) {
|
vo = new TransitionVO();
|
vo.source = validBoList.get(i).getLcStatus();
|
vo.destination = targetStatus;
|
vos[i] = vo;
|
}
|
success = operation.disableBusinessObject(ClientContextVariable.getFrame(), validBoList.toArray(new ClientBusinessObject[0]), vos);
|
}
|
return success;
|
}
|
}
|