From 54f35ae7866dac5c497372b68d03309c7eae9424 Mon Sep 17 00:00:00 2001 From: dangsn <dangsn@chicecm.com> Date: 星期三, 02 八月 2023 18:15:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeReferTreePanel.java | 203 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 203 insertions(+), 0 deletions(-) diff --git a/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeReferTreePanel.java b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeReferTreePanel.java new file mode 100644 index 0000000..7bed1b6 --- /dev/null +++ b/Source/UBCS/ubcs-codeApply/src/main/java/com/vci/ubcs/codeapply/CodeReferTreePanel.java @@ -0,0 +1,203 @@ +package com.vci.ubcs.codeapply; + +import com.alibaba.cloud.commons.lang.StringUtils; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.vci.base.ui.swing.VCIOptionPane; +import com.vci.base.ui.swing.components.VCIJPanel; +import com.vci.base.ui.tree.VCIBaseTree; +import com.vci.base.ui.tree.VCIBaseTreeModel; +import com.vci.base.ui.tree.VCIBaseTreeNode; +import com.vci.ubcs.codeapply.object.*; +import com.vci.ubcs.codeapply.utils.ConfigUtils; +import com.vci.ubcs.codeapply.utils.HttpUtil; +import com.vci.ubcs.starter.web.pagemodel.Tree; +import org.apache.commons.collections4.CollectionUtils; + +import javax.swing.event.TreeExpansionEvent; +import javax.swing.event.TreeExpansionListener; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; +import javax.swing.tree.TreePath; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public abstract class CodeReferTreePanel extends VCIJPanel { + private VCIBaseTree tree = null; + private VCIBaseTreeModel treeModel = null; + private VCIBaseTreeNode rootNode = null; + private ReferTreObject referTreObject; + private UIFormRefer uiFormRefer; + public CodeReferTreePanel(UIFormRefer uiFormRefer) { + this.uiFormRefer=uiFormRefer; + } + + public void buildTreePanel(){ + initComponents(); + } + private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController"); + + private void initComponents(){ + List<Tree> treeList=new ArrayList<>(); + ObjectMapper objectMapper = new ObjectMapper(); + if(uiFormRefer!=null){ + try { + /**绯荤粺鍙姞杞戒唬鐮侀」 濡傛灉libName涓嶄负绌猴紝鐩存帴鑾峰彇瀵瑰簲鐨勪唬鐮侀」**/ + Map<String,String> condtionMap=new HashMap<>(); + condtionMap.put("referType",StringUtils.isBlank(uiFormRefer.getReferType())?"":uiFormRefer.getReferType()); + condtionMap.put("parentUsedField",StringUtils.isBlank(uiFormRefer.getParentUsedField())?"":uiFormRefer.getParentUsedField()); + condtionMap.put("valueField",StringUtils.isBlank(uiFormRefer.getValueField())?"":uiFormRefer.getValueField()); + condtionMap.put("parentValue",StringUtils.isBlank(uiFormRefer.getParentValue())?"":uiFormRefer.getParentValue()); + condtionMap.put("parentFieldName",StringUtils.isBlank(uiFormRefer.getParentFieldName())?"":uiFormRefer.getParentFieldName()); + condtionMap.put("textField",StringUtils.isBlank(uiFormRefer.getTextField())?"":uiFormRefer.getTextField()); + condtionMap.put("muti",uiFormRefer.isMuti()?"true":"false"); + condtionMap.put("queryAllLevel", StringUtils.isBlank(uiFormRefer.getLoadType())?"false":"true");//queryAllLevel + //condtionMap.put("parentOid",null); + R r= HttpUtil.sendGet(url+"/defaultReferTree",condtionMap,new HashMap<>()); + if(r.isSuccess()){ + Object object= r.getData(); + if(object!=null) { +// ObjectMapper objectMapper = new ObjectMapper(); + treeList = objectMapper.readValue(object.toString(), new com.fasterxml.jackson.core.type.TypeReference<List<Tree>>() {}); + treeList=treeList; + } + }else{ + VCIOptionPane.showMessage(this,r.getMsg()); + } + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } + + rootNode = new VCIBaseTreeNode("鍙傜収", "鍙傜収"); + treeModel = new VCIBaseTreeModel(rootNode); + tree = new VCIBaseTree(treeModel, new CodeLibTreeCellRenderer()); + addChildrenToParentTreeNode(rootNode,treeList); + inittreeActions(); + } + + private void initTreeData() { + + } + + /*private void loadTreeData(VCIBaseTreeNode rootNode){ + CodeClassify currentObj = (CodeClassify) rootNode.getObj(); + String parentId = currentObj.getOid(); + CodeClassify[] libs = {}; + libs = getChildRMTypeObjects(parentId); + for(CodeClassify obj : libs) { + VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj); + rootNode.add(node); + node.setLeaf(false); + node.setExpand(false); + } + rootNode.setLeaf(libs.length == 0); + rootNode.setExpand(true); + tree.setSelectionPath(new TreePath(selNode)); + tree.updateUI(); + }*/ + /** + * 灞曞紑鏍� + * <p>Description: </p> + * + * @author ligang + * @time 2013-5-8 + * @param parentNode + */ + private void addChildrenToParentTreeNode(VCIBaseTreeNode parentNode, List<Tree>children){ + parentNode.setLeaf(children.size() == 0); + parentNode.setExpand(true); + for(Tree obj : children) { + VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj); + List<Tree>newChildren = obj.getChildren(); + treeModel.insertNodeInto(node, parentNode, parentNode.getChildCount()); + if(!CollectionUtils.isEmpty(newChildren)) { + node.setExpand(true); + node.setLeaf(false); + addChildrenToParentTreeNode(node, newChildren); + }else{ + node.setExpand(true); + node.setLeaf(true); + } + } + if(tree != null){ + //tree.expandPath(new TreePath(selNode.getPath())); + //tree.setSelectionPath(new TreePath(selNode.getPath())); + tree.updateUI(); + } + } + private void inittreeActions(){ + tree.addTreeSelectionListener(new TreeSelectionListener() { + @Override + public void valueChanged(TreeSelectionEvent e) { + if(!e.isAddedPath()) return; + leftTree_valueChanged(e); + } + }); + tree.addTreeExpansionListener(new TreeExpansionListener() { + @Override + public void treeExpanded(TreeExpansionEvent e) { + tree_treeExpanded_local(e); + } + + @Override + public void treeCollapsed(TreeExpansionEvent e) { + } + }); + } + private void leftTree_valueChanged(TreeSelectionEvent e) { + tree_valueChanged(e); + } + + /** + * 閫夋嫨浜嗘爲鑺傜偣鐨勪簨浠跺鐞� + * <p>Description: </p> + * + * @author xchao + * @time 2012-5-26 + * @param e + */ + public abstract void tree_valueChanged(TreeSelectionEvent e); + + /** + * 灞曞紑浜嬩欢 + * @param e + */ + private void tree_treeExpanded_local(TreeExpansionEvent e) { + TreePath treePath = e.getPath(); + VCIBaseTreeNode treeNode = (VCIBaseTreeNode)treePath.getLastPathComponent(); + if(treeNode.isExpand()) return; + if(!(treeNode.getObj() instanceof Tree)) return; + Tree tree = (Tree)treeNode.getObj(); + List<Tree> childs = new ArrayList<>(); + //childs = getChildRMTypeObjects(rmTypeObject.getOid()); + addRMTypeObjectsToParentTreeNode(childs, treeNode); + treeNode.setExpand(true); + treeNode.setLeaf(treeModel.getChildCount(treeNode) == 0); + } + + private void addRMTypeObjectsToParentTreeNode(List<Tree> objs, VCIBaseTreeNode parentNode){ + for(Tree obj : objs){ + VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj); + treeModel.insertNodeInto(node, parentNode, treeModel.getChildCount(parentNode)); + } + } + + public VCIBaseTree getTree() { + return tree; + } + + public void setTree(VCIBaseTree tree) { + this.tree = tree; + } + + public VCIBaseTreeModel getTreeModel() { + return treeModel; + } + + public void setTreeModel(VCIBaseTreeModel treeModel) { + this.treeModel = treeModel; + } +} -- Gitblit v1.9.3