package com.connor.dfl.plm.dfl003; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JTree; import javax.swing.border.LineBorder; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeNode; import com.connor.dfl.plm.util.CodeBean; import com.connor.dfl.plm.util.CopyPropsBean; import com.connor.dfl.plm.util.DataBaseControl; import com.connor.dfl.plm.util.GetCodeBean; import com.connor.dfl.plm.util.MenuBean; import com.teamcenter.rac.aif.AbstractAIFDialog; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.kernel.ListOfValuesInfo; import com.teamcenter.rac.kernel.ServiceData; import com.teamcenter.rac.kernel.SoaUtil; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentFolder; import com.teamcenter.rac.kernel.TCComponentForm; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCComponentItemRevisionType; import com.teamcenter.rac.kernel.TCComponentItemType; import com.teamcenter.rac.kernel.TCComponentListOfValues; import com.teamcenter.rac.kernel.TCComponentListOfValuesType; import com.teamcenter.rac.kernel.TCComponentProject; import com.teamcenter.rac.kernel.TCComponentQuery; import com.teamcenter.rac.kernel.TCComponentQueryType; import com.teamcenter.rac.kernel.TCComponentUser; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCPreferenceService; import com.teamcenter.rac.kernel.TCPropertyDescriptor; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.kernel.TCUserService; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.PropertyLayout; import com.teamcenter.rac.util.Utilities; public class Dfl003AIFDialog extends AbstractAIFDialog { private TCSession session; private TCPreferenceService service; private InterfaceAIFComponent targetComp; private String name; private MenuBean menuBean; private JPanel jp1; private JPanel jp2; private JTextField jtext1; private JTextField jtext2; private JTextField jtext3; private JTextField jtext4; private JTextField jtext5; private JTextField jtext6; private JTextArea jtext8; private JTextField jtext10; // private List codeBeanList; private CodeBean selCodeBean; private JButton okBut = new JButton("确定"); private JButton celBut = new JButton("取消"); private GetCodeBean getcode; private String selnodename = ""; private JComboBox jcomname=new JComboBox(); private Map nameMap=new HashMap(); private Map unitMap=new HashMap(); private JComboBox jcomproject=new JComboBox(); private JComboBox jcomunit=new JComboBox(); private boolean islov=false; private Map groupMap=new HashMap(); private Map sourceMap=new HashMap(); private Map ImportanceMap=new HashMap(); private JComboBox groupCode_combobox; private JComboBox sourceCode_combobox; private JComboBox Importantce_combobox; public Dfl003AIFDialog(TCSession session, InterfaceAIFComponent targetComp, String name) { this.session = session; this.service = session.getPreferenceService(); this.targetComp = targetComp; this.name = name; } @Override public void run() { // TODO Auto-generated method stub getcode = new GetCodeBean(session); menuBean = getcode.getMenuBean(name); // codeBeanList = bean.getCodeBeanList(); try { init(); } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 判断名称是否lov */ private void getNameLov(String type) { // TODO Auto-generated method stub try { TCComponentItemType tctype = (TCComponentItemType) session .getTypeComponent(type); TCPropertyDescriptor propertyDescriptor = tctype.getPropertyDescriptor("object_name"); TCComponentListOfValues lov = propertyDescriptor.getLOV(); if (lov!=null) { islov=true; String[] strs=lov.getListOfValues().getStringListOfValues();//所有真实值 for(String s1:strs){ String a1 = lov.getListOfValues().getDisplayableValue(s1);//该真实值对应的显示值 jcomname.addItem(a1); System.out.println(s1+"-----"+a1); nameMap.put(a1, s1);//显示:真实 } }else{ islov=false; } if (islov) { jcomname.setBounds(60, 100, 120, 30); jp2.add(jcomname); }else{ jtext3.setBounds(60, 100, 120, 30); jp2.add(jtext3); } String[] values = new String[]{}; String lovname=service.getStringValue("T2_unitsLOV");//"T2_unitsLOV" System.out.println("lovname="+lovname); TCComponentListOfValuesType lovType = (TCComponentListOfValuesType) session.getTypeComponent("ListOfValues"); TCComponentListOfValues[] lov1 = lovType.find(lovname); System.out.println("lov1="+lov1.length); if(lov1.length > 0){ ListOfValuesInfo value = lov1[0].getListOfValues(); values = value.getStringListOfValues(); for (int i = 0; i < values.length; i++) { String disval = value.getDisplayableValue(values[i]); jcomunit.addItem(disval); unitMap.put(disval, values[i]); } } } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 主页面 * @throws TCException */ private void init() throws TCException { // TODO Auto-generated method stub this.setTitle("创建" + name); this.setAlwaysOnTop(true); this.setPreferredSize(new Dimension(550, 630)); this.setLayout(new PropertyLayout()); jp1 = new JPanel(new BorderLayout()); jp2 = new JPanel(new PropertyLayout()); jp1.setPreferredSize(new Dimension(250, 450)); jp2.setPreferredSize(new Dimension(390, 570)); JTree tree = getTree(menuBean); tree.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) e .getPath().getLastPathComponent(); int childCount = treeNode.getChildCount(); System.out.println("当前被选中的节点: " + treeNode + " 子节点数量:" + childCount); selnodename = ""; if (childCount > 0) { jp2.setVisible(false); } else { jp2.setVisible(true); setTextStr(treeNode); } } }); JScrollPane scrollPane = new JScrollPane(tree); scrollPane.setPreferredSize(new Dimension(250, 250)); ; // 添加滚动面板到那内容面板 jp1.add(scrollPane, BorderLayout.CENTER); JLabel jl1 = new JLabel("ID:"); JLabel jl2 = new JLabel("版本:"); JLabel jl3 = new JLabel("名称:"); JLabel jl5 = new JLabel("材质:"); JLabel jl6 = new JLabel("重量:"); JLabel jl7 = new JLabel("单位:"); JLabel jl8 = new JLabel("规格:"); JLabel jl9 = new JLabel("项目:"); JLabel jl10 = new JLabel("旧品号:"); JLabel groupCode_lable = new JLabel("分群码:"); JLabel sourceCode_lable = new JLabel("来源码:"); JLabel Important_lable = new JLabel("关键件:"); groupCode_combobox = new JComboBox();groupCode_combobox.addItem(name); sourceCode_combobox = new JComboBox();sourceCode_combobox.addItem("自制件"); Importantce_combobox = new JComboBox();Importantce_combobox.addItem("A"); jtext1 = new JTextField(); jtext2 = new JTextField(); jtext3 = new JTextField(); jtext4 = new JTextField(); jtext5 = new JTextField(); jtext6 = new JTextField(); jtext8 = new JTextArea(); jtext8.setLineWrap(true); jtext8.setWrapStyleWord(true); jtext8.setBorder(new LineBorder(new java.awt.Color(127,157,185), 1, false)); jtext10 = new JTextField(); jcomproject.addItem(" "); TCComponentUser user = session.getUser(); try { String user_id = user.getStringProperty("user_id"); System.out.println("user_id=============="+user_id); String[] keys = new String[]{"ID"}; String[] values = new String[]{user_id}; List compList = queryObject("基于用户的项目", keys, values); if(compList != null && compList.size() > 0) { for (int i = 0; i < compList.size(); i++) { TCComponent comp = compList.get(i); if(comp instanceof TCComponentProject) { TCComponentProject project = (TCComponentProject) comp; try { String id = project.getStringProperty("project_id"); jcomproject.addItem(id); } catch (TCException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } } } catch (TCException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } jtext1.setEnabled(false); jtext2.setEnabled(true); jcomname.setEnabled(false); jp2.setLayout(null); jl1.setBounds(20, 20, 30, 30); jtext1.setBounds(60, 20, 70, 30); jl2.setBounds(20, 60, 40, 30); jtext2.setBounds(60, 60, 30, 30); jl3.setBounds(20, 100, 40, 30); jl5.setBounds(20, 140, 40, 30); jtext5.setBounds(60, 140, 120, 30); jl6.setBounds(20, 180, 40, 30); jtext6.setBounds(60, 180, 120, 30); jl7.setBounds(20, 220, 40, 30); jcomunit.setBounds(60, 220, 120, 30); jl8.setBounds(20, 260, 40, 30); jtext8.setBounds(60, 260, 200, 100); jl9.setBounds(20, 370, 40, 30); jcomproject.setBounds(60, 370, 120, 30); jl10.setBounds(20, 410, 40, 30); jtext10.setBounds(60, 410, 120, 30); groupCode_lable.setBounds(20, 450, 40, 30); groupCode_combobox.setBounds(60, 450, 120, 30); sourceCode_lable.setBounds(20, 490, 40, 30); sourceCode_combobox.setBounds(60, 490, 120, 30); Important_lable.setBounds(20, 530, 40, 30); Importantce_combobox.setBounds(60, 530, 120, 30); jp2.add(groupCode_lable);jp2.add(groupCode_combobox);jp2.add(sourceCode_lable); jp2.add(sourceCode_combobox);jp2.add(Important_lable);jp2.add(Importantce_combobox); jp2.add(jl1); jp2.add(jtext1); jp2.add(jl2); jp2.add(jtext2); jp2.add(jl3); //jp2.add(jtext3); jp2.add(jl5); jp2.add(jtext5); jp2.add(jl6); jp2.add(jtext6); jp2.add(jl7); jp2.add(jcomunit); jp2.add(jl8); jp2.add(jtext8); jp2.add(jl9); jp2.add(jcomproject); jp2.add(jl10); jp2.add(jtext10); // jp2.add("1.1.left.center", new JLabel("")); // jp2.add("2.1.center.center", jl1); // jp2.add("2.2.left.center", jtext1); // jp2.add("3.1.left.center", new JLabel("")); // jp2.add("4.1.center.center", jl2); // jp2.add("4.2.left.center", jtext2); // jp2.add("5.1.left.center", new JLabel("")); // jp2.add("6.1.center.center", jl3); // jp2.add("7.1.left.center", new JLabel("")); // jp2.add("8.1.center.center", jl4); // jp2.add("8.2.left.center", jtext4); // jp2.add("9.1.left.center", new JLabel("")); // jp2.add("10.1.center.center", jl5); // jp2.add("10.2.left.center", jtext5); // jp2.add("11.1.left.center", new JLabel("")); // jp2.add("12.1.center.center", jl6); // jp2.add("12.2.left.center", jtext6); // jp2.add("13.1.left.center", new JLabel("")); // jp2.add("14.1.center.center", jl7); // jp2.add("14.2.left.center", jtext7); // jp2.add("15.1.left.center", new JLabel("")); // jp2.add("16.1.center.center", jl8); // jp2.add("16.2.left.center", jtext8); // jp2.add("17.1.left.center", new JLabel("")); // jp2.add("18.1.center.center", jl9); // jp2.add("18.2.left.center", jcomproject); jp2.setVisible(false); add("1.1.center.center", jp1); add("1.2.center.center", jp2); add("2.1.center.center", okBut); add("2.2.center.center", celBut); String oldId = jtext10.getText(); // String[] groupvalues = new String[]{}; String lovgroupname=service.getStringValue("T2_waixiejianlov");//首选项控制外协件分群码下拉值 System.out.println("lovname="+lovgroupname); TCComponentListOfValuesType lovType0 = (TCComponentListOfValuesType) session.getTypeComponent("ListOfValues"); TCComponentListOfValues[] lov1 = lovType0.find(lovgroupname); System.out.println("lov1="+lov1.length); if(lov1.length > 0){ ListOfValuesInfo value = lov1[0].getListOfValues(); groupvalues = value.getStringListOfValues(); for (int i = 0; i < groupvalues.length; i++) { String disval = value.getDisplayableValue(groupvalues[i]); groupCode_combobox.addItem(disval); groupMap.put(disval, groupvalues[i]); } } // String[] sourcevalues = new String[]{}; String lovsourcename=service.getStringValue("T2_sourceCode");//"T2_unitsLOV" System.out.println("lovname="+lovsourcename); TCComponentListOfValuesType lovType1 = (TCComponentListOfValuesType) session.getTypeComponent("ListOfValues"); TCComponentListOfValues[] lov2 = lovType1.find(lovsourcename); System.out.println("lov2="+lov2.length); if(lov2.length > 0){ ListOfValuesInfo value = lov2[0].getListOfValues(); sourcevalues = value.getStringListOfValues(); for (int i = 0; i < sourcevalues.length; i++) { String disval = value.getDisplayableValue(sourcevalues[i]); sourceCode_combobox.addItem(disval); sourceMap.put(disval, sourcevalues[i]); } } // // String[] importancevalues = new String[]{}; String lovimportancename=service.getStringValue("T2_Importance"); System.out.println("lovname="+lovimportancename); TCComponentListOfValuesType lovType2 = (TCComponentListOfValuesType) session.getTypeComponent("ListOfValues"); TCComponentListOfValues[] lov3 = lovType2.find(lovimportancename); System.out.println("lov3="+lov3.length); if(lov3.length > 0){ ListOfValuesInfo value = lov3[0].getListOfValues(); importancevalues = value.getStringListOfValues(); for (int i = 0; i < importancevalues.length; i++) { String disval = value.getDisplayableValue(importancevalues[i]); Importantce_combobox.addItem(disval); ImportanceMap.put(disval, importancevalues[i]); } } okBut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("确定"); if (jp2.isVisible()) { String itemName=""; if (islov) { itemName=(String) jcomname.getSelectedItem(); if (!nameMap.containsKey(itemName)) { MessageBox.post("名称错误,请在下拉框范围内选择!", "提示", MessageBox.INFORMATION); } }else{ StringBuilder sb = new StringBuilder(name); sb.append("-"); sb.append(jtext3.getText()); itemName=sb.toString(); } String groupCode = (String) groupCode_combobox.getSelectedItem(); String souceCode = (String) sourceCode_combobox.getSelectedItem(); System.out.println("=========group" + groupCode); System.out.println("=========source" + souceCode); if ( !(" ".equals(itemName)) && !( " ".equals(groupCode)) && !(" ".equals(souceCode))) { createItem(); } else { MessageBox.post("名称、来源码、分群码不能为空!", "提示", MessageBox.INFORMATION); } if(itemName.contains("\\")) { MessageBox.post("名称中不能含有反斜杠!", "提示", MessageBox.INFORMATION); return; } } else { MessageBox.post("请选择创建类型!", "提示", MessageBox.INFORMATION); } } }); celBut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("取消"); setVisible(false); } }); this.setVisible(true); this.centerToScreen(); // this.pack(); } /** * 创建对象事件 */ protected void createItem() { // TODO Auto-generated method stub try { String type = selCodeBean.getType(); DataBaseControl data = new DataBaseControl(session); TCComponentItemType tctype = (TCComponentItemType) session .getTypeComponent(type); try { String newID = data.getNewCode("PLMCODE", selCodeBean); System.out.println("newID1==============="+newID); TCComponentItem find = tctype.find(newID); if (find != null) { newID = data.getMaxCode("PLMCODE", selCodeBean); System.out.println("newID2==============="+newID); find = tctype.find(newID); } if (find != null) { MessageBox.post("当前流水ID:" + newID + "已存在对象,无法创建!", "错误", MessageBox.ERROR); } else { this.setVisible(false); String itemName=""; if (islov) { itemName=(String) jcomname.getSelectedItem(); itemName=nameMap.get(itemName); }else{ itemName=jtext3.getText(); } TCComponentItem item = tctype.create(newID, jtext2.getText(), type, itemName, "", null); // String oldId = jtext4.getText(); String material = jtext5.getText(); String weight = jtext6.getText(); String key = (String) jcomunit.getSelectedItem(); String oldId = jtext10.getText(); String group = groupMap.get(groupCode_combobox.getSelectedItem()); String source = sourceMap.get( sourceCode_combobox.getSelectedItem()); String impotance =ImportanceMap.get(Importantce_combobox.getSelectedItem()); //查重旧品号 String[] keys2 = new String[]{"CNwaixie"}; String[] values2 = new String[]{oldId}; List compList2 = queryObject("根据旧品号查物料", keys2, values2); System.out.println("查询结果------"+compList2); System.out.println("旧品号--------"+oldId); if(compList2!=null) { MessageBox.post("旧品号["+oldId+ "]已经存在,不允许创建!", "错误",MessageBox.ERROR); return ; } String unit = ""; if(unitMap.containsKey(key)) { unit = unitMap.get(key); } String Specifications = jtext8.getText(); TCComponentItemRevision rev = item.getLatestItemRevision(); // if(group != null && group != "" && group != " " ) { rev.setStringProperty("t2_groupCode", group); } if(source != null && source != "" && source != "") { rev.setStringProperty("t2_sourceCode", source); } if(impotance != null && impotance != "" && impotance != " " ) { rev.setStringProperty("t2_Importance", impotance); } if(itemName != null && itemName != "" && itemName != " " ) { item.setStringProperty("object_desc", itemName); rev.setStringProperty("object_desc", itemName); } // if(oldId != null && oldId != "" && oldId != " " ) { // rev.setStringProperty("t2_OLDMerchandiseID", oldId); // } if(oldId != null && oldId != "" && oldId != " " ) { String oldId2 = oldId.trim(); System.out.println("输入的旧品号-----"+oldId2); rev.setStringProperty("t2_OldId", oldId2); } if(material.contains("\\")) { MessageBox.post("材质中不能含有反斜杠!" ,"提示", MessageBox.INFORMATION); return ; } if(weight.contains("\\")) { MessageBox.post("重量中不能含有反斜杠!" ,"提示", MessageBox.INFORMATION); return ; } if(Specifications.contains("\\")) { MessageBox.post("规格中不能含有反斜杠!" ,"提示", MessageBox.INFORMATION); return ; } if(material != null && material != "" && material != " " ) { rev.setStringProperty("t2_material", material); } if(weight != null && weight != "" && oldId != " " ) { rev.setStringProperty("t2_MASS", weight); } if(unit != null && unit != "" && unit != " " ) { rev.setStringProperty("t2_unit", unit); } if(Specifications != null && Specifications != "" && Specifications != " ") { rev.setStringProperty("t2_Specifications", Specifications); } String classid = selCodeBean.getClassID(); if(classid != null && classid != "" && classid != " ") { rev.setStringProperty("t2_ClassID", classid); } if(targetComp instanceof TCComponent) { TCComponent comp = (TCComponent) targetComp; String targetType = comp.getType(); System.out.println("targetType================="+targetType); if("T2_outsourceRevision".equals(targetType)) { String id = comp.getStringProperty("item_id"); rev.setStringProperty("t2_ReferenceOldId", id); rev.add("T2_RelationPart", comp); }else if("Fnd0HomeFolder".equals(targetType) || "Folder".equals(targetType) || "Newstuff Folder".equals(targetType) ){ }else { MessageBox.post("选中的对象不是外协件版本对象!!!" ,"提示", MessageBox.INFORMATION); } } String proID = (String) jcomproject.getSelectedItem(); if(proID != null & proID !=" ") { String[] keys = new String[]{"项目 ID"}; String[] values = new String[]{proID}; List compList = queryObject("基于项目ID查找项目", keys, values); if(compList != null && compList.size() > 0) { TCComponent comp = compList.get(0); if(comp instanceof TCComponentProject) { TCComponentProject project = (TCComponentProject) comp; TCComponentUser atccomponentuser[] = new TCComponentUser[1]; com.teamcenter.services.internal.rac.core.DataManagementService datamanagementservice = com.teamcenter.services.internal.rac.core.DataManagementService.getService(session); ServiceData servicedata = datamanagementservice.setDefaultProjectForProjectMembers(project,atccomponentuser); // if (servicedata != null && servicedata.sizeOfPartialErrors() > 0) { // com.teamcenter.rac.kernel.TCExceptionPartial tcexceptionpartial = SoaUtil // .checkPartialErrorsNoThrow(servicedata); // MessageBox.post(Utilities.getCurrentFrame(), // tcexceptionpartial); // } project.assignToProject(new TCComponent[] {item}); } } } System.out.println("开始同步选中属性到创建对象"); CopyPropsBean copyPropBean = selCodeBean.getCopyPropBean(); if (copyPropBean!=null) { String type2 = copyPropBean.getType(); List props = copyPropBean.getProps(); if (targetComp!=null&&targetComp.getType().equals(type2)) { boolean isok=true; TCComponentItemRevision furev=null; if (targetComp instanceof TCComponentItemRevision) { furev=(TCComponentItemRevision) targetComp; }else if (targetComp instanceof TCComponentItem) { furev=((TCComponentItem)targetComp).getLatestItemRevision(); }else{ isok=false; System.out.println("只支持版本和对象"); } if (props!=null&&props.size()>0&&isok) { for (int i = 0; i < props.size(); i++) { String[] split = props.get(i).split("="); if (split != null && split.length == 2) { String propstr = ""; if (split[0].startsWith("ITEM.")) { TCComponentItem com = furev.getItem(); propstr = com.getTCProperty(split[0].substring(5)).getStringValue(); } else if (split[0].startsWith("REV.")) { TCComponentItemRevision com = furev; propstr = com.getTCProperty(split[0].substring(4)).getStringValue(); } else if (split[0].startsWith("FORM.")) { TCComponentForm com = (TCComponentForm) furev.getReferenceListProperty("IMAN_master_form_rev")[0]; propstr = com.getTCProperty(split[0].substring(5)).getStringValue(); } if (propstr != null&& !propstr.equals("")) { if (split[1].startsWith("ITEM.")) { TCComponentItem com = item; com.getTCProperty(split[1].substring(5)).setStringValue(propstr); } else if (split[1].startsWith("REV.")) { TCComponentItemRevision com = rev; com.getTCProperty(split[1].substring(4)).setStringValue(propstr); } else if (split[1].startsWith("FORM.")) { TCComponentForm com = (TCComponentForm) rev .getReferenceListProperty("IMAN_master_form_rev")[0]; com.getTCProperty(split[1].substring(5)).setStringValue(propstr); } } } } } } }else{ System.out.println("未配置同步,不进行属性同步"); } if (targetComp == null) { session.getUser().getNewStuffFolder().add("contents", item); MessageBox.post("对象" + item + "创建成功,请在NewStuff文件夹下查看!", "成功", MessageBox.INFORMATION); } else if (targetComp instanceof TCComponentFolder) { ((TCComponentFolder) targetComp).add("contents", item); MessageBox.post("对象" + item + "创建成功,请在当前文件夹下查看!", "成功", MessageBox.INFORMATION); }else { session.getUser().getNewStuffFolder().add("contents", item); MessageBox.post("对象" + item + "创建成功,请在NewStuff文件夹下查看!", "成功", MessageBox.INFORMATION); } //if (classid != null && !classid.equals("")) { //Dfl003Operation op=new Dfl003Operation(session, classid, rev, new Integer[] {}, new String[] {}); //session.queueOperation(op); //} else { //System.out.println("未找到该类型的分类id,不发生分类"); //} } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); MessageBox.post("错误:" + e.getMessage(), "错误", MessageBox.INFORMATION); } } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 选中底层事件 * */ protected void setTextStr(DefaultMutableTreeNode treeNode) { // TODO Auto-generated method stub selnodename = treeNode.toString(); if (islov) { if (nameMap.containsKey(selnodename)) { jcomname.setSelectedItem(selnodename); } }else{ jtext3.setText(""); } String names = getNode(treeNode, ""); selCodeBean = getcode.getCodebean(names); if (selCodeBean != null) { String type = selCodeBean.getType(); String code = selCodeBean.getCode(); code = code + " [L]"; getNameLov(type); try { TCComponentItemType tctype = (TCComponentItemType) session .getTypeComponent(type); jtext1.setText(code); jtext2.setText(tctype.getNewRev(null)); } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 遍历获得当前TreeNode的父-子名称汇总 * * @param treeNode * 树节点 * @param names * 名称汇总 * @return */ private String getNode(TreeNode treeNode, String names) { // TODO Auto-generated method stub if (!names.equals("")) { names = "&" + names; } names = treeNode.toString() + names; TreeNode parent = treeNode.getParent(); if (parent != null) { return getNode(parent, names); } return names; } /** * 树界面 * * @param menuBean1 * @return */ private JTree getTree(MenuBean menuBean1) { // TODO Auto-generated method stub String treenodename = menuBean1.getName(); List list = menuBean1.getList(); DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode( treenodename); if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { getRecursion(list.get(i), rootNode); } } JTree tree = new JTree(rootNode); tree.setShowsRootHandles(true); // tree.setEditable(true); return tree; } /** * 递归遍历菜单结构 * * @param menuBean1 * @param rootNode */ private void getRecursion(MenuBean menuBean1, DefaultMutableTreeNode rootNode) { // TODO Auto-generated method stub String treenodename = menuBean1.getName(); List list = menuBean1.getList(); DefaultMutableTreeNode node = new DefaultMutableTreeNode(treenodename); rootNode.add(node); if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { getRecursion(list.get(i), node); } } } /** * 通过查询构建器查询项目对象 * @param queryName 查询名称 * @param keys 查询条件 * @param values 查询值 * @return */ public List queryObject(String queryName ,String[] keys,String[] values){ TCComponent[] components = null; try { TCComponentQueryType queryType= (TCComponentQueryType) session.getTypeComponent("ImanQuery"); TCComponentQuery query = (TCComponentQuery) queryType.find(queryName); if(query == null){ MessageBox.post("没有找到查询:"+queryName,"错误",MessageBox.ERROR); return null; } components = query.execute(keys, values); } catch (TCException e) { e.printStackTrace(); } if(components != null && components.length > 0){ List compList = Arrays.asList(components); return compList; }else{ return null; } } }