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 actionMaps = new LinkedHashMap(); 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; } }