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);
}