package com.vci.rmip.code.client.codeapply.Apply410; 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.rmip.code.client.codeapply.Apply410.object.R; import com.vci.rmip.code.client.codeapply.Apply410.object.ReferTreObject; import com.vci.rmip.code.client.codeapply.Apply410.object.TokenUserObject; 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.utils.ConfigUtils; import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference; 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.io.IOException; 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; private TokenUserObject tokenUserObject; public CodeReferTreePanel(UIFormRefer uiFormRefer ,TokenUserObject tokenUserObject) { this.uiFormRefer=uiFormRefer; this.tokenUserObject=tokenUserObject; } public void buildTreePanel(){ initComponents(); } private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController"); private void initComponents(){ List treeList=new ArrayList<>(); ObjectMapper objectMapper = new ObjectMapper(); if(uiFormRefer!=null){ try { /**系统只加载代码项 如果libName不为空,直接获取对应的代码项**/ Map 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); Map headerMap=new HashMap<>(); headerMap.put("Blade-Auth",this.tokenUserObject.getAccess_token()); R r= HttpUtil.sendGet(url+"/defaultReferTree",condtionMap,headerMap); if(r.isSuccess()){ Object object= r.getData(); if(object!=null) { // ObjectMapper objectMapper = new ObjectMapper(); treeList = objectMapper.readValue(object.toString(), new TypeReference>() {}); } }else{ VCIOptionPane.showMessage(this,r.getMsg()); } } catch (IOException 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(); }*/ /** * 展开树 *

Description:

* * @author ligang * @time 2013-5-8 * @param parentNode */ private void addChildrenToParentTreeNode(VCIBaseTreeNode parentNode, Listchildren){ parentNode.setLeaf(children.size() == 0); parentNode.setExpand(true); for(Tree obj : children) { VCIBaseTreeNode node = new VCIBaseTreeNode(obj.getName(), obj); ListnewChildren = 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); } /** * 选择了树节点的事件处理 *

Description:

* * @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 childs = new ArrayList<>(); //childs = getChildRMTypeObjects(rmTypeObject.getOid()); addRMTypeObjectsToParentTreeNode(childs, treeNode); treeNode.setExpand(true); treeNode.setLeaf(treeModel.getChildCount(treeNode) == 0); } private void addRMTypeObjectsToParentTreeNode(List 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; } }