package com.vci.rmip.code.client.codeapply.Apply410; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Map; import com.vci.base.ui.swing.VCIOptionPane; import com.vci.base.ui.swing.components.VCIJDialog.DialogResult; import com.vci.base.ui.tree.VCIBaseTreeNode; import com.vci.rmip.code.client.codeapply.Apply410.enums.CodeReferConfigTypeEnum; import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer; import com.vci.rmip.code.client.codeapply.Apply410.object.tree.Tree; import com.vci.rmip.code.client.codeapply.Apply410.object.ubcscode.model.BaseModel; import com.vci.rmip.code.client.codeapply.Apply410.object.ubcscode.vo.KeyValue; import com.vci.rmip.code.client.codeapply.Apply410.utils.VciBaseUtil; import javax.swing.tree.TreePath; public class RMDataReferTempDialogActionListener implements ActionListener { private RMDataReferTempDialog owner = null; public RMDataReferTempDialogActionListener(RMDataReferTempDialog owner){ this.owner = owner; this.initActionMap(); } private LinkedHashMap actionMaps = new LinkedHashMap(); private void initActionMap(){ actionMaps.put("ok", new Runnable() { public void run() { ok(); }}); actionMaps.put("cancel", new Runnable() { public void run() { cancel(); }}); } @Override public void actionPerformed(ActionEvent e) { String key = e.getActionCommand(); if(actionMaps.containsKey(key)){ actionMaps.get(key).run(); } } private void ok(){ //if(!owner.isFromTableDoubleClick()){ /* LinkedList list = this.owner.getRMDataMainPanel().getTablePanel().getSelectedRowObjects(); if(list.size() > 1) { VCIOptionPane.showMessageDialog(this.owner, "不允许选择多条数据进行操作!"); return; } else if(list.size() <= 0) { VCIOptionPane.showMessageDialog(this.owner, "请选择数据进行操作!"); return; }*/ UIFormRefer uiFormRefer=owner.getUiFormRefer(); String textField=uiFormRefer.getTextField(); String valueField=uiFormRefer.getValueField(); if(uiFormRefer !=null&&(uiFormRefer.getType().equals(CodeReferConfigTypeEnum.TREE.getValue()) ||uiFormRefer.getType().equals(CodeReferConfigTypeEnum.ORGDEPARTMENTREFER.getValue()))){ TreePath treePath=this.owner.getTypeTreePanel().getTree().getSelectionPath(); VCIBaseTreeNode treeNode = (VCIBaseTreeNode)treePath.getLastPathComponent(); if(treeNode.getObj() instanceof Tree) { Tree tree =(Tree)treeNode.getObj(); Map attibuteMap= tree.getAttributes(); String fieldValue=attibuteMap.containsKey(valueField) ? attibuteMap.get(valueField) : ""; String textValue=attibuteMap.containsKey(textField) ? attibuteMap.get(textField) : ""; KeyValue keyValue=new KeyValue(); keyValue.setKey(fieldValue); keyValue.setValue(textValue); this.owner.setKeyValue(keyValue); } }else{ LinkedList list =this.owner.getCodeDataMainPanel().getTablePanel().getSelectedRowObjects(); if(list.size() > 1) { VCIOptionPane.showMessageDialog(this.owner, "不允许选择多条数据进行操作!"); return; } else if(list.size() <= 0) { VCIOptionPane.showMessageDialog(this.owner, "请选择数据进行操作!"); return; } BaseModel baseModel=list.get(0); Map defaultDataMap= VciBaseUtil.objectToMapString(list.get(0)); defaultDataMap.putAll(baseModel.getData()); String fieldValue=defaultDataMap.containsKey(valueField) ? defaultDataMap.get(valueField) : ""; String textValue=defaultDataMap.containsKey(textField) ? defaultDataMap.get(textField) : ""; KeyValue keyValue=new KeyValue(); keyValue.setKey(fieldValue); keyValue.setValue(textValue); this.owner.setKeyValue(keyValue); } //} owner.setDialogResult(DialogResult.OK); close(); owner.getDialogCallback().run(); } private void cancel(){ owner.setDialogResult(DialogResult.CANCEL); close(); } private void close(){ owner.setVisible(false); } }