From eed466075e92625baf95db8549f4457e73ee3658 Mon Sep 17 00:00:00 2001 From: zouxk Date: Mon, 13 Jan 2020 15:39:40 +0800 Subject: [PATCH] =?UTF-8?q?2020/1/13=20=E6=B5=8B=E8=AF=95=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- com.connor.jd.plm/config/db.setting | 2 +- com.connor.jd.plm/plugin.xml | 4 - com.connor.jd.plm/src/Test.java | 4 +- .../connor/jd/plm/dialogs/CSXWHDialog.java | 70 +++-- .../src/com/connor/jd/plm/form/CSJHForm.java | 249 +++++++++++++++++- .../jd/plm/form/ComponentTestFrame.java | 19 +- .../form/ExperimentalPowerOfAttorneyForm.java | 18 +- .../jd/plm/form/NewProductTestForm.java | 162 ++++++++++++ 8 files changed, 485 insertions(+), 43 deletions(-) create mode 100644 com.connor.jd.plm/src/com/connor/jd/plm/form/NewProductTestForm.java diff --git a/com.connor.jd.plm/config/db.setting b/com.connor.jd.plm/config/db.setting index 7780db4..b6edd27 100644 --- a/com.connor.jd.plm/config/db.setting +++ b/com.connor.jd.plm/config/db.setting @@ -1,7 +1,7 @@ ## db.setting文件 # url = jdbc:oracle:thin:@localhost:1521:TC -url = jdbc:oracle:thin:@localhost:1521:TC12 +url = jdbc:oracle:thin:@10.20.4.75:1521:TC12 user = infodba pass = infodba diff --git a/com.connor.jd.plm/plugin.xml b/com.connor.jd.plm/plugin.xml index c92e6a3..8a569d5 100644 --- a/com.connor.jd.plm/plugin.xml +++ b/com.connor.jd.plm/plugin.xml @@ -242,8 +242,6 @@ - - @@ -286,8 +284,6 @@ - - diff --git a/com.connor.jd.plm/src/Test.java b/com.connor.jd.plm/src/Test.java index 907eafb..46ec1b3 100644 --- a/com.connor.jd.plm/src/Test.java +++ b/com.connor.jd.plm/src/Test.java @@ -2,7 +2,9 @@ public class Test { public static void main(String[] args) { - + String fileName = "111.xlsx"; + String[] filename = fileName.split("\\."); + System.out.println(fileName.lastIndexOf(".")); } } diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/CSXWHDialog.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/CSXWHDialog.java index 86e6055..632c52f 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/CSXWHDialog.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/CSXWHDialog.java @@ -7,7 +7,6 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang3.math.NumberUtils; @@ -553,6 +552,7 @@ public class CSXWHDialog extends Application { primaryStage.setScene(scene); primaryStage.setTitle("测试项维护"); primaryStage.show(); + primaryStage.setAlwaysOnTop(true); } @@ -560,8 +560,15 @@ public class CSXWHDialog extends Application { ObservableList results = FXCollections.observableArrayList(); Pattern pattern = Pattern.compile(name); for (int i = 0; i < list.size(); i++) { - Matcher matcher = pattern.matcher(((ComponentBean) list.get(i)).getType()); - if (matcher.find()) { +// Matcher matcher = pattern.matcher(((ComponentBean) list.get(i)).getType()); +// if (matcher.find()) { +// results.add(list.get(i)); +// } + if (((ComponentBean) list.get(i)).getType().contains(name) + || ((ComponentBean) list.get(i)).getProject().contains(name) + || ((ComponentBean) list.get(i)).getTime().contains(name) + || ((ComponentBean) list.get(i)).getNumber().contains(name) + || ((ComponentBean) list.get(i)).getCost().contains(name)) { results.add(list.get(i)); } } @@ -572,8 +579,13 @@ public class CSXWHDialog extends Application { ObservableList results = FXCollections.observableArrayList(); Pattern pattern = Pattern.compile(name); for (int i = 0; i < list.size(); i++) { - Matcher matcher = pattern.matcher(((MachineBean) list.get(i)).getType()); - if (matcher.find()) { +// Matcher matcher = pattern.matcher(((MachineBean) list.get(i)).getType()); +// if (matcher.find()) { +// results.add(list.get(i)); +// } + if (((MachineBean) list.get(i)).getType().contains(name) + || ((MachineBean) list.get(i)).getProject().contains(name) + || ((MachineBean) list.get(i)).getCost().contains(name)) { results.add(list.get(i)); } } @@ -658,13 +670,20 @@ public class CSXWHDialog extends Application { } ps.setDouble(5, Double.valueOf(com.getCost())); int rs = ps.executeUpdate(); - if (rs == 1) + if (rs == 1) { System.out.println("添加成功"); - else + Alert alert = new Alert(AlertType.INFORMATION, "添加成功"); + alert.show(); + } else { System.out.println("添加失败"); + Alert alert = new Alert(AlertType.INFORMATION, "添加失败"); + alert.show(); + } } catch (Exception e) { System.out.println("添加失败"); + Alert alert = new Alert(AlertType.INFORMATION, "添加失败"); + alert.show(); } finally { if (ps != null) { try { @@ -697,10 +716,15 @@ public class CSXWHDialog extends Application { ps.setDouble(3, Double.valueOf(mac.getCost())); int rs = ps.executeUpdate(); System.out.println(rs); - if (rs == 1) + if (rs == 1) { System.out.println("添加成功"); - else + Alert alert = new Alert(AlertType.INFORMATION, "添加成功"); + alert.show(); + } else { System.out.println("添加失败"); + Alert alert = new Alert(AlertType.INFORMATION, "添加失败"); + alert.show(); + } } catch (Exception e) { System.out.println("添加失败"); @@ -741,10 +765,15 @@ public class CSXWHDialog extends Application { ps.setDouble(5, Double.valueOf(com.getCost())); ps.setInt(6, com.getCompId()); int rs = ps.executeUpdate(); - if (rs == 1) + if (rs == 1) { System.out.println("更新成功"); - else + Alert alert = new Alert(AlertType.INFORMATION, "更新成功"); + alert.show(); + } else { System.out.println("更新失败"); + Alert alert = new Alert(AlertType.INFORMATION, "更新失败"); + alert.show(); + } } catch (Exception e) { } finally { @@ -771,10 +800,16 @@ public class CSXWHDialog extends Application { ps = con.prepareStatement(sql); ps.setInt(1, id); int rs = ps.executeUpdate(); - if (rs > 0) + if (rs > 0) { System.out.println("成功"); - else + Alert alert = new Alert(AlertType.INFORMATION, "成功"); + alert.show(); + } else { System.out.println("失败"); + Alert alert = new Alert(AlertType.INFORMATION, "失败"); + alert.show(); + } + } catch (Exception e) { } finally { if (ps != null) { @@ -808,10 +843,15 @@ public class CSXWHDialog extends Application { ps.setDouble(3, Double.valueOf(mac.getCost())); ps.setInt(4, mac.getMacId()); int rs = ps.executeUpdate(); - if (rs == 1) + if (rs == 1) { System.out.println("更新成功"); - else + Alert alert = new Alert(AlertType.INFORMATION, "更新成功"); + alert.show(); + } else { System.out.println("更新失败"); + Alert alert = new Alert(AlertType.ERROR, "更新失败"); + alert.show(); + } } catch (Exception e) { } finally { diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/form/CSJHForm.java b/com.connor.jd.plm/src/com/connor/jd/plm/form/CSJHForm.java index d3389b4..3667fca 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/form/CSJHForm.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/form/CSJHForm.java @@ -1,6 +1,7 @@ package com.connor.jd.plm.form; import java.awt.BorderLayout; +import java.awt.Component; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; @@ -15,6 +16,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; +import java.util.Objects; import javax.swing.DefaultCellEditor; import javax.swing.JButton; @@ -59,6 +62,10 @@ public class CSJHForm extends AbstractRendering { private ObservableList componentData = FXCollections.observableArrayList(); String[] propNames = new String[] { "jd2_syxh", "jd2_symd", "jd2_wtry", "jd2_syxm", "jd2_syts", "jd2_syzq", "jd2_syfy", "jd2_jhrc", "jd2_sjrc", "jd2_syzt", "jd2_syjg", "jd2_sycs", "jd2_syry", "jd2_csbg", "jd2_bz" }; + private JLabel label3; + private List editable = new ArrayList(); + private Map res; + private Map rowNo; public CSJHForm(TCComponent form) throws Exception { super(); @@ -176,7 +183,8 @@ public class CSJHForm extends AbstractRendering { final JTable table = new JTable(model) { @Override public boolean isCellEditable(int row, int column) { - if (column == 3 || column == 4 || column == 5 || column == 6 || column == 7 || column == 14) + if (column == 3 || column == 4 || column == 5 || column == 6 || column == 7 || column == 14 + || column == 12 || editable.contains(row)) return false; else return true; @@ -191,8 +199,88 @@ public class CSJHForm extends AbstractRendering { for (int i = 0; i < 16; i++) { table.getColumn(table.getColumnName(i)).setMinWidth(60); } - table.getColumn(table.getColumnName(10)).setCellEditor(new DefaultCellEditor(testStage)); - table.getColumn(table.getColumnName(11)).setCellEditor(new DefaultCellEditor(testResult)); + + DefaultCellEditor dce1 = new DefaultCellEditor(testStage) { + + int row; + + @Override + public Component getTableCellEditorComponent(JTable paramJTable, Object paramObject, boolean paramBoolean, + int paramInt1, int paramInt2) { + // TODO Auto-generated method stub + + row = paramInt1; + return super.getTableCellEditorComponent(paramJTable, paramObject, paramBoolean, paramInt1, paramInt2); + } + + @Override + public Object getCellEditorValue() { + + Object obj = super.getCellEditorValue(); + if ("完成".equals(obj.toString())) { + editable.add(row); + } else { + if (editable.contains(row)) { + editable.remove(row); + } + } + return obj; + } + }; + + DefaultCellEditor dce2 = new DefaultCellEditor(testResult) { + JTable t; + int row; + int num; + + @Override + public Component getTableCellEditorComponent(JTable paramJTable, Object paramObject, boolean paramBoolean, + int paramInt1, int paramInt2) { + // TODO Auto-generated method stub + t = paramJTable; + row = paramInt1; + String str = t.getValueAt(row, 12) == null ? "" : t.getValueAt(row, 12).toString(); + num = Objects.equals(str, "") ? 0 : Integer.parseInt(str); + return super.getTableCellEditorComponent(paramJTable, paramObject, paramBoolean, paramInt1, paramInt2); + } + + @Override + public Object getCellEditorValue() { + // TODO Auto-generated method stub + + Object obj = super.getCellEditorValue(); + + if (res.containsKey(rowNo.get(row))) { + if (num >= res.get(rowNo.get(row)).getTimes()) { + res.put(rowNo.get(row), new JG(row, num, obj.toString())); + } + } else { + res.put(rowNo.get(row), new JG(row, num, obj.toString())); + } + + boolean flag = false; + for (Entry entry : res.entrySet()) { + if ("不合格".equals(entry.getValue().getJg())) { + flag = true; + break; + } + } + if (flag) { + label3.setText("结论:不合格"); + } else { + label3.setText("结论:合格"); + } + return obj; + } + }; + + table.getColumn(table.getColumnName(10)).setCellEditor(dce1); + table.getColumn(table.getColumnName(11)).setCellEditor(dce2); + if (form.isCheckedOut()) { + table.setEnabled(true); + } else { + table.setEnabled(false); + } JPanel panelLable = new JPanel(); JLabel label = new JLabel("试验费用总计:"); JLabel label2 = new JLabel(); @@ -204,8 +292,43 @@ public class CSJHForm extends AbstractRendering { allcost += Double.valueOf(value); } label2.setText(allcost + "元"); + + label3 = new JLabel("结论:合格"); + res = new HashMap(); + rowNo = new HashMap(); + String no; + String jg; + for (int i = 0; i < tables.length; i++) { + no = tables[i].getProperty("jd2_no"); + rowNo.put(i, no); + jg = tables[i].getProperty("jd2_syjg"); + int times = Integer.parseInt( + Objects.equals(tables[i].getProperty("jd2_sycs"), "") ? "0" : tables[i].getProperty("jd2_sycs")); + if ("完成".equals(tables[i].getProperty("jd2_syzt"))) { + editable.add(i); + } + if (res.containsKey(no)) { + if (times >= res.get(no).getTimes()) { + editable.add(res.get(no).getRow()); + res.put(no, new JG(i, times, jg)); + } + } else { + res.put(no, new JG(i, times, jg)); + } + } + + for (Entry entry : res.entrySet()) { + System.out.println(entry.getKey() + entry.getValue().getRow() + entry.getValue().getJg() + + entry.getValue().getTimes()); + if ("不合格".equals(entry.getValue().getJg())) { + label3.setText("结论:不合格"); + } + } + panelLable.add(label); panelLable.add(label2); + panelLable.add(label3); + JPanel panel = new JPanel(); JScrollPane pane = new JScrollPane(table); GridBagLayout gbl = new GridBagLayout(); @@ -243,11 +366,11 @@ public class CSJHForm extends AbstractRendering { if (file != null) { String filePath = file.getPath(); String fileName = file.getName(); - String[] filename = fileName.split("."); + String filename = fileName.substring(0, fileName.lastIndexOf(".")); System.out.println(filePath); System.out.println(fileName); int row = table.getSelectedRow(); - String value = (String) model.getValueAt(row, 14); + String value = model.getValueAt(row, 14) == null ? "" : model.getValueAt(row, 14).toString(); if (value.equals("")) { try { TCComponentItemType itemtype = (TCComponentItemType) session.getTypeComponent("JD2_GTCSBG"); @@ -263,7 +386,7 @@ public class CSJHForm extends AbstractRendering { } else if (filePath.endsWith(".xlsx") || filePath.endsWith(".xlsm")) { msType = "MSExcelX"; } - TCComponentDataset datasetMSExcelX = datasetType.create(filename[0], "", msType); + TCComponentDataset datasetMSExcelX = datasetType.create(filename, "", msType); datasetMSExcelX.setFiles(new String[] { filePath }, new String[] { "excel" });// 两参:文件路径,命名应用(text) item.getLatestItemRevision().add("IMAN_specification", datasetMSExcelX); model.setValueAt(item.getProperty("current_id"), row, 14); @@ -272,15 +395,45 @@ public class CSJHForm extends AbstractRendering { } } else { // 添加到数据集 + boolean exist = false; try { TCComponent[] tcc = itemR.getTCProperty("JD2_CSBG").getReferenceValueArray(); for (int i = 0; i < tcc.length; i++) { if (value.equals(tcc[i].getProperty("current_id"))) { + exist = true; TCComponentItem item = (TCComponentItem) tcc[i]; TCComponent[] tccitem = item.getLatestItemRevision().getTCProperty("IMAN_specification") .getReferenceValueArray(); TCComponentDataset dataset = (TCComponentDataset) tccitem[0]; dataset.setFiles(new String[] { file.getPath() }, new String[] { "excel" }); + dataset.setProperty("object_name", filename); + item.setProperty("object_name", filename); + item.getLatestItemRevision().setProperty("object_name", filename); + } + } + if (!exist) { + try { + TCComponentItemType itemtype = (TCComponentItemType) session + .getTypeComponent("JD2_GTCSBG"); + String itemId = itemtype.getNewID(); + String itemRev = itemtype.getNewRev(null); + TCComponentItem item = itemtype.create(itemId, itemRev, "JD2_GTCSBG", fileName, "描述", + null); + itemR.add("JD2_CSBG", item); + TCComponentDatasetType datasetType = (TCComponentDatasetType) session + .getTypeComponent("Dataset"); + String msType = ""; + if (filePath.endsWith(".xls")) { + msType = "MSExcel"; + } else if (filePath.endsWith(".xlsx") || filePath.endsWith(".xlsm")) { + msType = "MSExcelX"; + } + TCComponentDataset datasetMSExcelX = datasetType.create(filename, "", msType); + datasetMSExcelX.setFiles(new String[] { filePath }, new String[] { "excel" });// 两参:文件路径,命名应用(text) + item.getLatestItemRevision().add("IMAN_specification", datasetMSExcelX); + model.setValueAt(item.getProperty("current_id"), row, 14); + } catch (TCException e1) { + e1.printStackTrace(); } } } catch (TCException e1) { @@ -303,7 +456,7 @@ public class CSJHForm extends AbstractRendering { if (file != null) { String filePath = file.getPath(); String fileName = file.getName(); - String[] filename = fileName.split("."); + String filename = fileName.substring(0, fileName.lastIndexOf(".")); System.out.println(filePath); System.out.println(fileName); if (value.equals("")) { @@ -321,25 +474,52 @@ public class CSJHForm extends AbstractRendering { } else if (filePath.endsWith(".xlsx") || filePath.endsWith(".xlsm")) { msType = "MSExcelX"; } - TCComponentDataset datasetMSExcelX = datasetType.create(filename[0], "", msType); + TCComponentDataset datasetMSExcelX = datasetType.create(filename, "", msType); datasetMSExcelX.setFiles(new String[] { filePath }, new String[] { "excel" });// 两参:文件路径,命名应用(text) item.getLatestItemRevision().add("IMAN_specification", datasetMSExcelX); - model.setValueAt(item.getProperty("current_id"), row, 14); } catch (TCException e1) { e1.printStackTrace(); } } else { // 添加到数据集 + boolean exist = false; try { TCComponent[] tcc = itemR.getTCProperty("JD2_CSBGHZ").getReferenceValueArray(); for (int i = 0; i < tcc.length; i++) { if (value.equals(tcc[i].getProperty("current_id"))) { + exist = true; TCComponentItem item = (TCComponentItem) tcc[i]; TCComponent[] tccitem = item.getLatestItemRevision().getTCProperty("IMAN_specification") .getReferenceValueArray(); TCComponentDataset dataset = (TCComponentDataset) tccitem[0]; dataset.setFiles(new String[] { file.getPath() }, new String[] { "excel" }); - + dataset.setProperty("object_name", filename); + item.setProperty("object_name", filename); + item.getLatestItemRevision().setProperty("object_name", filename); + } + } + if (!exist) { + try { + TCComponentItemType itemtype = (TCComponentItemType) session + .getTypeComponent("JD2_GTCSBG"); + String itemId = itemtype.getNewID(); + String itemRev = itemtype.getNewRev(null); + TCComponentItem item = itemtype.create(itemId, itemRev, "JD2_GTCSBG", fileName, "描述", + null); + itemR.add("JD2_CSBGHZ", item); + TCComponentDatasetType datasetType = (TCComponentDatasetType) session + .getTypeComponent("Dataset"); + String msType = ""; + if (filePath.endsWith(".xls")) { + msType = "MSExcel"; + } else if (filePath.endsWith(".xlsx") || filePath.endsWith(".xlsm")) { + msType = "MSExcelX"; + } + TCComponentDataset datasetMSExcelX = datasetType.create(filename, "", msType); + datasetMSExcelX.setFiles(new String[] { filePath }, new String[] { "excel" });// 两参:文件路径,命名应用(text) + item.getLatestItemRevision().add("IMAN_specification", datasetMSExcelX); + } catch (TCException e1) { + e1.printStackTrace(); } } } catch (TCException e1) { @@ -370,7 +550,7 @@ public class CSJHForm extends AbstractRendering { chishu = "0"; } temp[12] = String.valueOf(Integer.valueOf(chishu) + 1); - temp[14] = (String) model.getValueAt(table.getSelectedRow(), 14); +// temp[14] = (String) model.getValueAt(table.getSelectedRow(), 14); temp[15] = (String) model.getValueAt(table.getSelectedRow(), 15); model.insertRow(table.getSelectedRow() + 1, temp); for (int i = table.getSelectedRow() + 1; i < model.getRowCount(); i++) { @@ -385,6 +565,8 @@ public class CSJHForm extends AbstractRendering { allcost2 += Double.valueOf(value); } label2.setText(allcost2 + "元"); + editable.add(table.getSelectedRow()); + rowNo.put(table.getSelectedRow() + 1, rowNo.get(table.getSelectedRow())); }); table.addMouseListener(new MouseAdapter() { @@ -433,6 +615,7 @@ public class CSJHForm extends AbstractRendering { for (int i = 0; i < model.getRowCount(); i++) { CreateIn in = new CreateIn(); Map propMap = new HashMap(); + propMap.put("jd2_no", rowNo.get(i)); for (int j = 0; j < propNames.length; j++) { propMap.put(propNames[j], model.getValueAt(i, j + 1) == null ? "" : model.getValueAt(i, j + 1).toString()); @@ -464,4 +647,48 @@ public class CSJHForm extends AbstractRendering { } } + @Override + public boolean isRenderingModified() { + // TODO Auto-generated method stub + return form.isCheckedOut(); + } + + private class JG { + int row; + int times; + String jg; + + public JG(int row, int times, String jg) { + super(); + this.row = row; + this.times = times; + this.jg = jg; + } + + public int getTimes() { + return times; + } + + public void setTimes(int times) { + this.times = times; + } + + public String getJg() { + return jg; + } + + public void setJg(String jg) { + this.jg = jg; + } + + public int getRow() { + return row; + } + + public void setRow(int row) { + this.row = row; + } + + } + } diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/form/ComponentTestFrame.java b/com.connor.jd.plm/src/com/connor/jd/plm/form/ComponentTestFrame.java index cb9114a..526e788 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/form/ComponentTestFrame.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/form/ComponentTestFrame.java @@ -57,6 +57,7 @@ public class ComponentTestFrame extends JFrame { } else { instance.bottom = 0; instance.form = form; + instance.callBack = callBack; instance.init(); } return instance; @@ -194,28 +195,28 @@ public class ComponentTestFrame extends JFrame { TCComponentItemRevision rev = (TCComponentItemRevision) form.whereReferenced()[0].getComponent(); TCComponentItemType type = (TCComponentItemType) session.getTypeComponent("Item"); - String itemId = type.getNewID(); - String itemRev = type.getNewRev(null); - TCComponentItem item = type.create(itemId, itemRev, "JD2_GTCSJH", rev.getProperty("item_id"), "", - null); + TCComponentItem item = type.create(null, null, "JD2_GTCSJH", "测试计划", "", null); rev.add("JD2_CSJH", item); TCComponentItemRevision rev1 = item.getLatestItemRevision(); TCComponentForm form1 = (TCComponentForm) rev1.getRelatedComponents("IMAN_master_form_rev")[0]; - String[] colNames = new String[] { "jd2_wtry", "jd2_syxm", "jd2_syts", "jd2_syzq", "jd2_syfy" }; + String[] colNames = new String[] { "jd2_no", "jd2_wtry", "jd2_syxm", "jd2_syts", "jd2_syzq", + "jd2_syfy", "jd2_sycs" }; List list = new ArrayList(); - String[] row = new String[5]; + String[] row = new String[7]; for (int i = 1; i <= bottom; i++) { JCheckBox jb = (JCheckBox) model.getValueAt(i, 6); if (jb.isSelected()) { for (int ii = 2; ii < 6; ii++) { row[ii - 2] = model.getValueAt(i, ii) == null ? "" : model.getValueAt(i, ii).toString(); } - list.add(new String[] { session.getUserName(), row[0], row[2], row[1], row[3] }); +// TCComponentPerson p = (TCComponentPerson) session.getUser().getUserInformation().get(0); + list.add(new String[] { i + "", form.getTCProperty("owning_user").getUIFValue(), row[0], + row[2], row[1], row[3], "1" }); } } - String[][] data = list.toArray(new String[list.size()][5]); + String[][] data = list.toArray(new String[list.size()][7]); TCTableUtil.setTableRows(form1, "jd2_csjh", "JD2_CSJHTABLE", colNames, data); - callBack.execute(itemId); + callBack.execute(item.getProperty("item_id")); dispose(); } catch (TCException e1) { // TODO Auto-generated catch block diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/form/ExperimentalPowerOfAttorneyForm.java b/com.connor.jd.plm/src/com/connor/jd/plm/form/ExperimentalPowerOfAttorneyForm.java index 1c7bba7..5c0edf0 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/form/ExperimentalPowerOfAttorneyForm.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/form/ExperimentalPowerOfAttorneyForm.java @@ -279,7 +279,7 @@ public class ExperimentalPowerOfAttorneyForm extends AbstractRendering implement model.setValueAt("生效期", 1, 8); disableEdit.add("1,8"); general.put("jd2_bh", new int[] { 0, 9 }); - general.put("jd2_sxq", new int[] { 1, 9 }); + general.put("jd2_sxr", new int[] { 1, 9 }); model.setValueAt("委托项目:", 3, 0); disableEdit.add("3,0"); model.setValueAt("委托部门:", 4, 0); @@ -403,7 +403,7 @@ public class ExperimentalPowerOfAttorneyForm extends AbstractRendering implement } for (Entry entry : general2.entrySet()) { if (prop.containsKey(entry.getKey())) { - String value = model.getValueAt(entry.getValue()[0], entry.getValue()[1]).toString(); + String value = model2.getValueAt(entry.getValue()[0], entry.getValue()[1]).toString(); try { if (form.getTCProperty(entry.getKey()).getLOV() != null && !"".equals(value)) { value = (String) form.getTCProperty(entry.getKey()).getLOV().getListOfValues() @@ -456,6 +456,12 @@ public class ExperimentalPowerOfAttorneyForm extends AbstractRendering implement System.out.println(Arrays.deepToString(dataArr)); TCTableUtil.setTableRows(form, "jd2_sywts", "JD2_SYWTS", colNames, dataArr); } + try { + form.refresh(); + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } private boolean isEditorDisable(List list, int row, int col) { @@ -538,7 +544,15 @@ public class ExperimentalPowerOfAttorneyForm extends AbstractRendering implement public void execute(String itemId) { // TODO Auto-generated method stub int row = table.getSelectedRow(); + System.out.println(itemId + " " + row); model.setValueAt(itemId, row, 9); + table.revalidate(); + table.repaint(); + } + + @Override + public boolean isRenderingModified() { + return form.isCheckedOut(); } } 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 new file mode 100644 index 0000000..1a820b0 --- /dev/null +++ b/com.connor.jd.plm/src/com/connor/jd/plm/form/NewProductTestForm.java @@ -0,0 +1,162 @@ +package com.connor.jd.plm.form; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.util.List; +import java.util.Map; + +import javax.swing.BorderFactory; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTable; +import javax.swing.SwingConstants; +import javax.swing.table.DefaultTableCellRenderer; + +import com.connor.jd.plm.table.CTMap; +import com.connor.jd.plm.table.CTable; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.stylesheet.AbstractRendering; + +public class NewProductTestForm extends AbstractRendering { + private TCComponentForm form; + private CTMap model1; + private CTMap model2; + private CTable table1; + private CTable table2; + private Map prop; + private List disableEdit; + private List disableEdit2; + private Map general; + private Map general2; + + public NewProductTestForm(TCComponent arg0) throws Exception { + super(arg0); + if (arg0 instanceof TCComponentForm) { + this.form = (TCComponentForm) arg0; + loadRendering(); + } + } + + @Override + public void loadRendering() throws TCException { + this.setLayout(new BorderLayout()); + JPanel root = new JPanel(new BorderLayout()); + root.setPreferredSize(new Dimension(800, 500)); + JPanel inner = new JPanel(new BorderLayout()); + + JLabel title = new JLabel("新品项目测试单"); + inner.add(title, BorderLayout.NORTH); + + prop = form.getProperties(); + + // 初始化表格 + model1 = new CTMap(6, 4); + model1.setValueAt("项目信息:", 0, 0); + disableEdit.add("0,0"); + model1.setValueAt("项目信息:", 0, 2); + disableEdit.add("0,2"); + model1.setValueAt("项目信息:", 1, 0); + disableEdit.add("1,0"); + model1.setValueAt("项目信息:", 1, 2); + disableEdit.add("1,2"); + model1.setValueAt("项目信息:", 2, 0); + disableEdit.add("2,0"); + model1.setValueAt("项目信息:", 2, 2); + disableEdit.add("2,2"); + model1.setValueAt("项目信息:", 3, 0); + disableEdit.add("3,0"); + model1.setValueAt("项目信息:", 3, 2); + disableEdit.add("3,2"); + model1.setValueAt("项目信息:", 4, 0); + disableEdit.add("4,0"); + model1.setValueAt("项目信息:", 4, 2); + disableEdit.add("4,2"); + model1.setValueAt("项目信息:", 5, 0); + disableEdit.add("5,0"); + model1.setValueAt("项目信息:", 5, 2); + disableEdit.add("5,2"); + general.put("jd2_xmxx", new int[] { 0, 1 }); + general.put("jd2_lxsj", new int[] { 0, 3 }); + general.put("jd2_jbxh", new int[] { 1, 1 }); + general.put("jd2_csxh", new int[] { 1, 3 }); + general.put("jd2_cpxh", new int[] { 2, 1 }); + general.put("jd2_xmzl", new int[] { 2, 3 }); + general.put("jd2_cpjl", new int[] { 3, 1 }); + general.put("jd2_cpbgd", new int[] { 3, 3 }); + general.put("jd2_pzjl", new int[] { 4, 1 }); + general.put("jd2_kfrc", new int[] { 4, 3 }); + general.put("jd2_kfdj", new int[] { 5, 1 }); + general.put("jd2_kfjd", new int[] { 5, 3 }); + + table1 = new CTable(model1) { + @Override + public boolean isCellEditable(int row, int col) { + if (isEditorDisable(disableEdit, row, col)) { + return false; + } + return true; + } + }; + + table1.setRowHeight(25); + table1.setBorder(BorderFactory.createLineBorder(Color.black)); + table1.getColumnModel().getColumn(0).setPreferredWidth(100); + table1.getColumnModel().getColumn(1).setPreferredWidth(100); + table1.getColumnModel().getColumn(2).setPreferredWidth(100); + table1.getColumnModel().getColumn(3).setPreferredWidth(200); + + DefaultTableCellRenderer tcr1 = new DefaultTableCellRenderer() { + // 重写方法 + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, + boolean hasFocus, int row, int column) { + // TODO Auto-generated method stub + + if (value instanceof JPanel) { + return (JPanel) value; + } + + int maxPreferredHeight = 0; + for (int i = 0; i < table.getColumnCount(); i++) { + setText("" + table.getValueAt(row, i)); + setSize(table.getColumnModel().getColumn(column).getWidth(), 0); + maxPreferredHeight = Math.max(maxPreferredHeight, getPreferredSize().height); + } + setBackground(Color.white); +// if(points1.contains(new Point(row,column))) +// setForeground(new Color(0,0,255)); +// else + setForeground(Color.black); + if (isSelected) { + setBackground(new Color(0, 120, 215)); + setForeground(Color.white); + } + if (table.getRowHeight(row) != maxPreferredHeight) // 少了这行则处理器瞎忙 + table.setRowHeight(row, maxPreferredHeight); + + setText(value == null ? "" : value.toString()); + return this; + } + }; + tcr1.setHorizontalAlignment(SwingConstants.CENTER); + table1.setAutoResizeMode(CTable.AUTO_RESIZE_NEXT_COLUMN); + table1.setDefaultRenderer(Object.class, tcr1); + inner.add(table1, BorderLayout.CENTER); + + model2 = new CTMap(131, 9); + } + + @Override + public void saveRendering() { + // TODO Auto-generated method stub + + } + + private boolean isEditorDisable(List list, int row, int col) { + return list.contains(row + "," + col); + } +}