From 3786a086f82644de55e826c7dced3d8cc159c204 Mon Sep 17 00:00:00 2001 From: "xiangp@connor.net.cn" Date: Wed, 15 Jul 2020 16:26:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=93=81=E5=B1=9E=E6=80=A7=E6=98=A0?= =?UTF-8?q?=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- com.connor.jd.plm/.classpath | 530 ------------------ .../jd/plm/form/NewProductTestForm.java | 189 +++++-- .../com/connor/jd/plm/table/JCheckPanel.java | 7 +- .../connor/jd/plm/table/MyCellEditor4.java | 1 + .../com/connor/jd/plm/utils/DialogUtil.java | 6 +- 5 files changed, 158 insertions(+), 575 deletions(-) diff --git a/com.connor.jd.plm/.classpath b/com.connor.jd.plm/.classpath index 0b9ad42..783f32c 100644 --- a/com.connor.jd.plm/.classpath +++ b/com.connor.jd.plm/.classpath @@ -4,536 +4,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/form/NewProductTestForm.java b/com.connor.jd.plm/src/com/connor/jd/plm/form/NewProductTestForm.java index b3d5ce0..fe0bd7e 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/form/NewProductTestForm.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/form/NewProductTestForm.java @@ -22,6 +22,7 @@ import java.util.Map; import javax.swing.BorderFactory; import javax.swing.DefaultCellEditor; import javax.swing.JButton; +import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JMenuItem; import javax.swing.JOptionPane; @@ -32,6 +33,7 @@ import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.DefaultTableModel; import com.connor.jd.plm.table.CTMap; import com.connor.jd.plm.table.CTable; @@ -53,6 +55,7 @@ import com.teamcenter.rac.kernel.TCComponentItemType; import com.teamcenter.rac.kernel.TCComponentProject; import com.teamcenter.rac.kernel.TCComponentSchedule; import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCProperty; import com.teamcenter.rac.kernel.TCSession; import com.teamcenter.rac.stylesheet.AbstractRendering; import com.teamcenter.rac.util.MessageBox; @@ -138,14 +141,16 @@ public class NewProductTestForm extends AbstractRendering { modelList1.add(new ModelValue(propArr[i], true, propLocation1[i][0], propLocation1[i][1], true)); } - initModel(model1, modelList1); - table1 = new CTable(model1) { @Override public boolean isCellEditable(int row, int col) { return !modelList1.isDisableEdit(row, col); } }; + + + initModel(model1, modelList1); + table1.setRowHeight(25); table1.setBorder(BorderFactory.createLineBorder(Color.black)); @@ -510,6 +515,7 @@ public class NewProductTestForm extends AbstractRendering { @Override public void saveRendering() { + System.out.println("点击了签出"); if (testFlag) { return; } @@ -565,6 +571,7 @@ public class NewProductTestForm extends AbstractRendering { System.out.println(Arrays.deepToString(newData)); TCTableUtil.setTableRows(form, "jd2_xpcsxqd", "JD2_XPCSXQD", colNames, newData); } + } private MouseAdapter rightClick() { @@ -677,19 +684,29 @@ public class NewProductTestForm extends AbstractRendering { // "开发等级:", "开发阶段:" }; // String[] propArr = { "jd2_xmxx", "jd2_lxsj", "jd2_jbxh", "jd2_csxh", "jd2_cpxh", "jd2_xmzl", "jd2_cpjl", // "jd2_cpbgd", "jd2_pzjl", "jd2_kfrc", "jd2_kfdj", "jd2_kfjd" }; + private void initModel(CTMap model, ModelList modelList) { try { + //获取引用这个表单的对象版本 TCComponentItemRevision rev = (TCComponentItemRevision) form.whereReferenced()[0].getComponent(); + //获取引用版本的对象 AIFComponentContext[] aifs = rev.whereReferenced(); for (AIFComponentContext aif : aifs) { - if (aif.getComponent() instanceof TCComponentProject) { - project = (TCComponentProject) aif.getComponent(); - break; + TCProperty tcproperty = ((TCComponent) aif.getComponent()).getTCProperty("project_list"); + //获取这个项目列表下的项目 + TCComponent[] tcComponents = tcproperty.getReferenceValueArray(); + for (TCComponent project1 : tcComponents) { + if (project1 instanceof TCComponentProject) { + project = (TCComponentProject) project1; + } } } } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); } for (ModelValue mv : modelList) { @@ -720,35 +737,86 @@ public class NewProductTestForm extends AbstractRendering { .setCellEditor(new MyCellEditor3(new JTextField())); break; case "jd2_cpbgd": - TCComponent[] cpbgd = project.getRelatedComponents("jd2_cpbgd");// 不知道是什么属性 - if (cpbgd.length > 0) { - String displayValue = ""; - for (TCComponent comp : cpbgd) { - displayValue += comp.toString() + ";"; + //获取项目下面的项目数据列表 + TCComponent[] cpbg = project.getRelatedComponents("project_data"); + for (TCComponent cpbgTask : cpbg) { + //找到项目数据中的 产品企划 + if ("产品企划".equals(cpbgTask.toString())) { + //获取去产品企划下面的变更点 + TCComponent[] project_data = cpbgTask.getRelatedComponents("project_data"); + if (project_data.length > 0) { + String displayValue = ""; + for (TCComponent task : project_data) { + displayValue += task.toString() + ";"; + } + if ("".equals(form.getProperty("jd2_cpbgd")) || form.getProperty("jd2_cpbgd") == null) { + model.setValueAt(displayValue, mv.getRow(), mv.getCol()); + } else { + model.setValueAt(form.getProperty("jd2_cpbgd"), mv.getRow(), mv.getCol()); + } + table1.addMouseListener(openCPBGD(project_data, mv, model)); + } else { + form.setProperty("jd2_cpbgd", ""); + } } - model.setValueAt(displayValue, mv.getRow(), mv.getCol()); - table1.addMouseListener(openCPBGD(cpbgd, mv)); + } +// TCComponent[] cpbgd = project.getRelatedComponents("jd2_cpbgd");// 不知道是什么属性 +// if (cpbgd.length > 0) { +// String displayValue = ""; +// for (TCComponent comp : cpbgd) { +// displayValue += comp.toString() + ";"; +// } +// model.setValueAt(displayValue, mv.getRow(), mv.getCol()); +// table1.addMouseListener(openCPBGD(cpbgd, mv)); +// } break; case "jd2_kfrc": - TCComponent[] kfrc = project.getRelatedComponents("jd2_kfrc"); - if (kfrc.length > 0) { - TCComponentSchedule schedule = (TCComponentSchedule) kfrc[0]; - TCComponent[] tasks = schedule.getAllTasks(); - String startTime = ""; - String endTime = ""; - for (TCComponent task : tasks) { - if ("立项申请".equals(task.getProperty("object_name"))) { - startTime = task.getProperty(""); - } - if ("小批量产评审PRA".equals(task.getProperty("object_name"))) { - endTime = task.getProperty(""); + //TCComponent[] kfrc = project.getRelatedComponents("jd2_kfrc"); + //获取项目下面的项目数据列表 + TCComponent[] xmsj = project.getRelatedComponents("project_data"); + for (TCComponent xmjhTask : xmsj) { + //找到项目数据中的 项目计划 + if ("项目计划".equals(xmjhTask.toString())) { + //在获取项目计划中的数据,也就是时间表,将其转化为时间表类型 + TCComponent[] project_data = xmjhTask.getRelatedComponents("project_data"); + if (project_data.length > 0) { + TCComponentSchedule schedule = (TCComponentSchedule) project_data[0]; + TCComponent[] tasks = schedule.getAllTasks(); + String startTime = ""; + String endTime = ""; + for (TCComponent scheduleTask : tasks) { + if ("立项申请".equals(scheduleTask.getProperty("object_name"))) { + startTime = scheduleTask.getProperty("start_date"); + } + if ("小批量产评审PRA".equals(scheduleTask.getProperty("object_name"))) { + endTime = scheduleTask.getProperty("finish_date"); + } + } + if (!"".equals(startTime) || !"".equals(endTime)) { + model.setValueAt(startTime + " - " + endTime, mv.getRow(), mv.getCol()); + } } } - if (!"".equals(startTime) || !"".equals(endTime)) { - model.setValueAt(startTime + "-" + endTime, mv.getRow(), mv.getCol()); - } } + +// if (kfrc.length > 0) { +// TCComponentSchedule schedule = (TCComponentSchedule) kfrc[0]; +// TCComponent[] tasks = schedule.getAllTasks(); +// String startTime = ""; +// String endTime = ""; +// for (TCComponent task : tasks) { +// if ("立项申请".equals(task.getProperty("object_name"))) { +// startTime = task.getProperty(""); +// } +// if ("小批量产评审PRA".equals(task.getProperty("object_name"))) { +// endTime = task.getProperty(""); +// } +// } +// if (!"".equals(startTime) || !"".equals(endTime)) { +// model.setValueAt(startTime + "-" + endTime, mv.getRow(), mv.getCol()); +// } +// } break; default: if ("".equals(prop.get(mv.getValue()))) { @@ -775,38 +843,56 @@ public class NewProductTestForm extends AbstractRendering { model.combine(mv.getCombineRows(), mv.getCombineColumns()); } } - } - private MouseAdapter openCPBGD(TCComponent[] cpbgd, ModelValue mv) { + private MouseAdapter openCPBGD(TCComponent[] cpbgd, ModelValue mv, CTMap model) { return new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { - if (e.getClickCount() == 2 && table1.getSelectedRow() == mv.getRow() + + if (e.getClickCount() == 1 && table1.getSelectedRow() == mv.getRow() && table1.getSelectedColumn() == mv.getCol()) { + try { if (cpbgd.length > 1) { List data = new ArrayList(); for (TCComponent comp : cpbgd) { - data.add(new String[] { data.size() + 1 + "", comp.toString() }); + data.add(new String[] {data.size() + 1 +"" , comp.toString() }); } DialogUtil.TableMsg msg = DialogUtil.createTableMsg(new String[] { "序号", "名称" }, data); int res = JOptionPane.showConfirmDialog($this, msg.panel, "选择", JOptionPane.PLAIN_MESSAGE); if (res == JOptionPane.OK_OPTION) { - if (msg.table.getSelectedRow() > 0) { + String cpbgdValue = ""; + //获取所选行的索引 + int[] selRowIndex = msg.table.getSelectedRows(); + //获取表格内容 + DefaultTableModel tableModel = (DefaultTableModel) msg.table.getModel(); + if (selRowIndex.length > 1) { + for (int i = 0; i < selRowIndex.length; i++) { + //得到指定单元格的值 + cpbgdValue += tableModel.getValueAt(selRowIndex[i], 1) + ";"; + } + model.setValueAt(cpbgdValue, mv.getRow(), mv.getCol()); + form.setProperty("jd2_cpbgd", cpbgdValue); + } + else { TCComponentItem item = (TCComponentItem) cpbgd[msg.table.getSelectedRow()]; - TCComponent[] tccitem = item.getLatestItemRevision() - .getTCProperty("IMAN_specification").getReferenceValueArray(); - TCComponentDataset dataset = (TCComponentDataset) tccitem[0]; - dataset.open(); + changeCpbgd(item,mv,model,form); } + //TCComponentItem item = (TCComponentItem) cpbgd[msg.table.getSelectedRow()]; + //changeCpbgd(item,mv,model,form); + //if (msg.table.getSelectedRow() > 0) { +// TCComponentItem item = (TCComponentItem) cpbgd[msg.table.getSelectedRow()]; +// TCComponent[] tccitem = item.getLatestItemRevision() +// .getTCProperty("IMAN_specification").getReferenceValueArray(); +// TCComponentDataset dataset = (TCComponentDataset) tccitem[0]; +// dataset.open(); +// model.setValueAt(item.getProperty("object_string"), mv.getRow(), mv.getCol()); + //} } } else { TCComponentItem item = (TCComponentItem) cpbgd[0]; - TCComponent[] tccitem = item.getLatestItemRevision().getTCProperty("IMAN_specification") - .getReferenceValueArray(); - TCComponentDataset dataset = (TCComponentDataset) tccitem[0]; - dataset.open(); + changeCpbgd(item,mv,model,form); } } catch (Exception e1) { e1.printStackTrace(); @@ -815,8 +901,27 @@ public class NewProductTestForm extends AbstractRendering { } }; } + + private void changeCpbgd(TCComponentItem item, ModelValue mv, CTMap model,TCComponentForm form) { + try { + TCComponent[] tccitem = item.getLatestItemRevision() + .getTCProperty("IMAN_specification").getReferenceValueArray(); + String cpbgdValue = item.getProperty("object_string"); + model.setValueAt(cpbgdValue, mv.getRow(), mv.getCol()); + form.setProperty("jd2_cpbgd", cpbgdValue); + if (tccitem.length > 0) { + TCComponentDataset dataset = (TCComponentDataset) tccitem[0]; + dataset.open(); + } + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + } + } private void saveModel(JTable table, ModelList modelList) { + //签入时取消表格选中 + table.getSelectionModel().clearSelection(); Object obj; for (ModelValue mv : modelList) { if (mv.isProp()) { @@ -837,7 +942,9 @@ public class NewProductTestForm extends AbstractRendering { } } try { - form.setProperty(mv.getValue(), obj == null ? "" : obj.toString()); + if (!"jd2_kfjd".equals(mv.getValue())) { + form.setProperty(mv.getValue(), obj == null ? "" : obj.toString()); + } } catch (TCException e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/table/JCheckPanel.java b/com.connor.jd.plm/src/com/connor/jd/plm/table/JCheckPanel.java index 99a20af..4b0cab1 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/table/JCheckPanel.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/table/JCheckPanel.java @@ -29,7 +29,7 @@ public class JCheckPanel extends JPanel { buttons = new JCheckBox[text.length]; for (int i = 0; i < text.length; i++) { buttons[i] = new JCheckBox(text[i]); - buttons[i].setPreferredSize(new Dimension(100, 25)); + buttons[i].setPreferredSize(new Dimension(60, 25)); if (isSingle) { buttonGroup.add(buttons[i]); } @@ -73,7 +73,10 @@ public class JCheckPanel extends JPanel { String[] arr = value.split(","); for (int i = 0; i < arr.length; i++) { for (int ii = 0; ii < buttons.length; ii++) { - buttons[ii].setSelected(buttons[ii].getText().equals(arr[i])); + if (buttons[ii].getText().equals(arr[i])) { + buttons[ii].setSelected(true); + break; + } } } } diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/table/MyCellEditor4.java b/com.connor.jd.plm/src/com/connor/jd/plm/table/MyCellEditor4.java index 73c3323..6cd3bb4 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/table/MyCellEditor4.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/table/MyCellEditor4.java @@ -18,6 +18,7 @@ public class MyCellEditor4 extends DefaultCellEditor { @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { if (value instanceof JCheckBox) { + System.out.println("123456789abcdefg"); check = (JCheckBox) value; type = 1; return check; diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/utils/DialogUtil.java b/com.connor.jd.plm/src/com/connor/jd/plm/utils/DialogUtil.java index bb2dd18..7bf6fd5 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/utils/DialogUtil.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/utils/DialogUtil.java @@ -46,7 +46,8 @@ public class DialogUtil { }; JTable msgTable = new JTable(msgModel); for (int columnIndex = 0; columnIndex < msgTable.getColumnCount(); columnIndex++) { - msgTable.getColumnModel().getColumn(columnIndex).setMinWidth(100); + //msgTable.getColumnModel().getColumn(columnIndex).setMinWidth(100); + msgTable.getColumnModel().getColumn(columnIndex).setMinWidth(200); } msgTable.setRowHeight(25); msgTable.setShowGrid(false); @@ -55,6 +56,7 @@ public class DialogUtil { msgTable.getTableHeader().setReorderingAllowed(false); // msgTable.getTableHeader().setVisible(false); + for (String[] row : msgContent) { msgModel.addRow(row); } @@ -62,7 +64,7 @@ public class DialogUtil { msgTable.invalidate(); msgTable.repaint(); JScrollPane msgPanel = new JScrollPane(msgTable); - msgPanel.setPreferredSize(new Dimension(header.length * 100, 200)); + msgPanel.setPreferredSize(new Dimension(header.length * 200, 400)); msgPanel.setBorder(BorderFactory.createEmptyBorder()); return new TableMsg(msgPanel, msgTable); }