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 EnableAction extends AbstractSelectDataAction { /** * 操作方法集合 */ private UIFUtils operation = new UIFUtils(); /** * 按钮参数 */ private Map paramsMap = null; /** * 目标状态 */ String targetStatus = ""; public EnableAction() { super(); } @Override public String getKey() { return ENABLE; } @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.confirmEnableData")) == 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 cboList = new ArrayList(); boolean isDataRight = this.getSelectData(objs, cboList); if (!isDataRight) { return isDataRight; } boolean success = false; if(!cboList.isEmpty()){ List validBoList = new ArrayList(); 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.enableBusinessObject(ClientContextVariable.getFrame(), validBoList.toArray(new ClientBusinessObject[0]), vos); } return success; } }