From 4120884e8b1ee8060c02bc9d7fae153ba7272092 Mon Sep 17 00:00:00 2001 From: zouxk Date: Mon, 23 Mar 2020 14:20:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B7=E5=93=81=E7=A1=AE=E8=AE=A4=E5=8D=95?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dialogs/TransformDesignToPartDialog.java | 133 +++---- .../jd/plm/form/SampleConfirmationForm.java | 334 +++++++++++++++--- .../connor/jd/plm/table/MyCellEditor1.java | 31 +- .../jd/plm/table/MyComboBoxRenderer.java | 24 ++ 4 files changed, 396 insertions(+), 126 deletions(-) create mode 100644 com.connor.jd.plm/src/com/connor/jd/plm/table/MyComboBoxRenderer.java diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java index f56c7e0..4c825c2 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java @@ -1,11 +1,7 @@ package com.connor.jd.plm.dialogs; import java.awt.BorderLayout; -import java.awt.Checkbox; import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.HeadlessException; -import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.AdjustmentEvent; @@ -16,44 +12,32 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; import java.util.ArrayList; +import java.util.Arrays; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Set; import javax.swing.BorderFactory; -import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; -import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JLabel; -import javax.swing.JOptionPane; import javax.swing.JPanel; -import javax.swing.JPopupMenu; import javax.swing.JScrollBar; import javax.swing.JScrollPane; -import javax.swing.JTextField; import javax.swing.JTree; import javax.swing.ScrollPaneConstants; -import javax.swing.event.MenuKeyEvent; -import javax.swing.event.MenuKeyListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeModel; -import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; import com.connor.jd.plm.beans.TransformBomBean; import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFDialog; -import com.teamcenter.rac.aif.AbstractAIFUIApplication; import com.teamcenter.rac.aif.kernel.AIFComponentContext; import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentBOMLine; @@ -68,8 +52,6 @@ import com.teamcenter.rac.kernel.TCTypeService; import com.teamcenter.rac.util.ButtonLayout; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.PropertyLayout; -import com.teamcenter.soaictstubs.transientTicketInfo_s; - public class TransformDesignToPartDialog extends AbstractAIFDialog implements ActionListener { private AbstractAIFApplication app; @@ -87,18 +69,20 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac private int index = 1; private String[] types; TCComponentBOMWindow win; - public TransformDesignToPartDialog(AbstractAIFApplication app, TCComponentBOMLine topBomline,String[] types) { + + public TransformDesignToPartDialog(AbstractAIFApplication app, TCComponentBOMLine topBomline, String[] types) { // TODO Auto-generated constructor stub System.out.println("step:-3------------------"); comboxList = new ArrayList<>(); this.app = app; this.session = (TCSession) app.getSession(); this.topBomline = topBomline; - this.types=types; + this.types = types; createWindow(); - + initUI(); } + private void createWindow() { try { TCTypeService service = session.getTypeService(); @@ -168,7 +152,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } } - }); + }); rightpane.getVerticalScrollBar().setUnitIncrement(10); rightpane.addMouseWheelListener(new MouseWheelListener() { @@ -207,8 +191,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } /** - * @param line - * 所有BOM添加到树结构 + * @param line 所有BOM添加到树结构 * @param node * @throws TCException */ @@ -264,28 +247,28 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac if (e.getSource().equals(okButton)) { try { System.out.println("进行转换"); - if(win==null) + if (win == null) createWindow(); createMaterialBom(topTree); MessageBox.post("转换bom成功", "提示", MessageBox.INFORMATION); this.dispose(); } catch (TCException e1) { - + // TODO Auto-generated catch block - MessageBox.post(e1.getMessage(),"转换bom失败" , MessageBox.INFORMATION); + MessageBox.post(e1.getMessage(), "转换bom失败", MessageBox.INFORMATION); e1.printStackTrace(); - }finally { + } finally { try { - + win.close(); - win=null; + win = null; } catch (TCException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } else if (e.getSource().equals(celButton)) { - + dispose(); } @@ -296,17 +279,15 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * * @param wl *//* - * private void checkSelected(String wl) { for (TransformBomBean bean : - * bomlist) { if (bean.map.containsKey(wl)) { bean.selectCount++; if - * (bean.selectCount > 1) { MessageBox.post("只能为当前图纸选择一个物料进行设计BOM的转换!", - * "警告", MessageBox.WARNING); return; } - * System.out.println(bean.displayName + "选中显示名"); - * System.out.println(checkBoxTreeNodelMap.containsKey(bean.displayName) - * ); checkBoxTreeNodelMap.get(bean.displayName).setSelected(true); - * findInTree(bean.displayName); TransformBomBean bean1 = - * (TransformBomBean) - * checkBoxTreeNodelMap.get(bean.displayName).getUserObject(); - * bean1.selectRev = (TCComponentItemRevision) bean.map.get(wl); } } } + * private void checkSelected(String wl) { for (TransformBomBean bean : bomlist) + * { if (bean.map.containsKey(wl)) { bean.selectCount++; if (bean.selectCount > + * 1) { MessageBox.post("只能为当前图纸选择一个物料进行设计BOM的转换!", "警告", MessageBox.WARNING); + * return; } System.out.println(bean.displayName + "选中显示名"); + * System.out.println(checkBoxTreeNodelMap.containsKey(bean.displayName) ); + * checkBoxTreeNodelMap.get(bean.displayName).setSelected(true); + * findInTree(bean.displayName); TransformBomBean bean1 = (TransformBomBean) + * checkBoxTreeNodelMap.get(bean.displayName).getUserObject(); bean1.selectRev = + * (TCComponentItemRevision) bean.map.get(wl); } } } */ /** @@ -314,8 +295,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * * @param wl *//* - * private void checkDisSelected(String wl) { for (TransformBomBean bean - * : bomlist) { if (bean.map.containsKey(wl)) { bean.selectCount--; + * private void checkDisSelected(String wl) { for (TransformBomBean bean : + * bomlist) { if (bean.map.containsKey(wl)) { bean.selectCount--; * checkBoxTreeNodelMap.get(bean.displayName).setSelected(false); } } } */ @@ -331,8 +312,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac TCComponentItemRevision materialRev = bean.selectRev; // 存在已经发布的物料的bom /* - * if (WXMethodUtil.isRevBomReleased(materialRev)) { - * System.out.println("发布"); return; } + * if (WXMethodUtil.isRevBomReleased(materialRev)) { System.out.println("发布"); + * return; } */ if (isLoopBom(node)) { @@ -361,7 +342,9 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } } } + createBom(materialRev, childrenList, null, quantityList); + } private TreePath findInPath(TreePath treePath, String str) { @@ -409,8 +392,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac if (line == null) { return null; } - AIFComponentContext[] aifContext = line.getItemRevision().whereReferencedByTypeRelation( - types, new String[] { "TC_Is_Represented_By" }); + AIFComponentContext[] aifContext = line.getItemRevision().whereReferencedByTypeRelation(types, + new String[] { "TC_Is_Represented_By" }); if (aifContext == null || aifContext.length == 0) { return new String[] { "" }; } else { @@ -457,7 +440,9 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac childbox.setSelectedIndex(-1); childbox.setEditable(true); - if (childbox.getItemCount() <= 2 && !childbox.getItemAt(1).equals("")) { + System.out.println("bomRef====>" + Arrays.toString(bomRef)); + + if (childbox.getItemCount() <= 2 && !(childbox.getItemAt(1) == null || "".equals(childbox.getItemAt(1)))) { childbox.setSelectedIndex(1); childbox.setEditable(false); childNode.setSelected(true); @@ -551,6 +536,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac System.out.println("执行判断" + rev.getProperty("object_name")); if (rev != null && isRevBomReleased(rev)) { setUnable(childNode); + System.out.println(rev.getProperty("object_name") + "已发布"); return true; } else { restoreSelect(childNode); @@ -645,6 +631,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac /** * 判断循环 + * * @param node * @return */ @@ -662,6 +649,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac /** * 向上找父类,判断是否有相同的物料 + * * @param node * @param loopSet * @return @@ -682,11 +670,8 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } } } - - - public void getAllBomItemByBomline(TCComponentBOMLine line, List itemList) - throws TCException { + public void getAllBomItemByBomline(TCComponentBOMLine line, List itemList) throws TCException { if (line == null) { return; } @@ -698,17 +683,13 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } } - - - - /** * 搭建bom * * @param selectIndex * @throws TCException */ - public void createBom(TCComponentItemRevision parentRev, List childRevList, + public void createBom(TCComponentItemRevision parentRev, List childRevList, List queryNoList, List countNoList) throws TCException { if (childRevList == null || childRevList.size() == 0) { return; @@ -733,11 +714,15 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } for (int i = 0; i < childRevList.size(); i++) { TCComponentItemRevision rev = childRevList.get(i); + System.out.println("object_string====>" + rev.getProperty("object_string")); line.lock(); + System.out.println("line object_string=====>" + line.getItemRevision().getProperty("object_string")); + session.getUserService().call("bs_bypass", new Object[] { true }); TCComponentBOMLine childBomLine = line.add(rev.getItem(), rev, null, false, ""); + session.getUserService().call("bs_bypass", new Object[] { false }); line.save(); line.unlock(); - + if (countNoList.get(i) != null && !countNoList.get(i).equals("")) { childBomLine.lock(); childBomLine.setProperties(setProps, new String[] { countNoList.get(i) }); @@ -745,31 +730,27 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac childBomLine.unlock(); } - - } try { win.save(); - }catch(Exception e) { - TCComponent[] comps=parentRev.getTCProperty("structure_revisions").getReferenceValueArray(); - if(comps.length>0) { + } catch (Exception e) { + TCComponent[] comps = parentRev.getTCProperty("structure_revisions").getReferenceValueArray(); + if (comps.length > 0) { parentRev.remove("structure_revisions", comps[0]); comps[0].lock(); - comps[0].delete();; + comps[0].delete(); + ; } - + e.printStackTrace(); throw e; - }finally { + } finally { win.unlock(); + win.close(); } - - } - - /** * 检查对象是否已经发布 * @@ -777,7 +758,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * @return * @throws TCException */ - public boolean isCompReleased(TCComponent comp) throws TCException { + public boolean isCompReleased(TCComponent comp) throws TCException { TCComponent[] comps = comp.getRelatedComponents("release_status_list"); if (comps != null && comps.length > 0) { return true; @@ -791,7 +772,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * @param rev * @return */ - public boolean isRevHadBom(TCComponentItemRevision rev) { + public boolean isRevHadBom(TCComponentItemRevision rev) { boolean isHad = false; if (rev != null) { try { @@ -814,7 +795,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac * @param rev * @return */ - public boolean isRevBomReleased(TCComponentItemRevision rev) { + public boolean isRevBomReleased(TCComponentItemRevision rev) { boolean isReleased = false; try { if (isCompReleased(rev)) { @@ -823,7 +804,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac // if(line.getChildren().length!=0){ // isReleased = true; // } - if ( isRevHadBom(rev)) { + if (isRevHadBom(rev)) { TCComponentBOMViewRevision bvr = win.askBvr(); if (bvr != null) { TCComponent[] status = bvr.getReferenceListProperty("release_status_list"); diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/form/SampleConfirmationForm.java b/com.connor.jd.plm/src/com/connor/jd/plm/form/SampleConfirmationForm.java index dd0a7df..27f29a6 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/form/SampleConfirmationForm.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/form/SampleConfirmationForm.java @@ -6,13 +6,13 @@ import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; -import java.awt.Image; import java.awt.ScrollPane; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -21,7 +21,6 @@ import java.util.Map; import java.util.Map.Entry; import javax.swing.BorderFactory; -import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFileChooser; @@ -43,6 +42,7 @@ import com.connor.jd.plm.table.JRadioPanel; import com.connor.jd.plm.table.MyCellEditor; import com.connor.jd.plm.table.MyCellEditor1; import com.connor.jd.plm.table.MyCellEditor2; +import com.connor.jd.plm.table.MyComboBoxRenderer; import com.connor.jd.plm.table.TCTableUtil; import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.kernel.AIFComponentContext; @@ -51,9 +51,11 @@ import com.teamcenter.rac.kernel.TCComponent; import com.teamcenter.rac.kernel.TCComponentDataset; import com.teamcenter.rac.kernel.TCComponentDatasetType; import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentICO; import com.teamcenter.rac.kernel.TCComponentItemRevision; import com.teamcenter.rac.kernel.TCException; import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.kernel.ics.ICSProperty; import com.teamcenter.rac.stylesheet.AbstractRendering; public class SampleConfirmationForm extends AbstractRendering { @@ -109,7 +111,10 @@ public class SampleConfirmationForm extends AbstractRendering { private JMenuItem addR2; private JMenuItem insertR2; private JMenuItem delR2; + private JMenuItem addF; + private JMenuItem delF; private TCComponentItemRevision rev; + private String[][] dataStore = new String[8][13]; public SampleConfirmationForm(TCComponent arg0) throws Exception { super(arg0); @@ -290,6 +295,59 @@ public class SampleConfirmationForm extends AbstractRendering { } table3.addMouseListener(rightClick3()); + // 属性映射 + prop = form.getProperties(); + AIFComponentContext[] parents = rev.whereReferenced(); + TCComponentItemRevision parentRev = null; + for (AIFComponentContext aif : parents) { + try { + System.out.println(aif.getComponent().getProperty("object_string")); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + if (aif.getComponent() instanceof TCComponentItemRevision) { + parentRev = (TCComponentItemRevision) aif.getComponent(); + } + } + if (parentRev != null) { + String partName = parentRev.getProperty("object_name"); + System.out.println(partName); + if (prop.containsKey("jd2_ljm")) { + form.setProperty("jd2_ljm", partName); + } + String materialCode = parentRev.getProperty("item_id"); + System.out.println(materialCode); + if (prop.containsKey("jd2_wlbm")) { + form.setProperty("jd2_wlbm", materialCode); + } + TCComponent[] drawings = parentRev.getReferenceListProperty("TC_Is_Represented_By"); + if (drawings != null && drawings.length > 0) { + TCComponentItemRevision drawingRev = (TCComponentItemRevision) drawings[0]; + String drawingId = drawingRev.getProperty("item_id"); + System.out.println(drawingId); + if (prop.containsKey("jd2_th")) { + form.setProperty("jd2_th", drawingId); + } + } + if (parentRev.getClassificationObjects() != null && parentRev.getClassificationObjects().length > 0) { + TCComponentICO ico = parentRev.getClassificationObjects()[0]; + ICSProperty[] parentICSProps = ico.getICSProperties(true); + for (int i = 0; i < parentICSProps.length; i++) { + if (parentICSProps[i].getId() == 1050) { + if (prop.containsKey("jd2_ljywm")) { + form.setProperty("jd2_ljywm", parentICSProps[i].getValue()); + } + } + if (parentICSProps[i].getId() == 1058) { + if (prop.containsKey("jd2_gg")) { + form.setProperty("jd2_gg", parentICSProps[i].getValue()); + } + } + } + } + } + // 填写数据 prop = form.getProperties(); for (Entry entry : general.entrySet()) { @@ -300,6 +358,7 @@ public class SampleConfirmationForm extends AbstractRendering { System.out.println("属性‘" + entry.getKey() + "’未找到"); } } + for (Entry entry : general3.entrySet()) { if (prop.containsKey(entry.getKey())) { model3.setValueAt(prop.get(entry.getKey()), entry.getValue()[0], entry.getValue()[1]); @@ -325,8 +384,8 @@ public class SampleConfirmationForm extends AbstractRendering { if (prop.containsKey(entry.getKey())) { TCComponent comp = null; try { - comp = session.stringToComponent(prop.get(entry.getKey())); - if (comp != null) { + if (!"".equals(prop.get(entry.getKey()))) { + comp = session.stringToComponent(prop.get(entry.getKey())); TCComponentDataset dataset = (TCComponentDataset) comp; String temp = System.getenv("temp"); System.out.println(temp); @@ -336,21 +395,27 @@ public class SampleConfirmationForm extends AbstractRendering { File img = dataset.getFiles(types[0], temp)[0]; System.out.println(img.getPath()); - ImageIcon icon = new ImageIcon(img.getPath()); +// ImageIcon icon = new ImageIcon(img.getPath()); int[] arr = model3.getSpan(row, col); - int width = 0; - for (int i = 0; i < arr[1]; i++) { +// int width = 0; +// for (int i = 0; i < arr[1]; i++) { // width+=table3.getColumnModel().getColumn() - } +// } System.out.println("row:" + arr[0] + ",col:" + arr[1]); - icon.setImage(icon.getImage().getScaledInstance( - table3.getColumnModel().getColumn(col).getPreferredWidth() * arr[1], - table3.getRowHeight() * arr[0], Image.SCALE_SMOOTH)); +// icon.setImage(icon.getImage().getScaledInstance( +// table3.getColumnModel().getColumn(col).getPreferredWidth() * arr[1], +// table3.getRowHeight() * arr[0], Image.SCALE_SMOOTH)); JLabel label = new JLabel(); label.setLayout(new FlowLayout(FlowLayout.CENTER)); - label.setIcon(icon); - label.addMouseListener(showImg(img.getPath())); +// label.setIcon(icon); + label.setForeground(new Color(0xff0078D7)); + label.setText(img.getName()); + if ("jd2_icqjyzds".equals(entry.getKey())) { + label.addMouseListener(showFile(dataset)); + } else { + label.addMouseListener(showImg(img.getPath())); + } label.setToolTipText(dataset.getUid()); model3.setValueAt(label, row, col); } else { @@ -382,6 +447,7 @@ public class SampleConfirmationForm extends AbstractRendering { } if (ii == tableRows[0].length - 1) { JComboBox jgComBox = new JComboBox(); + jgComBox.setRenderer(new MyComboBoxRenderer()); for (Entry entry : jgItems.entrySet()) { jgComBox.addItem(entry.getKey()); } @@ -578,6 +644,14 @@ public class SampleConfirmationForm extends AbstractRendering { delP.setEnabled(false); menu3.add(delP); delP.addActionListener(delPic()); + addF = new JMenuItem("上传文件"); + addF.setEnabled(false); + menu3.add(addF); + addF.addActionListener(addFile()); + delF = new JMenuItem("删除文件"); + delF.setEnabled(false); + menu3.add(delF); + delF.addActionListener(delFile()); // 检验单右键菜单 menu2.setVisible(false); @@ -651,13 +725,17 @@ public class SampleConfirmationForm extends AbstractRendering { model.setValueAt("分类", 6, 14); disableEdit.add("6,14"); fl = new JComboBox(); + fl.setRenderer(new MyComboBoxRenderer()); try { - String[] items = form.getTCProperty("jd2_fl").getLOV().getListOfValues().getLOVDisplayValues(); - for (String s : items) { - fl.addItem(s); + if (form.getTCProperty("jd2_fl") != null) { + String[] items = form.getTCProperty("jd2_fl").getLOV().getListOfValues().getLOVDisplayValues(); + for (String s : items) { + fl.addItem(s); + } + fl.setSelectedItem(form.getProperty("jd2_fl")); + model.setValueAt(fl, 6, 17); } - fl.setSelectedItem(form.getProperty("jd2_fl")); - model.setValueAt(fl, 6, 17); + } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -672,13 +750,17 @@ public class SampleConfirmationForm extends AbstractRendering { model.setValueAt("状态", 7, 14); disableEdit.add("7,14"); zt = new JComboBox(); + zt.setRenderer(new MyComboBoxRenderer()); try { - String[] items = form.getTCProperty("jd2_zt").getLOV().getListOfValues().getLOVDisplayValues(); - for (String s : items) { - zt.addItem(s); + if (form.getTCProperty("jd2_zt") != null) { + String[] items = form.getTCProperty("jd2_zt").getLOV().getListOfValues().getLOVDisplayValues(); + for (String s : items) { + zt.addItem(s); + } + zt.setSelectedItem(form.getProperty("jd2_zt")); + model.setValueAt(zt, 7, 17); } - zt.setSelectedItem(form.getProperty("jd2_zt")); - model.setValueAt(zt, 7, 17); + } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -686,13 +768,17 @@ public class SampleConfirmationForm extends AbstractRendering { model.setValueAt("部品等级", 8, 0); disableEdit.add("8,0"); bpdj = new JComboBox(); + bpdj.setRenderer(new MyComboBoxRenderer()); try { - String[] items = form.getTCProperty("jd2_bpdj").getLOV().getListOfValues().getLOVDisplayValues(); - for (String s : items) { - bpdj.addItem(s); + if (form.getTCProperty("jd2_bpdj") != null) { + String[] items = form.getTCProperty("jd2_bpdj").getLOV().getListOfValues().getLOVDisplayValues(); + for (String s : items) { + bpdj.addItem(s); + } + bpdj.setSelectedItem(form.getProperty("jd2_bpdj")); + model.setValueAt(bpdj, 8, 2); } - bpdj.setSelectedItem(form.getProperty("jd2_bpdj")); - model.setValueAt(bpdj, 8, 2); + } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -728,7 +814,8 @@ public class SampleConfirmationForm extends AbstractRendering { disableEdit.add(top + ",19"); model.setValueAt("规格", top + 1, 1); disableEdit.add(top + 1 + ",1"); - model.setValueAt("公差", top + 1, 5); + model.setValueAt("上公差", top + 1, 5); + model.setValueAt("下公差", top + 1, 6); disableEdit.add(top + 1 + ",5"); for (int i = 1; i < 11; i++) { model.setValueAt("#" + i, top + 1, i + 6); @@ -744,6 +831,7 @@ public class SampleConfirmationForm extends AbstractRendering { disableEdit.add(i + ",0"); model.combine(new int[] { i }, new int[] { 2, 3, 4 }); JComboBox jgComBox = new JComboBox(); + jgComBox.setRenderer(new MyComboBoxRenderer()); for (Entry entry : jgItems.entrySet()) { jgComBox.addItem(entry.getKey()); } @@ -798,8 +886,6 @@ public class SampleConfirmationForm extends AbstractRendering { model.combine(new int[] { top }, new int[] { 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 }); model.combine(new int[] { top, top + 1 }, new int[] { 19 }); model.combine(new int[] { top + 1 }, new int[] { 1, 2, 3, 4 }); - model.combine(new int[] { top + 1 }, new int[] { 5, 6 }); - } private void initModel3() { @@ -834,6 +920,7 @@ public class SampleConfirmationForm extends AbstractRendering { general3.put("jd2_lq", new int[] { 2, 7 }); general3.put("jd2_baoz", new int[] { 2, 8 }); pic.put("jd2_gfzjbg", new int[] { 2, 9 }); +// pic.put("user_data_2", new int[] { 2, 9 }); pic.put("jd2_gfzyzds", new int[] { 2, 12 }); pic.put("jd2_gfqcgct", new int[] { 2, 15 }); pic.put("jd2_wlbzjbq", new int[] { 2, 18 }); @@ -868,16 +955,21 @@ public class SampleConfirmationForm extends AbstractRendering { model3.setValueAt("IQC作业指导书", 9, 4); disableEdit3.add(9 + ",4"); pic.put("jd2_icqjyzds", new int[] { 10, 4 }); +// pic.put("user_data_1", new int[] { 10, 4 }); model3.setValueAt("决定", 11, 12); disableEdit3.add(11 + ",12"); jued = new JComboBox(); + jued.setRenderer(new MyComboBoxRenderer()); try { - String[] items = form.getTCProperty("jd2_jued").getLOV().getListOfValues().getLOVDisplayValues(); - for (String s : items) { - jued.addItem(s); + if (form.getTCProperty("jd2_jued") != null) { + String[] items = form.getTCProperty("jd2_jued").getLOV().getListOfValues().getLOVDisplayValues(); + for (String s : items) { + jued.addItem(s); + } + jued.setSelectedItem(form.getProperty("jd2_jued")); + model3.setValueAt(jued, 11, 15); } - jued.setSelectedItem(form.getProperty("jd2_jued")); - model3.setValueAt(jued, 11, 15); + } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -1120,6 +1212,19 @@ public class SampleConfirmationForm extends AbstractRendering { @Override public void actionPerformed(ActionEvent e) { System.out.println("confirm"); + for (int i = 2; i < 10; i++) { + for (int ii = 1; ii < 14; ii++) { + String temp = table2.getValueAt(ii, i) == null ? "" : table2.getValueAt(ii, i).toString(); + table.setValueAt(temp, top + i, ii + 1 > 2 ? ii + 3 : ii + 1); + } + } + for (int i = 2; i < 10; i++) { + table.getColumnModel().getColumn(10).getCellEditor().getTableCellEditorComponent(table, + table.getValueAt(top + i, 10), true, top + i, 10); + table.getColumnModel().getColumn(10).getCellEditor().stopCellEditing(); + } + table.revalidate(); + table.repaint(); cl.show(center, "confirm"); } }; @@ -1133,6 +1238,26 @@ public class SampleConfirmationForm extends AbstractRendering { public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("examine"); + for (int i = 1; i < 9; i++) { + for (int ii = 2; ii < 15; ii++) { + String temp = table.getValueAt(top + 1 + i, ii > 2 ? ii + 2 : ii) == null ? "" + : table.getValueAt(top + 1 + i, ii > 2 ? ii + 2 : ii).toString(); + table2.setValueAt(temp, ii - 1, i + 1); + } + } + for (int i = 2; i < 10; i++) { + table2.getColumnModel().getColumn(i).getCellEditor().getTableCellEditorComponent(table2, + table2.getValueAt(2, i), true, 2, i); + table2.getColumnModel().getColumn(i).getCellEditor().stopCellEditing(); + table2.getColumnModel().getColumn(i).getCellEditor().getTableCellEditorComponent(table2, + table2.getValueAt(3, i), true, 3, i); + table2.getColumnModel().getColumn(i).getCellEditor().stopCellEditing(); + table2.getColumnModel().getColumn(i).getCellEditor().getTableCellEditorComponent(table2, + table2.getValueAt(4, i), true, 4, i); + table2.getColumnModel().getColumn(i).getCellEditor().stopCellEditing(); + } + table2.revalidate(); + table2.repaint(); cl.show(center, "examine"); } }; @@ -1189,6 +1314,14 @@ public class SampleConfirmationForm extends AbstractRendering { } addP.setEnabled(flag); delP.setEnabled(flag); + addF.setEnabled(false); + delF.setEnabled(false); + if (pic.get("jd2_icqjyzds")[0] == row && pic.get("jd2_icqjyzds")[1] == col) { + addF.setEnabled(true); + delF.setEnabled(true); + addP.setEnabled(false); + delP.setEnabled(false); + } menu3.show(e.getComponent(), e.getX(), e.getY()); } @@ -1236,7 +1369,7 @@ public class SampleConfirmationForm extends AbstractRendering { rev.add("IMAN_specification", dataset); String uid = dataset.getUid(); System.out.println("uid:" + uid); - ImageIcon icon = new ImageIcon(file.getPath()); +// ImageIcon icon = new ImageIcon(file.getPath()); int row = table3.getSelectedRow(); int col = table3.getSelectedColumn(); String str = ((JLabel) model3.getValueAt(row, col)).getToolTipText(); @@ -1252,12 +1385,14 @@ public class SampleConfirmationForm extends AbstractRendering { } int[] arr = model3.getSpan(row, col); System.out.println("row:" + arr[0] + ",col:" + arr[1]); - icon.setImage(icon.getImage().getScaledInstance( - table3.getColumnModel().getColumn(col).getPreferredWidth() * arr[1], - table3.getRowHeight() * arr[0], Image.SCALE_SMOOTH)); +// icon.setImage(icon.getImage().getScaledInstance( +// table3.getColumnModel().getColumn(col).getPreferredWidth() * arr[1], +// table3.getRowHeight() * arr[0], Image.SCALE_SMOOTH)); JLabel label = new JLabel(); label.setLayout(new FlowLayout(FlowLayout.CENTER)); - label.setIcon(icon); +// label.setIcon(icon); + label.setText(file.getName()); + label.setForeground(new Color(0xff0078D7)); label.addMouseListener(showImg(file.getPath())); label.setToolTipText(uid); model3.setValueAt(label, table3.getSelectedRow(), table3.getSelectedColumn()); @@ -1293,7 +1428,7 @@ public class SampleConfirmationForm extends AbstractRendering { e1.printStackTrace(); } } - model3.setValueAt(new JLabel(""), row, col); + ((JLabel) model3.getValueAt(row, col)).setText(""); table3.revalidate(); table3.repaint(); } @@ -1447,4 +1582,119 @@ public class SampleConfirmationForm extends AbstractRendering { }; return adapter; } + + private MouseAdapter showFile(TCComponentDataset dataset) { + MouseAdapter adapter = new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if (e.getClickCount() == 2) { + try { + dataset.open(); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + } + }; + return adapter; + } + + private ActionListener addFile() { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); + fileChooser.setMultiSelectionEnabled(false); + fileChooser.setFileFilter(new FileFilter() { + + @Override + public String getDescription() { + // TODO Auto-generated method stub + return "(文档,表格)*.doc;*.docx;*.xls;*.xlsx;"; + } + + @Override + public boolean accept(File var1) { + // TODO Auto-generated method stub + return var1.getName().endsWith(".doc") || var1.getName().endsWith(".docx") + || var1.getName().endsWith(".xls") || var1.getName().endsWith(".xlsx"); + } + }); + fileChooser.showOpenDialog(menu3);// 参数表示定位 + File file = fileChooser.getSelectedFile(); + if (file != null) { + System.out.println("fileName:" + file.getName()); + String as1[] = { file.getPath() };// 文件的物理路径 + String as2[] = new String[1]; + String type = ""; + if (file.getName().endsWith(".doc")) { + as2[0] = "word"; + type = "MSWord"; + } else if (file.getName().endsWith(".docx")) { + as2[0] = "word"; + type = "MSWordX"; + } else if (file.getName().endsWith(".xls")) { + as2[0] = "excel"; + type = "MSExcel"; + } else if (file.getName().endsWith(".xlsx")) { + as2[0] = "excel"; + type = "MSExcelX"; + } + TCComponentDatasetType datasetType; + try { + datasetType = (TCComponentDatasetType) session.getTypeComponent("Dataset"); + TCComponentDataset dataset = datasetType.create(file.getName(), "", type); + dataset.setFiles(as1, as2); + TCComponent[] comps = form.getRelatedComponents(); + rev.add("IMAN_specification", dataset); + String uid = dataset.getUid(); + System.out.println("uid:" + uid); +// ImageIcon icon = new ImageIcon(file.getPath()); + int row = table3.getSelectedRow(); + int col = table3.getSelectedColumn(); + String str = ((JLabel) model3.getValueAt(row, col)).getToolTipText(); + if (str != null && !"".equals(str)) { + try { + TCComponentDataset oldDataset = (TCComponentDataset) session.stringToComponent(str); + rev.cutOperation("IMAN_specification", new TCComponent[] { oldDataset }); + oldDataset.delete(); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + int[] arr = model3.getSpan(row, col); + System.out.println("row:" + arr[0] + ",col:" + arr[1]); +// icon.setImage(icon.getImage().getScaledInstance( +// table3.getColumnModel().getColumn(col).getPreferredWidth() * arr[1], +// table3.getRowHeight() * arr[0], Image.SCALE_SMOOTH)); + JLabel label = new JLabel(); + label.setLayout(new FlowLayout(FlowLayout.CENTER)); +// label.setIcon(icon); + label.setText(file.getName()); + label.setForeground(new Color(0xff0078D7)); + label.addMouseListener(showFile(dataset)); + label.setToolTipText(uid); + model3.setValueAt(label, table3.getSelectedRow(), table3.getSelectedColumn()); + table3.revalidate(); + table3.repaint(); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } + } + }; + } + + private ActionListener delFile() { + return delPic(); + } } diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/table/MyCellEditor1.java b/com.connor.jd.plm/src/com/connor/jd/plm/table/MyCellEditor1.java index c71bdfe..4f7f199 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/table/MyCellEditor1.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/table/MyCellEditor1.java @@ -22,6 +22,8 @@ public class MyCellEditor1 extends DefaultCellEditor { private double low = 0.0; private double up = 0.0; private int cnt = 0; + private int lowCnt = 0; + private int upCnt = 0; public MyCellEditor1(JTextField paramJTextField) { super(paramJTextField); @@ -95,21 +97,24 @@ public class MyCellEditor1 extends DefaultCellEditor { if (row == 2) { if (now != null && !"".equals(now.toString().trim())) { low = Double.parseDouble(now.toString().trim()); - cnt++; + lowCnt = 1; } else { low = 0.0; - cnt--; + lowCnt = 0; } } if (row == 3) { if (now != null && !"".equals(now.toString().trim())) { up = Double.parseDouble(now.toString().trim()); - cnt++; + upCnt = 1; } else { up = 0.0; - cnt--; + upCnt = 0; } } + cnt = lowCnt + upCnt; + System.out.println("lowCnt===>" + lowCnt); + System.out.println("upCnt====>" + upCnt); for (int i = top; i < row && i <= bottom; i++) { obj = table.getModel().getValueAt(i, col); if (obj != null && !"".equals(obj.toString().trim())) { @@ -119,12 +124,22 @@ public class MyCellEditor1 extends DefaultCellEditor { if (row >= top && row <= bottom && now != null && !"".equals(now.toString().trim())) { data.add(Double.parseDouble(now.toString().trim())); } - for (int i = row + 1; i <= bottom; i++) { - obj = table.getModel().getValueAt(i, col); - if (obj != null && !"".equals(obj.toString().trim())) { - data.add(Double.parseDouble(obj.toString().trim())); + if (row + 1 >= top) { + for (int i = row + 1; i <= bottom; i++) { + obj = table.getModel().getValueAt(i, col); + if (obj != null && !"".equals(obj.toString().trim())) { + data.add(Double.parseDouble(obj.toString().trim())); + } + } + } else { + for (int i = top; i <= bottom; i++) { + obj = table.getModel().getValueAt(i, col); + if (obj != null && !"".equals(obj.toString().trim())) { + data.add(Double.parseDouble(obj.toString().trim())); + } } } + System.out.println(Arrays.toString(data.toArray())); double sum = 0; diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/table/MyComboBoxRenderer.java b/com.connor.jd.plm/src/com/connor/jd/plm/table/MyComboBoxRenderer.java new file mode 100644 index 0000000..d66441a --- /dev/null +++ b/com.connor.jd.plm/src/com/connor/jd/plm/table/MyComboBoxRenderer.java @@ -0,0 +1,24 @@ +package com.connor.jd.plm.table; + +import java.awt.Color; +import java.awt.Component; + +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.ListCellRenderer; +import javax.swing.SwingConstants; + +public class MyComboBoxRenderer extends JLabel implements ListCellRenderer { + public MyComboBoxRenderer() { + setOpaque(true); + } + + @Override + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, + boolean cellHasFocus) { + setBackground(isSelected ? new Color(0xff0078D7) : Color.WHITE); + setHorizontalAlignment(SwingConstants.CENTER); + setText(value.toString()); + return this; + } +} \ No newline at end of file