package com.vci.client.uif.actions.client; import javax.swing.JOptionPane; import com.vci.client.common.ConfigUtils; import com.vci.client.ui.swing.components.VCIJOptionPane; import com.vci.client.uif.engine.client.objopt.ObjectAddEditDialog; import com.vci.client.uif.engine.common.IDataNode; /** * 此抽象类为 BussinessOperationAction 接口大多数方法提供默认实现。 * 要创建一个具体的 BussinessOperationAction 作为 AbstractBusionessOperationAction 的子类型,必须实现以下两个方法 *

 * public String getKey();
 * public boolean doPost();
 * 

*/ public abstract class AbstractBusionessOperationAction extends AbstractBatchBusionessOperationAction { public AbstractBusionessOperationAction(){ } /** * Action框架主入口,继承复写请慎重... */ public boolean doAction(){ boolean res = false; if(!isSelectedObject()) return false; Object[] objs = getDataModel().getSelectObjects(); if(objs.length > 1){ VCIJOptionPane.showMessageDialog( getParentComponent(), "只能选择一条数据进行此操作!", "提示", JOptionPane.INFORMATION_MESSAGE); return false; } //判断是否需要进行数据权限校验 String rightSwitch = ConfigUtils.getConfigValue("right.switch"); if(rightSwitch != null && rightSwitch.equals("on")){ // 权限检查,有权限时才执行后续的操作 if(!checkHasRight()){ VCIJOptionPane.showMessageDialog( getParentComponent(), "您没有权限进行此操作!", "提示", JOptionPane.INFORMATION_MESSAGE); return false; } } // 在选定了数据及有权限之后,执行 res = doActionDetailBySelectedObject(); return res; } /** * 返回设置了新打开(弹出窗口)上下文模块里的inputdata * @param oad * @return oad */ protected ObjectAddEditDialog setTargetUILayoutPanelInputData(ObjectAddEditDialog oad){ // add by xchao 2015.08.12 // 设置新打开的上下文模块的inputdata // 设置值类型:sourceData、inputData、selectData String inputDataType = getParameterValue(ValueType.ButtonConfig, "inputDataType", -1); if(inputDataType != null && !inputDataType.equals("") && !inputDataType.equals("inputDataType")){ if(inputDataType.equalsIgnoreCase("sourceData")){ // 按钮所在区域的 sourceData 作为新打开上下文模块的 inputData oad.setInputDataNode(oad.getSourceDataNode()); } else if(inputDataType.equalsIgnoreCase("inputData")){ // 将按钮所在区域的 inputData 作为新打开上下文模块的 inputData oad.setInputDataNode(getRegionPanel().getBaseLayoutPanel().getInputData()); } else if(inputDataType.equalsIgnoreCase("selectData")){ // 将按钮所在区域所选择的数据作为 作为新打开上下文模块的 inputData oad.setInputDataNode((IDataNode)getDataModel().getSelectObjects()[0]); } } // add by xchao 2015.08.12 end return oad; } }