wangting
2024-12-26 fa261e8c1220b31af54e8167e4de9c3320b1af27
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package com.vci.client.framework.appConfig;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedHashMap;
import java.util.Locale;
 
import com.vci.client.LogonApplication;
import com.vci.client.framework.appConfig.object.AppConfigDetailObject;
import com.vci.client.framework.delegate.AppConfigDetailClientDelegate;
import com.vci.client.ui.exception.VCIException;
import com.vci.client.ui.locale.LocaleDisplay;
import com.vci.client.ui.swing.VCIOptionPane;
 
public class AppConfigDetailDialogActionListener implements ActionListener {
 
    private AppConfigDetailDialog dialog = null;
    private LinkedHashMap<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
    
    public AppConfigDetailDialogActionListener(AppConfigDetailDialog dialog){
        this.dialog = dialog;
        this.initActionMap();
    }
    
    private void initActionMap(){
        actionMaps.put("confirm", new Runnable() { public void run() {
            saveOrUpdateConfig();//
        }});
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        String key = e.getActionCommand();
        if(actionMaps.containsKey(key)){
            actionMaps.get(key).run();
        }
    }
 
    private void saveOrUpdateConfig() {
        AppConfigDetailObject obj = dialog.getConfigDetail();
        boolean isValid = check(obj);
        if (!isValid) {
            return;
        }
        boolean rs = false;
        if (obj.getId().equals("")) {
            rs = saveAppConfigDetail(obj);
        } else {
            rs = updateAppConfigDetail(obj);
        }
        
        if (rs) {
            dialog.dispose();
            dialog.getAppConfigDetailPanel().getTablePanel().refreshTableData();
        }
    }
    
    private boolean saveAppConfigDetail(AppConfigDetailObject obj) {
        boolean rs = false;
        try {
            AppConfigDetailClientDelegate delegate = new AppConfigDetailClientDelegate(LogonApplication.getUserEntityObject());
            String id = delegate.saveAppConfigDetail(obj);
            obj.setId(id);
            rs = true;
        } catch (VCIException e) {
            VCIOptionPane.showError(dialog, LocaleDisplay.getI18nString(e, "RMIPFramework", Locale.getDefault()));
            rs = false;
        }
        return rs;
    }
    
    private boolean updateAppConfigDetail(AppConfigDetailObject obj) {
        boolean rs = false;
        try {
            AppConfigDetailClientDelegate delegate = new AppConfigDetailClientDelegate(LogonApplication.getUserEntityObject());
            rs = delegate.updateAppConfigDetail(obj);
        } catch (VCIException e) {
            VCIOptionPane.showError(dialog, LocaleDisplay.getI18nString(e, "RMIPFramework", Locale.getDefault()));
            rs = false;
        }
        return rs;
    }
    
    private boolean check(AppConfigDetailObject obj) {
        if ("".equals(obj.getName())) {
            VCIOptionPane.showMessageDialog(dialog, 
                    "名称不能为空!");
            return false;
        }
        
        if ("".equals(obj.getKey())){
            VCIOptionPane.showMessageDialog(dialog, 
                    "主键不能为空!");
            return false;
        }
        
        if ("".equals(obj.getValue())){
            VCIOptionPane.showMessageDialog(dialog, 
                    "键值不能为空!");
            return false;
        }
        
        
        return true;
    }
}