|
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.object.BaseModel;
|
import com.vci.rmip.code.client.codeapply.Apply410.enums.CodeReferConfigTypeEnum;
|
import com.vci.rmip.code.client.codeapply.Apply410.object.UIFormRefer;
|
import com.vci.ubcs.starter.web.pagemodel.KeyValue;
|
import com.vci.ubcs.starter.web.pagemodel.Tree;
|
import com.vci.ubcs.starter.web.util.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<String, Runnable> actionMaps = new LinkedHashMap<String, Runnable>();
|
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<RMDataObject> 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<String,String> attibuteMap= tree.getAttributes();
|
String fieldValue=attibuteMap.getOrDefault(valueField,"");
|
String textValue=attibuteMap.getOrDefault(textField,"");
|
KeyValue keyValue=new KeyValue();
|
keyValue.setKey(fieldValue);
|
keyValue.setValue(textValue);
|
this.owner.setKeyValue(keyValue);
|
}
|
|
}else{
|
LinkedList<BaseModel> 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<String, String> defaultDataMap= VciBaseUtil.objectToMapString(list.get(0));
|
defaultDataMap.putAll(baseModel.getData());
|
String fieldValue=defaultDataMap.getOrDefault(valueField,"");
|
String textValue=defaultDataMap.getOrDefault(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);
|
}
|
}
|