wangting
2024-09-27 a3e87f78ee262ca9bb7d9b0c997639d5f3295890
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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 的子类型,必须实现以下两个方法
 * <p><pre>
 * public String getKey();
 * public boolean doPost();
 * </pre></p>
 */
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;
    }
}