diff --git a/bin/com/connor/kwc/createBom/CreateBOMHandler$1.class b/bin/com/connor/kwc/createBom/CreateBOMHandler$1.class deleted file mode 100644 index 1719e6c..0000000 Binary files a/bin/com/connor/kwc/createBom/CreateBOMHandler$1.class and /dev/null differ diff --git a/bin/com/connor/kwc/createBom/CreateBOMHandler.class b/bin/com/connor/kwc/createBom/CreateBOMHandler.class index cced1b1..e0c3476 100644 Binary files a/bin/com/connor/kwc/createBom/CreateBOMHandler.class and b/bin/com/connor/kwc/createBom/CreateBOMHandler.class differ diff --git a/bin/com/connor/kwc/createBom/CreateBOMOperation$1.class b/bin/com/connor/kwc/createBom/CreateBOMOperation$1.class deleted file mode 100644 index d7890d1..0000000 Binary files a/bin/com/connor/kwc/createBom/CreateBOMOperation$1.class and /dev/null differ diff --git a/bin/com/connor/kwc/createBom/CreateBOMOperation.class b/bin/com/connor/kwc/createBom/CreateBOMOperation.class index f078b3b..569d624 100644 Binary files a/bin/com/connor/kwc/createBom/CreateBOMOperation.class and b/bin/com/connor/kwc/createBom/CreateBOMOperation.class differ diff --git a/bin/com/connor/kwc/createBom/NewJFrame1$1.class b/bin/com/connor/kwc/createBom/NewJFrame1$1.class deleted file mode 100644 index 6a4bbc1..0000000 Binary files a/bin/com/connor/kwc/createBom/NewJFrame1$1.class and /dev/null differ diff --git a/bin/com/connor/kwc/createBom/NewJFrame1$2.class b/bin/com/connor/kwc/createBom/NewJFrame1$2.class deleted file mode 100644 index a6005aa..0000000 Binary files a/bin/com/connor/kwc/createBom/NewJFrame1$2.class and /dev/null differ diff --git a/bin/com/connor/kwc/createBom/NewJFrame1$3.class b/bin/com/connor/kwc/createBom/NewJFrame1$3.class deleted file mode 100644 index 2bf6226..0000000 Binary files a/bin/com/connor/kwc/createBom/NewJFrame1$3.class and /dev/null differ diff --git a/bin/com/connor/kwc/createBom/NewJFrame1.class b/bin/com/connor/kwc/createBom/NewJFrame1.class index aeaaca2..2e7e6cb 100644 Binary files a/bin/com/connor/kwc/createBom/NewJFrame1.class and b/bin/com/connor/kwc/createBom/NewJFrame1.class differ diff --git a/bin/com/connor/kwc/createBom/NewJFrame2$1.class b/bin/com/connor/kwc/createBom/NewJFrame2$1.class deleted file mode 100644 index c484a41..0000000 Binary files a/bin/com/connor/kwc/createBom/NewJFrame2$1.class and /dev/null differ diff --git a/bin/com/connor/kwc/createBom/NewJFrame2$2.class b/bin/com/connor/kwc/createBom/NewJFrame2$2.class deleted file mode 100644 index 4d85345..0000000 Binary files a/bin/com/connor/kwc/createBom/NewJFrame2$2.class and /dev/null differ diff --git a/bin/com/connor/kwc/createBom/NewJFrame2$3.class b/bin/com/connor/kwc/createBom/NewJFrame2$3.class deleted file mode 100644 index 589d008..0000000 Binary files a/bin/com/connor/kwc/createBom/NewJFrame2$3.class and /dev/null differ diff --git a/bin/com/connor/kwc/createBom/NewJFrame2$4.class b/bin/com/connor/kwc/createBom/NewJFrame2$4.class deleted file mode 100644 index 84c4eb3..0000000 Binary files a/bin/com/connor/kwc/createBom/NewJFrame2$4.class and /dev/null differ diff --git a/bin/com/connor/kwc/createBom/NewJFrame2.class b/bin/com/connor/kwc/createBom/NewJFrame2.class index c66f1ab..53878ec 100644 Binary files a/bin/com/connor/kwc/createBom/NewJFrame2.class and b/bin/com/connor/kwc/createBom/NewJFrame2.class differ diff --git a/bin/com/connor/kwc/createBom/Util.class b/bin/com/connor/kwc/createBom/Util.class index 96d9785..a49f1e1 100644 Binary files a/bin/com/connor/kwc/createBom/Util.class and b/bin/com/connor/kwc/createBom/Util.class differ diff --git a/bin/com/connor/kwc/createDWG/CreateDWGHandler$1.class b/bin/com/connor/kwc/createDWG/CreateDWGHandler$1.class deleted file mode 100644 index ce764c5..0000000 Binary files a/bin/com/connor/kwc/createDWG/CreateDWGHandler$1.class and /dev/null differ diff --git a/bin/com/connor/kwc/createDWG/CreateDWGHandler.class b/bin/com/connor/kwc/createDWG/CreateDWGHandler.class index 3382ae5..7db0255 100644 Binary files a/bin/com/connor/kwc/createDWG/CreateDWGHandler.class and b/bin/com/connor/kwc/createDWG/CreateDWGHandler.class differ diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateDialg$1.class b/bin/com/connor/kwc/createTemplate/CreateTemplateDialg$1.class deleted file mode 100644 index 6ea82c3..0000000 Binary files a/bin/com/connor/kwc/createTemplate/CreateTemplateDialg$1.class and /dev/null differ diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateDialg.class b/bin/com/connor/kwc/createTemplate/CreateTemplateDialg.class index 967c87e..b2f3e45 100644 Binary files a/bin/com/connor/kwc/createTemplate/CreateTemplateDialg.class and b/bin/com/connor/kwc/createTemplate/CreateTemplateDialg.class differ diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateHandler$1.class b/bin/com/connor/kwc/createTemplate/CreateTemplateHandler$1.class deleted file mode 100644 index aedf72d..0000000 Binary files a/bin/com/connor/kwc/createTemplate/CreateTemplateHandler$1.class and /dev/null differ diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateHandler.class b/bin/com/connor/kwc/createTemplate/CreateTemplateHandler.class index 2046a86..60470fc 100644 Binary files a/bin/com/connor/kwc/createTemplate/CreateTemplateHandler.class and b/bin/com/connor/kwc/createTemplate/CreateTemplateHandler.class differ diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateOperation$1.class b/bin/com/connor/kwc/createTemplate/CreateTemplateOperation$1.class deleted file mode 100644 index cfe404e..0000000 Binary files a/bin/com/connor/kwc/createTemplate/CreateTemplateOperation$1.class and /dev/null differ diff --git a/bin/com/connor/kwc/createTemplate/CreateTemplateOperation.class b/bin/com/connor/kwc/createTemplate/CreateTemplateOperation.class index 38a43fa..3c39802 100644 Binary files a/bin/com/connor/kwc/createTemplate/CreateTemplateOperation.class and b/bin/com/connor/kwc/createTemplate/CreateTemplateOperation.class differ diff --git a/plugin.xml b/plugin.xml index 895cb71..aaa93e8 100644 --- a/plugin.xml +++ b/plugin.xml @@ -6,6 +6,7 @@ point="org.eclipse.ui.commands"> + @@ -19,11 +20,12 @@ point="org.eclipse.ui.handlers"> - - - - - + + + + + + @@ -34,6 +36,9 @@ + + + diff --git a/src/com/connor/kwc/createBom/CreateBOMOperation.java b/src/com/connor/kwc/createBom/CreateBOMOperation.java index 891ff3d..a3bbb3a 100644 --- a/src/com/connor/kwc/createBom/CreateBOMOperation.java +++ b/src/com/connor/kwc/createBom/CreateBOMOperation.java @@ -15,6 +15,7 @@ import com.teamcenter.rac.aif.AbstractAIFOperation; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.kernel.TCComponentBOMLine; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCSession; /** @@ -77,8 +78,8 @@ public class CreateBOMOperation extends AbstractAIFOperation { NewJFrame2 newJFrame2 = new NewJFrame2(session, dataMap, (TCComponentFolder) target); newJFrame2.setVisible(true); } else if ("revision".equals(type)) { -// NewJFrame1 newJFrame2 = new NewJFrame1(session,dataMap); -// newJFrame2.setVisible(true); + NewJFrame1 newJFrame2 = new NewJFrame1(session,dataMap, (TCComponentItemRevision) target); + newJFrame2.setVisible(true); } } diff --git a/src/com/connor/kwc/createBom/NewJFrame1.java b/src/com/connor/kwc/createBom/NewJFrame1.java index fca60ba..8e5b817 100644 --- a/src/com/connor/kwc/createBom/NewJFrame1.java +++ b/src/com/connor/kwc/createBom/NewJFrame1.java @@ -6,6 +6,8 @@ */ package com.connor.kwc.createBom; +import java.awt.Dimension; +import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; @@ -32,12 +34,16 @@ import javax.swing.LayoutStyle; import javax.swing.WindowConstants; import javax.swing.tree.DefaultTreeModel; +import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCComponentBOMView; import com.teamcenter.rac.kernel.TCComponentBOMWindow; import com.teamcenter.rac.kernel.TCComponentBOMWindowType; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentGDE; import com.teamcenter.rac.kernel.TCComponentItem; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; @@ -79,6 +85,7 @@ public class NewJFrame1 extends JFrame { private String[] sxxdate; private TCComponent component; private List tempList; + private List tempIdList; private Map itemMapIsSel = new HashMap<>(); private Map itemMapBoMap = new HashMap<>(); @@ -146,8 +153,11 @@ public class NewJFrame1 extends JFrame { jLabel3.setText("ͣ"); - List typeList = (ArrayList) dataMap.get("typeList"); - String[] typeArray = (String[]) typeList.toArray(); + ArrayList typeList = (ArrayList) dataMap.get("typeList"); + for(String tyString : typeList) { + System.out.println("tyString:"+tyString); + } + String[] typeArray = typeList.stream().toArray(String[]::new); jComboBox2.setModel(new DefaultComboBoxModel<>(typeArray)); jComboBox2.setSelectedIndex(0); @@ -155,9 +165,11 @@ public class NewJFrame1 extends JFrame { String template = templateMap.get(jComboBox2.getSelectedItem()); String[] split = template.split(";"); tempList = new ArrayList(); + tempIdList = new ArrayList(); // UIDģϢ for (String uid : split) { try { + tempIdList.add(uid); TCComponent component = session.stringToComponent(uid); tempList.add(component.getStringProperty("object_name")); } catch (TCException e1) { @@ -166,13 +178,14 @@ public class NewJFrame1 extends JFrame { } } - String[] array = (String[]) tempList.toArray(); + String[] array = tempList.stream().toArray(String[]::new); jComboBox3.setModel(new DefaultComboBoxModel<>(array)); jComboBox3.setSelectedIndex(0); jLabel4.setText("ģ壺"); try { // ģ崴ṹûѡ - component = session.stringToComponent(tempList.get(0)); + System.out.println("tempId:"+tempIdList.get(0)); + component = session.stringToComponent(tempIdList.get(0)); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); TCComponentBOMWindow view = winType.create(null); if (component instanceof TCComponentItemRevision) { @@ -192,11 +205,8 @@ public class NewJFrame1 extends JFrame { e1.printStackTrace(); } - jComboBox2.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); - jComboBox3.setModel(new DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); - jLabel4.setText("ģ壺"); jLabel5.setText("רҵ"); @@ -324,7 +334,17 @@ public class NewJFrame1 extends JFrame { GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // ȡĻߴ + int screenWidth = screenSize.width; // ȡĻ + int screenHeight = screenSize.height; // ȡĻ߶ + int x = (screenWidth - this.getWidth()) / 2; // FrameϽx + int y = (screenHeight - this.getHeight()) / 2; // FrameϽy + this.setLocation(x, y); // Frameλ + this.setDefaultCloseOperation(2); + jTextField1.setText(target.getStringProperty("item_id")); +// jTextField2.setText(target.getStringProperty("object_name")); +// jTextField1.setEditable(false); jTextField2.setEditable(false); // ģ jComboBox2.addItemListener(new ItemListener() { @@ -334,10 +354,11 @@ public class NewJFrame1 extends JFrame { Map templateMap = (HashMap) dataMap.get("templateMap"); String template = templateMap.get(jComboBox2.getSelectedItem()); String[] split = template.split(";"); - List tempList = new ArrayList(); + tempList = new ArrayList(); // UIDģϢ for (String uid : split) { try { + tempIdList.add(uid); TCComponent component = session.stringToComponent(uid); tempList.add(component.getStringProperty("object_name")); } catch (TCException e1) { @@ -345,8 +366,8 @@ public class NewJFrame1 extends JFrame { e1.printStackTrace(); } } - - String[] array = (String[]) tempList.toArray(); + String[] array = tempList.stream().toArray(String[]::new); + //String[] array = (String[]) tempList.toArray(); jComboBox3.setModel(new DefaultComboBoxModel<>(array)); } }); @@ -357,7 +378,7 @@ public class NewJFrame1 extends JFrame { public void itemStateChanged(ItemEvent e) { try { int selectedIndex = jComboBox3.getSelectedIndex(); - String uid = tempList.get(selectedIndex); + String uid = tempIdList.get(selectedIndex); component = session.stringToComponent(uid); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); @@ -387,28 +408,56 @@ public class NewJFrame1 extends JFrame { public void actionPerformed(ActionEvent e) { // ж String field1 = jTextField1.getText(); - String field2 = jTextField2.getText(); - if (field1 == null || "".equals(field1.trim()) || field2 == null || "".equals(field2.trim())) { - MessageBox.post("ƷźͲƷƱ", "ʾ", MessageBox.INFORMATION); + if (field1 == null || "".equals(field1.trim())) { + MessageBox.post("Ʒű", "ʾ", MessageBox.INFORMATION); return; } // ʼƶ TCComponentItemRevision revision = (TCComponentItemRevision) component; try { - if (itemMapIsSel.get(revision.getStringProperty("object_string")).isSelected) { - TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", jTextField2.getText(), - "", true, null); + if (itemMapIsSel.get(revision.getStringProperty("object_name")).isSelected) { + TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A"); +// TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", revision.getStringProperty("object_name"),"", true, null); TCComponentItemRevision newRevision = newItem.getLatestItemRevision(); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session .getTypeComponent("BOMWindow"); TCComponentBOMWindow view = winType.create(null); - TCComponentBOMLine line = view.setWindowTopLine(revision.getItem(), revision, null, null); + TCComponentBOMLine line = view.setWindowTopLine(newItem, newRevision, null, null); // ѡֵƶ for (String attrStr : sxxdate) { if (attrStr.startsWith(line.getItemRevision().getItem().getStringProperty("object_type"))) { try { - replaceAttribute(line, newRevision, attrStr); - } catch (ParseException e1) { + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(revision.getItem(), getValues[1]); + Util.setTCPropertyValue(newRevision.getItem(), getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(revision, getValues[1]); + Util.setTCPropertyValue(newRevision, getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = revision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = newRevision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + }else if(getValues[0].equals("bom")) { + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine line1 = view1.setWindowTopLine(revision.getItem(), revision, null, null); + val = Util.getTCPropertyValue(line1, getValues[1]); + + Util.setTCPropertyValue(line, getValues[1], val); + } + } + + } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } @@ -416,10 +465,18 @@ public class NewJFrame1 extends JFrame { } } // ݹBOMṹɾδѡеĶ - collectAllBomLine(line, jTextField1.getText(), winType, view, false); - TCComponentItemRevision itemRevision = line.getItemRevision(); - target.add("", itemRevision); - + collectAllBomLine(line, jTextField1.getText(), winType, line.getBOMView(), true); + AIFComponentContext[] children = line.getChildren(); + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine revLine = view1.setWindowTopLine(target.getItem(), target, null, null); + for(AIFComponentContext line2 : children) { + TCComponentBOMLine bomLine = (TCComponentBOMLine)line2.getComponent(); + revLine.add(bomLine.getItem(), bomLine.getItemRevision(), null, false, ""); + view1.save(); + } + MessageBox.post("ɹ", "ʾ", MessageBox.INFORMATION); + return; } else { return; } @@ -443,7 +500,7 @@ public class NewJFrame1 extends JFrame { * @throws TCException */ public void collectAllBomLine(TCComponentBOMLine bomLine, String newId, TCComponentBOMWindowType winType, - TCComponentBOMWindow newview, Boolean flag) throws TCException { + TCComponentBOMView newview, Boolean flag) throws TCException { String objectName = bomLine.getItemRevision().getStringProperty("object_name"); boolean selected = itemMapIsSel.get(objectName).isSelected(); // жϽǷѡ @@ -461,15 +518,48 @@ public class NewJFrame1 extends JFrame { } else { // ǵһεݹʱÿεݹһ󣬰ҪͬͬȥȻ󽫶滻µbomviewȥ - TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A", - bomLine.getItemRevision().getStringProperty("object_name"), "", true, null); + String itemId = bomLine.getItemRevision().getStringProperty("item_id"); + System.out.println("itemID:"+itemId); + System.out.println(bomLine.getItemRevision().getStringProperty("object_string")); + String newItemId = itemId.replaceFirst(itemId.split("-")[0], jTextField1.getText()); + System.out.println("newItemId:"+newItemId); + TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(newItemId, "A"); + //TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A",bomLine.getItemRevision().getStringProperty("object_name"), "", true, null); TCComponentItemRevision latestItemRevision = saveAsItem.getLatestItemRevision(); // 滻 for (String attrStr : sxxdate) { if (attrStr.startsWith(bomLine.getItemRevision().getItem().getStringProperty("object_type"))) { try { - replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr); - } catch (ParseException e1) { + //Util.replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr); + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName).getItem(), getValues[1]); + Util.setTCPropertyValue(latestItemRevision.getItem(), getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName).getItemRevision(), getValues[1]); + Util.setTCPropertyValue(latestItemRevision, getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = itemMapBoMap.get(objectName).getItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = latestItemRevision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + }else if(getValues[0].equals("bom")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName), getValues[1]); + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine line1 = view1.setWindowTopLine(latestItemRevision.getItem(), latestItemRevision, null, null); + Util.setTCPropertyValue(line1, getValues[1], val); + } + } + } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } @@ -477,9 +567,15 @@ public class NewJFrame1 extends JFrame { } } // 滻 - - // 滻bom - bomLine.replace(saveAsItem, latestItemRevision, newview); + + // + latestItemRevision.setStringProperty("kwc6_ProductID", jTextField1.getText()); + // bom + String stringProperty = bomLine.getItemRevision().getStringProperty("object_string"); + System.out.println("Ҫ滻У"+stringProperty); + String stringProperty2 = latestItemRevision.getStringProperty("object_string"); + System.out.println("Ҫ滻У"+stringProperty2); + bomLine.replace(saveAsItem, latestItemRevision, null); if (bomLine.hasChildren()) { for (AIFComponentContext aifComponentContext : bomLine.getChildren()) { TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent(); @@ -489,6 +585,7 @@ public class NewJFrame1 extends JFrame { } } else { // bomviewɾ + bomLine.cut(); return; } @@ -515,109 +612,6 @@ public class NewJFrame1 extends JFrame { } } } - - private void replaceAttribute(TCComponentBOMLine oldLine, TCComponentItemRevision newLine, String attrStr) - throws TCException, ParseException { - String[] attrs = attrStr.split("=")[1].split(";"); - for (String attr : attrs) { - String[] p1 = attr.split("\\."); - - if (p1[0].equals("item")) { - // pitem.setStringProperty(p1[1], val); - String val = oldLine.getItem().getStringProperty(p1[1]); - TCComponentItem pitem = newLine.getItem(); - TCProperty property = (TCProperty) pitem.getTCProperty(p1[1]); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - pitem.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - pitem.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - pitem.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - pitem.setDateProperty(p1[1], date); - } - } - break; - default: - pitem.setStringProperty(p1[1], val); - break; - } - } else if (p1[0].equals("rev")) { - String val = oldLine.getItemRevision().getStringProperty(p1[1]); - TCComponentItemRevision prev = newLine; - TCProperty property = (TCProperty) prev.getTCProperty(p1[1]); - // prev.setStringProperty(p1[1], val); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - prev.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - prev.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - prev.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - prev.setDateProperty(p1[1], date); - } - } - break; - default: - prev.setStringProperty(p1[1], val); - break; - } - } else if (p1[0].equals("bom")) { - String val = oldLine.getStringProperty(p1[1]); - TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); - TCComponentBOMWindow view = winType.create(null); - TCComponentBOMLine line = view.setWindowTopLine(newLine.getItem(), newLine, null, null); - TCProperty property = (TCProperty) line.getTCProperty(p1[1]); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - line.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - line.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - line.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - line.setDateProperty(p1[1], date); - } - } - break; - default: - line.setStringProperty(p1[1], val); - break; - } - } - } - } + } diff --git a/src/com/connor/kwc/createBom/NewJFrame2.java b/src/com/connor/kwc/createBom/NewJFrame2.java index 6ebebec..9d8e2aa 100644 --- a/src/com/connor/kwc/createBom/NewJFrame2.java +++ b/src/com/connor/kwc/createBom/NewJFrame2.java @@ -1,6 +1,8 @@ package com.connor.kwc.createBom; +import java.awt.Dimension; import java.awt.EventQueue; +import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; @@ -35,6 +37,7 @@ import com.teamcenter.rac.kernel.TCComponentBOMWindow; import com.teamcenter.rac.kernel.TCComponentBOMWindowType; import com.teamcenter.rac.kernel.TCComponentBomChange; 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.TCException; @@ -75,6 +78,7 @@ public class NewJFrame2 extends JFrame { private Map dataMap; private TCComponentFolder target; private List tempList; + private List tempIdList; private TCComponent component; private Map itemMapIsSel = new HashMap<>(); private Map itemMapBoMap = new HashMap<>(); @@ -141,8 +145,9 @@ public class NewJFrame2 extends JFrame { jLabel3.setText("ͣ"); - List typeList = (ArrayList) dataMap.get("typeList"); - String[] typeArray = (String[]) typeList.toArray(); + ArrayList typeList = (ArrayList) dataMap.get("typeList"); + //String[] typeArray = (String[]) typeList.toArray(); + String[] typeArray = typeList.stream().toArray(String[]::new); jComboBox2.setModel(new DefaultComboBoxModel<>(typeArray)); jComboBox2.setSelectedIndex(0); @@ -150,9 +155,11 @@ public class NewJFrame2 extends JFrame { String template = templateMap.get(jComboBox2.getSelectedItem()); String[] split = template.split(";"); tempList = new ArrayList(); + tempIdList = new ArrayList(); // UIDģϢ for (String uid : split) { try { + tempIdList.add(uid); TCComponent component = session.stringToComponent(uid); tempList.add(component.getStringProperty("object_name")); } catch (TCException e1) { @@ -160,14 +167,14 @@ public class NewJFrame2 extends JFrame { e1.printStackTrace(); } } - - String[] array = (String[]) tempList.toArray(); + String[] array = tempList.stream().toArray(String[]::new); + // String[] array = (String[]) tempList.toArray(); jComboBox3.setModel(new DefaultComboBoxModel<>(array)); jComboBox3.setSelectedIndex(0); jLabel4.setText("ģ壺"); try { // ģ崴ṹûѡ - component = session.stringToComponent(tempList.get(0)); + component = session.stringToComponent(tempIdList.get(0)); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); TCComponentBOMWindow view = winType.create(null); if (component instanceof TCComponentItemRevision) { @@ -305,6 +312,14 @@ public class NewJFrame2 extends JFrame { GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // ȡĻߴ + int screenWidth = screenSize.width; // ȡĻ + int screenHeight = screenSize.height; // ȡĻ߶ + int x = (screenWidth - this.getWidth()) / 2; // FrameϽx + int y = (screenHeight - this.getHeight()) / 2; // FrameϽy + this.setLocation(x, y); // Frameλ + this.setDefaultCloseOperation(2); + // ģ jComboBox2.addItemListener(new ItemListener() { @@ -313,10 +328,11 @@ public class NewJFrame2 extends JFrame { Map templateMap = (HashMap) dataMap.get("templateMap"); String template = templateMap.get(jComboBox2.getSelectedItem()); String[] split = template.split(";"); - List tempList = new ArrayList(); + tempList = new ArrayList(); // UIDģϢ for (String uid : split) { try { + tempIdList.add(uid); TCComponent component = session.stringToComponent(uid); tempList.add(component.getStringProperty("object_name")); } catch (TCException e1) { @@ -324,8 +340,8 @@ public class NewJFrame2 extends JFrame { e1.printStackTrace(); } } - - String[] array = (String[]) tempList.toArray(); + String[] array = tempList.stream().toArray(String[]::new); + //String[] array = (String[]) tempList.toArray(); jComboBox3.setModel(new DefaultComboBoxModel<>(array)); } }); @@ -336,7 +352,7 @@ public class NewJFrame2 extends JFrame { public void itemStateChanged(ItemEvent e) { try { int selectedIndex = jComboBox3.getSelectedIndex(); - String uid = tempList.get(selectedIndex); + String uid = tempIdList.get(selectedIndex); component = session.stringToComponent(uid); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); @@ -375,8 +391,8 @@ public class NewJFrame2 extends JFrame { TCComponentItemRevision revision = (TCComponentItemRevision) component; try { if (itemMapIsSel.get(revision.getStringProperty("object_string")).isSelected) { - TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", jTextField2.getText(), - "", true, null); + TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A"); + //TCComponentItem newItem = revision.saveAsItem(jTextField1.getText(), "A", jTextField2.getText(),"", true, null); TCComponentItemRevision newRevision = newItem.getLatestItemRevision(); TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session .getTypeComponent("BOMWindow"); @@ -386,8 +402,36 @@ public class NewJFrame2 extends JFrame { for (String attrStr : sxxdate) { if (attrStr.startsWith(line.getItemRevision().getItem().getStringProperty("object_type"))) { try { - replaceAttribute(line, newRevision, attrStr); - } catch (ParseException e1) { + //Util.replaceAttribute(line, newRevision, attrStr); + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(line.getItem(), getValues[1]); + Util.setTCPropertyValue(newRevision.getItem(), getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(line.getItemRevision(), getValues[1]); + Util.setTCPropertyValue(newRevision, getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = line.getItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = newRevision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + }else if(getValues[0].equals("bom")) { + val = Util.getTCPropertyValue(line, getValues[1]); + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine line1 = view1.setWindowTopLine(newRevision.getItem(), newRevision, null, null); + Util.setTCPropertyValue(line1, getValues[1], val); + } + } + } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } @@ -397,7 +441,9 @@ public class NewJFrame2 extends JFrame { // ݹBOMṹɾδѡеĶ collectAllBomLine(line, jTextField1.getText(), winType, view, false); TCComponentItemRevision itemRevision = line.getItemRevision(); - target.add("", itemRevision); + target.add("contents", itemRevision); + MessageBox.post("ɹ", "ʾ", MessageBox.INFORMATION); + return; } else { return; @@ -423,7 +469,7 @@ public class NewJFrame2 extends JFrame { */ public void collectAllBomLine(TCComponentBOMLine bomLine, String newId, TCComponentBOMWindowType winType, TCComponentBOMWindow newview, Boolean flag) throws TCException { - String objectName = bomLine.getItemRevision().getStringProperty("object_name"); + String objectName = bomLine.getItemRevision().getStringProperty("object_string"); boolean selected = itemMapIsSel.get(objectName).isSelected(); // жϽǷѡ if (selected) { @@ -440,15 +486,46 @@ public class NewJFrame2 extends JFrame { } else { // ǵһεݹʱÿεݹһ󣬰ҪͬͬȥȻ󽫶滻µbomviewȥ - TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A", - bomLine.getItemRevision().getStringProperty("object_name"), "", true, null); + String itemId = bomLine.getItemRevision().getStringProperty("item_id"); + + String newItemId = itemId.replaceFirst(itemId.split("-")[0], jTextField1.getText()); + TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(newItemId, "A"); + //TCComponentItem saveAsItem = bomLine.getItemRevision().saveAsItem(jTextField1.getText(), "A", bomLine.getItemRevision().getStringProperty("object_name"), "", true, null); TCComponentItemRevision latestItemRevision = saveAsItem.getLatestItemRevision(); // 滻 for (String attrStr : sxxdate) { if (attrStr.startsWith(bomLine.getItemRevision().getItem().getStringProperty("object_type"))) { try { - replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr); - } catch (ParseException e1) { + //Util.replaceAttribute(itemMapBoMap.get(objectName), latestItemRevision, attrStr); + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName).getItem(), getValues[1]); + Util.setTCPropertyValue(latestItemRevision.getItem(), getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName).getItemRevision(), getValues[1]); + Util.setTCPropertyValue(latestItemRevision, getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = itemMapBoMap.get(objectName).getItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = latestItemRevision.getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + }else if(getValues[0].equals("bom")) { + val = Util.getTCPropertyValue(itemMapBoMap.get(objectName), getValues[1]); + TCComponentBOMWindowType winType1 = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view1 = winType1.create(null); + TCComponentBOMLine line1 = view1.setWindowTopLine(latestItemRevision.getItem(), latestItemRevision, null, null); + Util.setTCPropertyValue(line1, getValues[1], val); + } + } + } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } @@ -457,8 +534,10 @@ public class NewJFrame2 extends JFrame { } // 滻 + // + latestItemRevision.setStringProperty("kwc6_ProductID", jTextField1.getText()); // 滻bom - bomLine.replace(saveAsItem, latestItemRevision, newview); + bomLine.replace(saveAsItem, latestItemRevision, null); if (bomLine.hasChildren()) { for (AIFComponentContext aifComponentContext : bomLine.getChildren()) { TCComponentBOMLine line = (TCComponentBOMLine) aifComponentContext.getComponent(); @@ -468,6 +547,7 @@ public class NewJFrame2 extends JFrame { } } else { // bomviewɾ + bomLine.cut(); return; } @@ -481,8 +561,8 @@ public class NewJFrame2 extends JFrame { * @throws TCException */ private void getTree(TCComponentBOMLine bomLine, CheckBoxTreeNode rootNode) throws TCException { - itemMapIsSel.put(bomLine.getItemRevision().getStringProperty("object_name"), rootNode); - itemMapBoMap.put(bomLine.getItemRevision().getStringProperty("object_name"), bomLine); + itemMapIsSel.put(bomLine.getItemRevision().getStringProperty("object_string"), rootNode); + itemMapBoMap.put(bomLine.getItemRevision().getStringProperty("object_string"), bomLine); if (bomLine.hasChildren()) { AIFComponentContext[] children = bomLine.getChildren(); for (AIFComponentContext aifComponentContext : children) { @@ -495,107 +575,4 @@ public class NewJFrame2 extends JFrame { } } - private void replaceAttribute(TCComponentBOMLine oldLine, TCComponentItemRevision newLine, String attrStr) - throws TCException, ParseException { - String[] attrs = attrStr.split("=")[1].split(";"); - for (String attr : attrs) { - String[] p1 = attr.split("\\."); - - if (p1[0].equals("item")) { - // pitem.setStringProperty(p1[1], val); - String val = oldLine.getItem().getStringProperty(p1[1]); - TCComponentItem pitem = newLine.getItem(); - TCProperty property = (TCProperty) pitem.getTCProperty(p1[1]); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - pitem.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - pitem.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - pitem.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - pitem.setDateProperty(p1[1], date); - } - } - break; - default: - pitem.setStringProperty(p1[1], val); - break; - } - } else if (p1[0].equals("rev")) { - String val = oldLine.getItemRevision().getStringProperty(p1[1]); - TCComponentItemRevision prev = newLine; - TCProperty property = (TCProperty) prev.getTCProperty(p1[1]); - // prev.setStringProperty(p1[1], val); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - prev.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - prev.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - prev.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - prev.setDateProperty(p1[1], date); - } - } - break; - default: - prev.setStringProperty(p1[1], val); - break; - } - } else if (p1[0].equals("bom")) { - String val = oldLine.getStringProperty(p1[1]); - TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); - TCComponentBOMWindow view = winType.create(null); - TCComponentBOMLine line = view.setWindowTopLine(newLine.getItem(), newLine, null, null); - TCProperty property = (TCProperty) line.getTCProperty(p1[1]); - switch (property.getPropertyType()) { - case TCProperty.PROP_string: - case TCProperty.PROP_long_string: - line.setStringProperty(p1[1], val); - break; - case TCProperty.PROP_short: - case TCProperty.PROP_int: - line.setIntProperty(p1[1], Integer.parseInt(val)); - break; - case TCProperty.PROP_double: - case TCProperty.PROP_float: - line.setDoubleProperty(p1[1], Double.parseDouble(val)); - break; - case TCProperty.PROP_date: - if (!val.equals("")) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); - Date date = sdf.parse(p1[1]); - if (date != null) { - line.setDateProperty(p1[1], date); - } - } - break; - default: - line.setStringProperty(p1[1], val); - break; - } - } - } - } } diff --git a/src/com/connor/kwc/createBom/Util.java b/src/com/connor/kwc/createBom/Util.java index a1cebe9..c92bd6d 100644 --- a/src/com/connor/kwc/createBom/Util.java +++ b/src/com/connor/kwc/createBom/Util.java @@ -6,14 +6,22 @@ */ package com.connor.kwc.createBom; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.HashMap; import java.util.Map; - import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.kernel.TCAccessControlService; import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCComponentBOMWindow; +import com.teamcenter.rac.kernel.TCComponentBOMWindowType; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentItem; +import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCProperty; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.kernel.TCTextService; import com.teamcenter.rac.kernel.TCUserService; @@ -40,6 +48,209 @@ public class Util { session = (TCSession) AIFUtility.getCurrentApplication().getSession(); textService = session.getTextService(); } + + public static Object getTCPropertyValue(TCComponent item,String propertyName) + { + Object result = ""; + + try { + TCProperty tcProperty = item.getTCProperty(propertyName); + if(tcProperty == null) + { + System.out.println("δȡԣ"+propertyName); + return result; + } + switch (tcProperty.getPropertyType()) { + case TCProperty.PROP_double: + result = tcProperty.getDoubleValue(); + break; + case TCProperty.PROP_int: + result = tcProperty.getIntValue(); + break; + case TCProperty.PROP_string: + result = tcProperty.getStringValue(); + break; + case TCProperty.PROP_date: + result = tcProperty.getDateValue(); + break; + default: + break; + } + + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return result; + } + public static void setTCPropertyValue(TCComponent item,String propertyName,Object value) + { + try { + TCProperty tcProperty = item.getTCProperty(propertyName); + switch (tcProperty.getPropertyType()) { + case TCProperty.PROP_double: + if(value instanceof Double) + { + tcProperty.setDoubleValue((double) value); + } + else + { + tcProperty.setDoubleValue(Double.parseDouble(value.toString())); + } + break; + case TCProperty.PROP_int: + if(value instanceof Integer) + { + tcProperty.setDoubleValue((int) value); + } + else + { + tcProperty.setDoubleValue(Integer.parseInt(value.toString())); + } + break; + case TCProperty.PROP_string: + tcProperty.setStringValue(value.toString()); + break; + case TCProperty.PROP_date: + if(value instanceof Date) + { + tcProperty.setDateValue((Date) value); + } + else + { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-M-dd HH:mm"); + tcProperty.setDateValue(sdf.parse(value.toString())); + } + break; + default: + break; + } + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + /** + * + * @Title: replaceAttribute + * @Description: ݹ̳{滻} + * @param @param oldLine + * @param @param newLine + * @param @param attrStr + * @param @throws TCException + * @param @throws ParseException + * @return void + * @throws + */ + public static void replaceAttribute(TCComponentBOMLine oldLine, TCComponentItemRevision newLine, String attrStr) + throws TCException, ParseException { + String[] attrs = attrStr.split("=")[1].split(";"); + for (String attr : attrs) { + String[] p1 = attr.split("\\."); + + if (p1[0].equals("item")) { + // pitem.setStringProperty(p1[1], val); + String val = oldLine.getItem().getStringProperty(p1[1]); + TCComponentItem pitem = newLine.getItem(); + TCProperty property = (TCProperty) pitem.getTCProperty(p1[1]); + switch (property.getPropertyType()) { + case TCProperty.PROP_string: + case TCProperty.PROP_long_string: + pitem.setStringProperty(p1[1], val); + break; + case TCProperty.PROP_short: + case TCProperty.PROP_int: + pitem.setIntProperty(p1[1], Integer.parseInt(val)); + break; + case TCProperty.PROP_double: + case TCProperty.PROP_float: + pitem.setDoubleProperty(p1[1], Double.parseDouble(val)); + break; + case TCProperty.PROP_date: + if (!val.equals("")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); + Date date = sdf.parse(p1[1]); + if (date != null) { + pitem.setDateProperty(p1[1], date); + } + } + break; + default: + pitem.setStringProperty(p1[1], val); + break; + } + } else if (p1[0].equals("rev")) { + String val = oldLine.getItemRevision().getStringProperty(p1[1]); + TCComponentItemRevision prev = newLine; + TCProperty property = (TCProperty) prev.getTCProperty(p1[1]); + // prev.setStringProperty(p1[1], val); + switch (property.getPropertyType()) { + case TCProperty.PROP_string: + case TCProperty.PROP_long_string: + prev.setStringProperty(p1[1], val); + break; + case TCProperty.PROP_short: + case TCProperty.PROP_int: + prev.setIntProperty(p1[1], Integer.parseInt(val)); + break; + case TCProperty.PROP_double: + case TCProperty.PROP_float: + prev.setDoubleProperty(p1[1], Double.parseDouble(val)); + break; + case TCProperty.PROP_date: + if (!val.equals("")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); + Date date = sdf.parse(p1[1]); + if (date != null) { + prev.setDateProperty(p1[1], date); + } + } + break; + default: + prev.setStringProperty(p1[1], val); + break; + } + } else if (p1[0].equals("bom")) { + String val = oldLine.getStringProperty(p1[1]); + TCComponentBOMWindowType winType = (TCComponentBOMWindowType) session.getTypeComponent("BOMWindow"); + TCComponentBOMWindow view = winType.create(null); + TCComponentBOMLine line = view.setWindowTopLine(newLine.getItem(), newLine, null, null); + TCProperty property = (TCProperty) line.getTCProperty(p1[1]); + switch (property.getPropertyType()) { + case TCProperty.PROP_string: + case TCProperty.PROP_long_string: + line.setStringProperty(p1[1], val); + break; + case TCProperty.PROP_short: + case TCProperty.PROP_int: + line.setIntProperty(p1[1], Integer.parseInt(val)); + break; + case TCProperty.PROP_double: + case TCProperty.PROP_float: + line.setDoubleProperty(p1[1], Double.parseDouble(val)); + break; + case TCProperty.PROP_date: + if (!val.equals("")) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss"); + Date date = sdf.parse(p1[1]); + if (date != null) { + line.setDateProperty(p1[1], date); + } + } + break; + default: + line.setStringProperty(p1[1], val); + break; + } + } + } + } + + /** * diff --git a/src/com/connor/kwc/createDWG/CreateDWGHandler.java b/src/com/connor/kwc/createDWG/CreateDWGHandler.java index c0fbb6d..fb38f21 100644 --- a/src/com/connor/kwc/createDWG/CreateDWGHandler.java +++ b/src/com/connor/kwc/createDWG/CreateDWGHandler.java @@ -87,7 +87,17 @@ public class CreateDWGHandler extends AbstractHandler { } return null; } - + /** + * + * @Title: createdataSetForUID + * @Description: uidݼ + * @param @param revision + * @param @param templateMap + * @param @param key + * @param @throws TCException + * @return void + * @throws + */ public void createdataSetForUID(TCComponentItemRevision revision, Map templateMap, String key) throws TCException { if (templateMap.containsKey(key)) { diff --git a/src/com/connor/kwc/createTemplate/CreateTemplateDialg.java b/src/com/connor/kwc/createTemplate/CreateTemplateDialg.java index daced7b..ab1bf0b 100644 --- a/src/com/connor/kwc/createTemplate/CreateTemplateDialg.java +++ b/src/com/connor/kwc/createTemplate/CreateTemplateDialg.java @@ -1,7 +1,14 @@ package com.connor.kwc.createTemplate; +import java.awt.Dimension; +import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; import javax.swing.DefaultComboBoxModel; import javax.swing.GroupLayout; @@ -22,10 +29,19 @@ import com.connor.kwc.createBom.CheckBoxTreeNode; import com.connor.kwc.createBom.CheckBoxTreeNodeSelectionListener; import com.connor.kwc.createBom.Util; import com.teamcenter.rac.aif.AIFPortal; +import com.teamcenter.rac.aif.kernel.AIFComponentContext; +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCComponentBOMWindow; +import com.teamcenter.rac.kernel.TCComponentBOMWindowType; import com.teamcenter.rac.kernel.TCComponentFolder; import com.teamcenter.rac.kernel.TCComponentFolderType; +import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentItem; +import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCProperty; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.MessageBox; @@ -39,238 +55,270 @@ import com.teamcenter.rac.util.MessageBox; */ public class CreateTemplateDialg extends JFrame { - private TCSession session; - private TCComponent target; - private JButton jButton3; - private JLabel jLabel3; - private JPanel jPanel1; - private JPanel jPanel2; - private JPanel jPanel4; - private JScrollPane jScrollPane1; - private JTextField jTextField3; - private JTree jTree1; - private String[] sxxdate; + private TCSession session; + private TCComponent target; + private JButton jButton3; + private JLabel jLabel3; + private JPanel jPanel1; + private JPanel jPanel2; + private JPanel jPanel4; + private JScrollPane jScrollPane1; + private JTextField jTextField3; + private JTree jTree1; + private String[] sxxdate; + private String[] sxxAttrDate; + private Map isSelectMap = new HashMap(); + private Map> isSelectByNodeMap = new HashMap>(); - /** - * Creates new form NewJFrame2 - */ - public CreateTemplateDialg(TCSession session, TCComponent folder) { - this.session = session; - this.target = folder; - getData(); - try { - initComponents(); - } catch (TCException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } + /** + * Creates new form NewJFrame2 + */ + public CreateTemplateDialg(TCSession session, TCComponent folder) { + this.session = session; + this.target = folder; + getData(); + try { + initComponents(); + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } - private void getData() { - // TODO Auto-generated method stub - sxxdate = Util.getSXX(session, "KWC_CreateDOCtemplate"); + private void getData() { + // TODO Auto-generated method stub + sxxdate = Util.getSXX(session, "KWC_CreateDOCtemplate"); + sxxAttrDate = Util.getSXX(session, "KWC_CreateDOC_attribute"); - } + } - @SuppressWarnings("unchecked") - // - private void initComponents() throws TCException { - this.setTitle("ģ崴"); - jPanel1 = new JPanel(); - jPanel2 = new JPanel(); - jLabel3 = new JLabel(); - jScrollPane1 = new JScrollPane(); - jTree1 = new JTree(); - // ʼJtree + @SuppressWarnings("unchecked") + // + private void initComponents() throws TCException { + this.setTitle("ģ崴"); + jPanel1 = new JPanel(); + jPanel2 = new JPanel(); + jLabel3 = new JLabel(); + jScrollPane1 = new JScrollPane(); + jTree1 = new JTree(); + // ʼJtree + initTree(jTree1); + jTree1.setCellRenderer(new CheckBoxTreeCellRenderer()); + jButton3 = new JButton(); + jTextField3 = new JTextField(); + jTextField3.setText(target.getStringProperty("item_id")); + jPanel4 = new JPanel(); - jTree1.setCellRenderer(new CheckBoxTreeCellRenderer()); - jButton3 = new JButton(); - jTextField3 = new JTextField(); - jTextField3.setText(target.getStringProperty("item_id")); - jPanel4 = new JPanel(); + setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + setBackground(new java.awt.Color(240, 240, 240)); - setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - setBackground(new java.awt.Color(240, 240, 240)); + jPanel1.setBackground(new java.awt.Color(240, 240, 240)); - jPanel1.setBackground(new java.awt.Color(240, 240, 240)); + jPanel2.setBackground(new java.awt.Color(240, 240, 240)); - jPanel2.setBackground(new java.awt.Color(240, 240, 240)); + jLabel3.setText("Ʒţ"); - jLabel3.setText("Ʒţ"); + jScrollPane1.setViewportView(jTree1); - jScrollPane1.setViewportView(jTree1); + jButton3.setText("ȷ"); - jButton3.setText("ȷ"); + jTextField3.setText(""); - jTextField3.setText(""); + GroupLayout jPanel2Layout = new GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup().addGap(53, 53, 53).addComponent(jLabel3) + .addGap(18, 18, 18) + .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, 213, GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18).addComponent(jButton3) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE).addContainerGap())); + jPanel2Layout + .setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup().addGap(13, 13, 13) + .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(jButton3) + .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, + GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel3)) + .addGap(18, 18, 18) + .addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 544, GroupLayout.PREFERRED_SIZE) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); - GroupLayout jPanel2Layout = new GroupLayout(jPanel2); - jPanel2.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup().addGap(53, 53, 53).addComponent(jLabel3) - .addGap(18, 18, 18) - .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, 213, GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18).addComponent(jButton3) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(jPanel2Layout.createSequentialGroup().addContainerGap() - .addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE).addContainerGap())); - jPanel2Layout - .setVerticalGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel2Layout.createSequentialGroup().addGap(13, 13, 13) - .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(jButton3) - .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel3)) - .addGap(18, 18, 18) - .addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, 544, GroupLayout.PREFERRED_SIZE) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); + jPanel4.setBackground(new java.awt.Color(255, 255, 255)); - jPanel4.setBackground(new java.awt.Color(255, 255, 255)); + GroupLayout jPanel4Layout = new GroupLayout(jPanel4); + jPanel4.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 538, Short.MAX_VALUE)); + jPanel4Layout.setVerticalGroup( + jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE)); - GroupLayout jPanel4Layout = new GroupLayout(jPanel4); - jPanel4.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup( - jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 538, Short.MAX_VALUE)); - jPanel4Layout.setVerticalGroup( - jPanel4Layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 0, Short.MAX_VALUE)); + GroupLayout jPanel1Layout = new GroupLayout(jPanel1); + jPanel1.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() + .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(jPanel2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE)) + .addContainerGap())); + jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(jPanel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, + GroupLayout.PREFERRED_SIZE) + .addGap(73, 73, 73) + .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap())); - GroupLayout jPanel1Layout = new GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() - .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(jPanel2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE)) - .addContainerGap())); - jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() - .addComponent(jPanel2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addGap(73, 73, 73) - .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addContainerGap())); + GroupLayout layout = new GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap() + .addComponent(jPanel1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap())); + layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup().addContainerGap() + .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, 619, GroupLayout.PREFERRED_SIZE) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); - GroupLayout layout = new GroupLayout(getContentPane()); - getContentPane().setLayout(layout); - layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap() - .addComponent(jPanel1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addContainerGap())); - layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup().addContainerGap() - .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, 619, GroupLayout.PREFERRED_SIZE) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); + pack(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // ȡĻߴ + int screenWidth = screenSize.width; // ȡĻ + int screenHeight = screenSize.height; // ȡĻ߶ + int x = (screenWidth - this.getWidth()) / 2; // FrameϽx + int y = (screenHeight - this.getHeight()) / 2; // FrameϽy + this.setLocation(x, y); // Frameλ + this.setDefaultCloseOperation(2); - pack(); - - this.jButton3.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - // TODO Auto-generated method stub - String name = jTextField3.getText(); - if (name.isEmpty()) { - MessageBox.post("ƷŲΪգ", "ʾ ", MessageBox.INFORMATION); - } else { - TCComponentFolderType folderType; - try { - Util.setByPass(true); - folderType = (TCComponentFolderType) session.getTypeComponent("LD6_CusProdFolder"); - TCComponentFolder folder = Util.createFolderBySOA(folderType.getTypeName(), name); - //TCComponentFolder folder = folderType.create(name, "", "LD6_CusProdFolder"); - target.add("contents", folder); - CheckBoxTreeNode root = (CheckBoxTreeNode) jTree1.getModel().getRoot(); - createFolderStruct(root,folder,(TCComponentFolderType) session.getTypeComponent("LD6_ProjMaFolder"),true); - Util.setByPass(false); - dispose(); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - } - }); - } + this.jButton3.addActionListener(new ActionListener() { - /** - * - * @param tree - */ - private void initTree(JTree tree){ - String puids = sxxdate[0].split("=")[1]; - TCComponent component; - try { - CheckBoxTreeNode rootNode = new CheckBoxTreeNode("ģ"); - String[] puid = puids.split(";"); - for(String uid : puid) { - component = session.stringToComponent(uid); - if(component == null || !(component instanceof TCComponentFolder)) { - MessageBox.post(puid + " puidTCвڶ߸puidӦIJǡļС", "쳣", MessageBox.ERROR); - return; - }else { - buildTree(component,rootNode); - } - } - - DefaultTreeModel model = new DefaultTreeModel(rootNode); - tree.addMouseListener(new CheckBoxTreeNodeSelectionListener()); - tree.setModel(model); - tree.setCellRenderer(new CheckBoxTreeCellRenderer()); - //չнڵ㲢ѡ - for (int i = 0; i < tree.getRowCount(); i++) { - tree.expandRow(i); - } - rootNode.setSelected(true); - } catch (TCException e) { - e.printStackTrace(); - } - } - - /** - * ݹ鴴ӽڵ - * @param component - * @param rootNode - * @throws TCException - */ - private void buildTree(TCComponent component, CheckBoxTreeNode rootNode) throws TCException { - TCComponent[] relatedComponent = component.getRelatedComponents("contents"); - if(relatedComponent != null) { - for (TCComponent child : relatedComponent) { - CheckBoxTreeNode childNode = new CheckBoxTreeNode(child.getStringProperty("object_name")); - rootNode.add(childNode); - buildTree(child,childNode); - } - } - - } - - /** - * ݹ½ļнṹ - * @param root ڵ - * @param folder ڵɵļ - * @param folderType - * @throws Exception - */ - private void createFolderStruct(CheckBoxTreeNode root, TCComponentFolder parentFolder, - TCComponentFolderType folderType,boolean ifTop) throws Exception { - if(root.isSelected()) { - if(ifTop) { - for (int i = 0; i < root.getChildCount(); i++) { - CheckBoxTreeNode child = (CheckBoxTreeNode) root.getChildAt(i); - createFolderStruct(child,parentFolder,folderType,false); - } - } - else { - TCComponentFolder folder = Util.createFolderBySOA(folderType.getTypeName(), root.toString()); - parentFolder.add("contents", folder); - for (int i = 0; i < root.getChildCount(); i++) { - CheckBoxTreeNode child = (CheckBoxTreeNode) root.getChildAt(i); - createFolderStruct(child,folder,folderType,false); - } - } - } - - } + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + String name = jTextField3.getText(); + if (name.isEmpty()) { + MessageBox.post("ƷŲΪգ", "ʾ ", MessageBox.INFORMATION); + } else { + try { + Util.setByPass(true); + + CheckBoxTreeNode root = (CheckBoxTreeNode) jTree1.getModel().getRoot(); + //ݵǰļµĹϵƥڵѡ״̬ + for(AIFComponentContext comp : target.getChildren()) { + TCComponent component = (TCComponent)comp.getComponent(); + if(isSelectByNodeMap.containsKey(component.getStringProperty("object_name"))) { + Map map = isSelectByNodeMap.get(component.getStringProperty("object_name")); + for (Map.Entry entry : map.entrySet()) { + if(entry.getValue().isSelected()) { + //ļԹ + TCComponentItem item = (TCComponentItem)entry.getKey(); + TCComponentItem saveAsItem = item.getLatestItemRevision().saveAsItem(jTextField3.getText(), "A", item.getStringProperty("object_name"), "", true, null); + // 滻 + for (String attrStr : sxxAttrDate) { + if (attrStr.startsWith(saveAsItem.getStringProperty("object_type"))) { + try { + String[] replaces = attrStr.split("=")[1].split(";"); + for(String replace : replaces) { + String[] getValues = replace.split("\\."); + Object val = ""; + if(getValues[0].equals("item")) { + val = Util.getTCPropertyValue(item, getValues[1]); + Util.setTCPropertyValue(saveAsItem, getValues[1], val); + //val = item.getProperty(getValues[1]); + }else if(getValues[0].equals("rev")) { + val = Util.getTCPropertyValue(item.getLatestItemRevision(), getValues[1]); + Util.setTCPropertyValue(saveAsItem.getLatestItemRevision(), getValues[1], val); + //val = rev.getProperty(getValues[1]); + }else if(getValues[0].equals("rm")) { + TCComponent[] oldreferenceListProperty = item.getLatestItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm oldform = (TCComponentForm) oldreferenceListProperty[0]; + val = Util.getTCPropertyValue(oldform, getValues[1]); + TCComponent[] newreferenceListProperty = saveAsItem.getLatestItemRevision().getReferenceListProperty("IMAN_master_form_rev"); + TCComponentForm newform = (TCComponentForm) newreferenceListProperty[0]; + Util.setTCPropertyValue(newform, getValues[1], val); + //val = form.getProperty(getValues[1]); + } + } + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + break; + } + } + component.add("contents", saveAsItem); + } + + } + } + } + Util.setByPass(false); + dispose(); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + }); + } + + /** + * + * + * @param tree + */ + private void initTree(JTree tree) { + String puids = sxxdate[0].split("=")[1]; + TCComponent component; + try { + CheckBoxTreeNode rootNode = new CheckBoxTreeNode("ģ"); + String[] puid = puids.split(";"); + for (String uid : puid) { + component = session.stringToComponent(uid); + if (component == null || !(component instanceof TCComponentFolder)) { + MessageBox.post(puid + " puidTCвڶ߸puidӦIJǡļС", "쳣", MessageBox.ERROR); + return; + } else { + buildTree(component, rootNode); + } + } + + DefaultTreeModel model = new DefaultTreeModel(rootNode); + tree.addMouseListener(new CheckBoxTreeNodeSelectionListener()); + tree.setModel(model); + tree.setCellRenderer(new CheckBoxTreeCellRenderer()); + // չнڵ㲢ѡ + for (int i = 0; i < tree.getRowCount(); i++) { + tree.expandRow(i); + } + rootNode.setSelected(true); + } catch (TCException e) { + e.printStackTrace(); + } + } + + /** + * ѭӽڵ + * + * @param component + * @param rootNode + * @throws TCException + */ + private void buildTree(TCComponent component, CheckBoxTreeNode rootNode) throws TCException { + CheckBoxTreeNode topNode = new CheckBoxTreeNode(component.getStringProperty("object_name")); + rootNode.add(topNode); + TCComponent[] relatedComponent = component.getRelatedComponents("contents"); + if (relatedComponent != null) { + for (TCComponent child : relatedComponent) { + CheckBoxTreeNode childNode = new CheckBoxTreeNode(child.getStringProperty("object_name")); + isSelectMap.put(child, childNode); + topNode.add(childNode); + } + isSelectByNodeMap.put(component.getStringProperty("object_name"), isSelectMap); + } + + } } diff --git a/src/com/connor/kwc/createTemplate/CreateTemplateHandler.java b/src/com/connor/kwc/createTemplate/CreateTemplateHandler.java index 2ba2b50..43a1b84 100644 --- a/src/com/connor/kwc/createTemplate/CreateTemplateHandler.java +++ b/src/com/connor/kwc/createTemplate/CreateTemplateHandler.java @@ -4,10 +4,13 @@ import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import com.connor.kwc.createBom.CreateBOMOperation; +import com.connor.kwc.createBom.Util; import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; import com.teamcenter.rac.aifrcp.AIFUtility; import com.teamcenter.rac.kernel.TCComponentFolder; +import com.teamcenter.rac.kernel.TCComponentItem; +import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.util.MessageBox; @@ -31,13 +34,20 @@ public class CreateTemplateHandler extends AbstractHandler { @Override public void run() { - InterfaceAIFComponent folder = app.getTargetComponent(); - session = (TCSession) folder.getSession(); - if (folder instanceof TCComponentFolder) { + InterfaceAIFComponent item = app.getTargetComponent(); + session = (TCSession) item.getSession(); + if (item instanceof TCComponentItem) { try { - if ("XYProduct".equals(((TCComponentFolder) folder).getStringProperty("object_type"))) { + if ("XYProduct".equals(((TCComponentItem) item).getStringProperty("object_type"))) { + // жϵǰûǷȨ޲ǰ + Boolean userHasPowerForCompont = Util.userHasPowerForCompont(session, + (TCComponentItem) item); + if (!userHasPowerForCompont) { + MessageBox.post("ûûдȨ", "ʾ", MessageBox.INFORMATION); + return; + } CreateTemplateOperation createTemplateOperation = new CreateTemplateOperation(session, - folder); + item); session.queueOperation(createTemplateOperation); } else { MessageBox.post("ѡ", "ʾ ", MessageBox.INFORMATION);