diff --git a/com.connor.jd.plm/META-INF/MANIFEST.MF b/com.connor.jd.plm/META-INF/MANIFEST.MF
index 437fc06..e29df95 100644
--- a/com.connor.jd.plm/META-INF/MANIFEST.MF
+++ b/com.connor.jd.plm/META-INF/MANIFEST.MF
@@ -13,7 +13,10 @@ Require-Bundle: org.eclipse.ui;bundle-version="3.108.0",
org.eclipse.ui.views;bundle-version="3.8.100",
org.eclipse.core.runtime;bundle-version="3.12.0",
org.eclipse.ui.forms;bundle-version="3.7.0",
- com.teamcenter.rac.schedule;bundle-version="12000.1.0"
+ com.teamcenter.rac.schedule;bundle-version="12000.1.0",
+ TcSoaCommon;bundle-version="12000.2.0",
+ com.teamcenter.rac.workflow.processviewer;bundle-version="12000.2.0",
+ com.teamcenter.rac.workflow.processdesigner;bundle-version="12000.2.0"
Automatic-Module-Name: JDProject
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: com.connor.jd.operations,
@@ -36,7 +39,8 @@ Import-Package: com.connor.jd.plm.beans,
org.apache.http.client,
org.apache.http.client.methods,
org.apache.http.client.params,
- org.apache.http.client.protocol
+ org.apache.http.client.protocol,
+ org.apache.log4j
Bundle-ClassPath: .,
lib/fastjson-1.2.9.jar,
lib/hutool-all-5.0.7.jar,
diff --git a/com.connor.jd.plm/plugin.xml b/com.connor.jd.plm/plugin.xml
index 24fd85c..f738416 100644
--- a/com.connor.jd.plm/plugin.xml
+++ b/com.connor.jd.plm/plugin.xml
@@ -202,6 +202,8 @@
+
+
@@ -398,6 +400,10 @@
+
+
+
+
@@ -687,6 +693,20 @@
id="com.connor.jd.ADDHLBOM">
true
+
+ true
+
+
+ true
+
diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/action/BatchReviseAction.java b/com.connor.jd.plm/src/com/connor/jd/plm/action/BatchReviseAction.java
new file mode 100644
index 0000000..347cc95
--- /dev/null
+++ b/com.connor.jd.plm/src/com/connor/jd/plm/action/BatchReviseAction.java
@@ -0,0 +1,94 @@
+package com.connor.jd.plm.action;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import com.connor.jd.plm.utils.DialogUtil;
+import com.connor.jd.plm.utils.DialogUtil.TableMsg;
+import com.teamcenter.rac.aif.AbstractAIFApplication;
+import com.teamcenter.rac.aif.common.actions.AbstractAIFAction;
+import com.teamcenter.rac.kernel.TCComponent;
+import com.teamcenter.rac.kernel.TCComponentFolder;
+import com.teamcenter.rac.kernel.TCComponentItemRevision;
+import com.teamcenter.rac.kernel.TCSession;
+
+public class BatchReviseAction extends AbstractAIFAction {
+ private TCSession session;
+ private TCComponentFolder folder;
+
+ public BatchReviseAction(AbstractAIFApplication arg0, String arg1) {
+ super(arg0, arg1);
+ this.session = (TCSession) arg0.getSession();
+ TCComponent target = (TCComponent) arg0.getTargetComponent();
+ System.out.println("===>" + target.getType());
+ if (target instanceof TCComponentFolder) {
+ this.folder = (TCComponentFolder) target;
+ }
+ }
+
+ @Override
+ public void run() {
+ if (folder == null) {
+ return;
+ }
+ try {
+ TCComponent[] comps = folder.getRelatedComponents("contents");
+ List unpublished = new ArrayList();
+ check(comps, unpublished);
+ if (unpublished.size() > 0) {
+ TableMsg msg = DialogUtil.createTableMsg(new String[] { "", "", "ԭ" }, unpublished);
+ JPanel content = new JPanel(new BorderLayout());
+ content.setSize(new Dimension(msg.panel.getWidth(), msg.panel.getHeight() + 50));
+ JLabel text = new JLabel("ȡĿδҪ");
+ content.add(text, BorderLayout.NORTH);
+ content.add(msg.panel, BorderLayout.CENTER);
+ JOptionPane.showMessageDialog(null, content, "Ϣ", JOptionPane.PLAIN_MESSAGE);
+ return;
+ }
+ List newRevs = new ArrayList<>();
+ for (TCComponent comp : comps) {
+ if (!(comp instanceof TCComponentItemRevision)) {
+ continue;
+ }
+ TCComponentItemRevision rev = (TCComponentItemRevision) comp;
+ newRevs.add(rev.saveAs(rev.getItem().getNewRev()));
+ }
+ if (comps.length > 0) {
+ folder.cutOperation("contents", comps);
+ folder.add("contents", newRevs);
+ folder.refresh();
+ JOptionPane.showMessageDialog(null, "ɹ", "Ϣ", JOptionPane.WARNING_MESSAGE);
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ private void check(TCComponent[] comps, List unpublished) throws Exception {
+ for (TCComponent comp : comps) {
+ if (!(comp instanceof TCComponentItemRevision)) {
+ unpublished.add(
+ new String[] { unpublished.size() + 1 + "", comp.getProperty("object_string"), "ĿʹŰ汾" });
+ continue;
+ }
+ boolean isAccess = session.getTCAccessControlService()
+ .checkPrivilege(((TCComponentItemRevision) comp).getItem(), "WRITE");
+ if (!isAccess) {
+ unpublished.add(new String[] { unpublished.size() + 1 + "", comp.getProperty("object_string"), "Ȩ" });
+ continue;
+ }
+ TCComponent[] status = comp.getRelatedComponents("release_status_list");
+ if (status.length == 0) {
+ unpublished.add(new String[] { unpublished.size() + 1 + "", comp.getProperty("object_string"), "δ" });
+ }
+ }
+ }
+
+}
diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/action/DeleteItemRevisionAction.java b/com.connor.jd.plm/src/com/connor/jd/plm/action/DeleteItemRevisionAction.java
new file mode 100644
index 0000000..6c9a791
--- /dev/null
+++ b/com.connor.jd.plm/src/com/connor/jd/plm/action/DeleteItemRevisionAction.java
@@ -0,0 +1,85 @@
+package com.connor.jd.plm.action;
+
+import java.util.Arrays;
+import java.util.List;
+
+import com.connor.jd.plm.utils.JDMethodUtil;
+import com.teamcenter.rac.aif.AbstractAIFApplication;
+import com.teamcenter.rac.aif.common.actions.AbstractAIFAction;
+import com.teamcenter.rac.aif.kernel.AIFComponentContext;
+import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
+import com.teamcenter.rac.kernel.TCComponent;
+import com.teamcenter.rac.kernel.TCComponentItem;
+import com.teamcenter.rac.kernel.TCComponentItemRevision;
+import com.teamcenter.rac.kernel.TCException;
+import com.teamcenter.rac.kernel.TCProperty;
+import com.teamcenter.rac.kernel.TCSession;
+import com.teamcenter.rac.util.MessageBox;
+
+public class DeleteItemRevisionAction extends AbstractAIFAction {
+ private AbstractAIFApplication app;
+
+ public DeleteItemRevisionAction(AbstractAIFApplication arg0, String arg1) {
+ super(arg0, arg1);
+ this.app = arg0;
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ TCSession session = (TCSession) app.getSession();
+ InterfaceAIFComponent[] targets = app.getTargetComponents();
+ String[] allow = JDMethodUtil.getPrefStrArray("jd2_wltz_Revise_allow", session);
+ System.out.println(Arrays.toString(allow));
+ List pref = Arrays.asList(allow);
+ for (InterfaceAIFComponent target : targets) {
+ System.out.println(target.getType());
+ if (target instanceof TCComponentItemRevision && pref.contains(target.getType())) {
+ TCComponentItemRevision rev = (TCComponentItemRevision) target;
+ try {
+ String loginUser = session.getUser().getProperty("object_string");
+ String owningUser = rev.getProperty("owning_user");
+ System.out.println("loginUser===>" + loginUser);
+ System.out.println("owningUser===>" + owningUser);
+ if (loginUser.equals(owningUser)) {
+ TCComponentItem item = rev.getItem();
+ TCComponent[] released = item.getReleasedItemRevisions();
+ for (TCComponent comp : released) {
+ if (comp.getUid().equals(rev.getUid())) {
+ MessageBox.post("ɾѾ", "ʾ", MessageBox.WARNING);
+ return;
+ }
+ }
+ if (!loginUser.equals(item.getProperty("owning_user"))) {
+ session.getUserService().call("bs_bypass", new Object[] { true });
+ AIFComponentContext[] aifs = rev.whereReferenced();
+ for (AIFComponentContext aif : aifs) {
+ if (aif.getComponent() instanceof TCComponentItemRevision) {
+ TCComponentItemRevision temp = (TCComponentItemRevision) aif.getComponent();
+ TCProperty[] tcProps = temp.getAllTCProperties();
+ for (TCProperty tcProp : tcProps) {
+ TCComponent[] comps = tcProp.getReferenceValueArray();
+ for (TCComponent comp : comps) {
+ if (comp.getUid().equals(rev.getUid())) {
+ temp.cutOperation(tcProp.getPropertyName(), new TCComponent[] { rev });
+ }
+ }
+ }
+ } else {
+ rev.delete();
+ }
+ }
+ session.getUserService().call("bs_bypass", new Object[] { false });
+ }
+ }
+ } catch (TCException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+
+ }
+
+}
diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/action/WLTZReviseAction.java b/com.connor.jd.plm/src/com/connor/jd/plm/action/WLTZReviseAction.java
index 76cb516..0860d9d 100644
--- a/com.connor.jd.plm/src/com/connor/jd/plm/action/WLTZReviseAction.java
+++ b/com.connor.jd.plm/src/com/connor/jd/plm/action/WLTZReviseAction.java
@@ -9,12 +9,13 @@ import com.alibaba.fastjson.JSONObject;
import com.connor.jd.plm.utils.JDMethodUtil;
import com.teamcenter.rac.aif.AbstractAIFApplication;
import com.teamcenter.rac.aif.common.actions.AbstractAIFAction;
+import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent;
import com.teamcenter.rac.aifrcp.AIFUtility;
+import com.teamcenter.rac.common.Activator;
import com.teamcenter.rac.kernel.TCAccessControlService;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentBOMLine;
import com.teamcenter.rac.kernel.TCComponentICO;
-import com.teamcenter.rac.kernel.TCComponentItem;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCPreferenceService;
@@ -35,13 +36,19 @@ public class WLTZReviseAction extends AbstractAIFAction {
@Override
public void run() {
// TODO Auto-generated method stub
+ String server = JDMethodUtil.getPrefStr("jd2_server_ip", session);
+ if (server == null || "".equals(server)) {
+ MessageBox.post("δjd2_server_ipѡ", "", MessageBox.ERROR);
+ return;
+ }
+
TCComponent target = (TCComponent) AIFUtility.getCurrentApplication().getTargetComponent();
String[] allow = getPrefStrArray("jd2_wltz_Revise_allow");
List list = Arrays.asList(allow);
for (String s : list) {
System.out.println(s);
}
-
+ TCAccessControlService aclService = session.getTCAccessControlService();
TCComponentItemRevision rev;
if (target instanceof TCComponentItemRevision) {
rev = (TCComponentItemRevision) target;
@@ -60,32 +67,97 @@ public class WLTZReviseAction extends AbstractAIFAction {
}
try {
String type = rev.getType();
+ System.out.println("uid===>" + rev.getItem().getUid());
+ System.out.println("user===>" + session.getUser().getUid());
System.out.println(type);
if (!list.contains(type)) {
MessageBox.post("ǰͲͷ࣡", "", MessageBox.ERROR);
return;
}
- TCComponentItem item = rev.getItem();
- TCComponent[] comps = rev.getRelatedComponents("fnd0ActuatedInteractiveTsks");
- List allow2 = Arrays.asList(JDMethodUtil.getPrefStrArray("jd_wltz_revise_workflow", session));
- System.out.println("allow workflow:" + Arrays.toString(allow2.toArray()));
- TCComponentItemRevision newRev = null;
- for (TCComponent comp : comps) {
- if (comp.getProperty("object_name").contains("") && allow2.contains(comp.getProperty("parent_name"))
- && comp.getProperty("task_state").equals("ѿʼ")) {
- System.out.println("ʼȨ");
- TCAccessControlService aclService = session.getTCAccessControlService();
- aclService.grantPrivilege(item, session.getUser(), "READ");
- aclService.grantPrivilege(item, session.getUser(), "WRITE");
- aclService.grantPrivilege(item, session.getUser(), "DELETE");
- rev.refresh();
- System.out.println("Ȩдɾ");
- newRev = rev.saveAs(item.getNewRev());
- break;
+ rev.refresh();
+// String url = "http://" + server + ":8880/api/grantPrivilege";
+// TCComponentItem item = rev.getItem();
+// TCComponent[] comps = rev.getRelatedComponents("fnd0ActuatedInteractiveTsks");
+// TCComponent[] bomViews = item.getRelatedComponents("bom_view_tags");
+// String uids = "";
+// for (TCComponent bomView : bomViews) {
+// uids += "," + bomView.getUid();
+// }
+// AIFComponentContext[] referenced = rev.whereReferenced();
+// for (AIFComponentContext aif : referenced) {
+// if (aif.getComponent() instanceof TCComponentItem
+// || aif.getComponent() instanceof TCComponentItemRevision) {
+// uids += aif.getComponent().getUid() + ",";
+// }
+// }
+// uids = uids.substring(0, uids.length() - 1);
+// Map privilegeMap = new HashMap();
+// privilegeMap.put("uid", uids);
+// privilegeMap.put("user", session.getUser().getUid());
+// privilegeMap.put("privilege", "WRITE,DELETE");
+// privilegeMap.put("pass", true);
+// List allow2 = Arrays.asList(JDMethodUtil.getPrefStrArray("jd_wltz_revise_workflow", session));
+// System.out.println("allow workflow:" + Arrays.toString(allow2.toArray()));
+// TCComponentItemRevision newRev = null;
+// boolean getPrivilege = false;
+// for (TCComponent comp : comps) {
+// if (comp.getProperty("object_name").contains("") && allow2.contains(comp.getProperty("parent_name"))
+// && comp.getProperty("task_state").equals("ѿʼ")) {
+// System.out.println("ʼȨ");
+// privilegeMap.put("pass", true);
+// String res = HttpUtil.post(url, privilegeMap);
+// System.out.println("res===>" + res);
+// if (!res.contains("success")) {
+// MessageBox.post("Ȩ쳣ʧ", "", MessageBox.ERROR);
+// return;
+// }
+// item.refresh();
+// for (TCComponent bomView : bomViews) {
+// bomView.refresh();
+// }
+// getPrivilege = true;
+// System.out.println("Ȩдɾ");
+// session.getUserService().call("bs_bypass", new Object[] { true });
+// newRev = rev.saveAs(item.getNewRev());
+// session.getUserService().call("bs_bypass", new Object[] { false });
+// break;
+// }
+// }
+ boolean isAccess = session.getTCAccessControlService().checkPrivilege(rev.getItem(), "WRITE");
+ if (!isAccess) {
+ MessageBox.post("Ȩ", "ʾ", MessageBox.WARNING);
+ return;
+ }
+ TCComponentItemRevision newRev = rev.saveAs(rev.getItem().getNewRev());
+ if (target instanceof TCComponentBOMLine) {
+ TCComponentBOMLine bomLine = (TCComponentBOMLine) target;
+ if (bomLine.parent() != null) {
+ bomLine.window().refresh();
+ } else {
+ System.out.println("topLine");
+ Activator.getDefault().openPerspective("com.teamcenter.rac.pse.PSEPerspective");
+ Activator.getDefault().openComponents("com.teamcenter.rac.pse.PSEPerspective",
+ new InterfaceAIFComponent[] { newRev });
}
}
- if (newRev == null) {
- newRev = rev.saveAs(item.getNewRev());
+ if (rev.getClassificationClass() == null || "".equals(rev.getClassificationClass())) {
+ MessageBox.post("ɹ", "ʾ", MessageBox.WARNING);
+// if (getPrivilege) {
+// privilegeMap.put("pass", false);
+// String res = HttpUtil.post(url, privilegeMap);
+// System.out.println("res===>" + res);
+// if (res.contains("error")) {
+// MessageBox.post("Ȩ쳣ʧ", "", MessageBox.ERROR);
+// return;
+// }
+// item.refresh();
+// for (TCComponent bomView : bomViews) {
+// bomView.refresh();
+// }
+// System.out.println("ѳдɾȨ");
+// }
+ System.out.println("success");
+ return;
}
TCComponentICO ico = rev.getClassificationObjects()[0];
ICSProperty[] oldICSProps = ico.getICSProperties(true);
@@ -100,36 +172,57 @@ public class WLTZReviseAction extends AbstractAIFAction {
json.put("ids", ids);
json.put("values", values);
String prop = json.toString();
- prop = prop.replace("\"", "\\\"");
+// prop = prop.replace("\"", "\\\"");
System.out.println("prop:" + prop);
String uid = newRev.getUid();
System.out.println("uid:" + uid);
String cid = rev.getClassificationClass();
System.out.println("cid:" + cid);
- String server = getPrefStr("jd2_server_ip");
- if (server == null || "".equals(server)) {
- MessageBox.post("δjd2_server_ipѡ", "", MessageBox.ERROR);
- return;
- }
- String url = "http://" + server + ":8880/sendClassification";
Map paramMap = new HashMap();
paramMap.put("uid", uid);
paramMap.put("cid", cid);
paramMap.put("prop", prop);
- final String URL = url;
+ final String URL = "http://" + server + ":8880/api/sendClassification";
+// final String URL2 = url;
final Map PARAMMAP = paramMap;
+// final Map PRIVILEGEMAP = privilegeMap;
+// final TCComponent[] BOMVIEWS = bomViews;
+// final boolean GetPrivilege = getPrivilege;
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
cn.hutool.http.HttpUtil.post(URL, PARAMMAP);
+ MessageBox.post("ɹ", "ʾ", MessageBox.WARNING);
+
+// if (GetPrivilege) {
+// PRIVILEGEMAP.put("pass", false);
+// String res = HttpUtil.post(URL2, PRIVILEGEMAP);
+// System.out.println("res===>" + res);
+// if (!res.contains("success")) {
+// MessageBox.post("Ȩ쳣ʧ", "", MessageBox.ERROR);
+// } else {
+// try {
+// item.refresh();
+// for (TCComponent bomView : BOMVIEWS) {
+// bomView.refresh();
+// }
+// } catch (TCException e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
+// System.out.println("ѳдɾȨ");
+// }
+// }
+
System.out.println("success");
}
}).start();
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
+ MessageBox.post(e.getMessage(), "", MessageBox.ERROR);
}
}
diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/beans/BOMLogBean.java b/com.connor.jd.plm/src/com/connor/jd/plm/beans/BOMLogBean.java
new file mode 100644
index 0000000..56555fc
--- /dev/null
+++ b/com.connor.jd.plm/src/com/connor/jd/plm/beans/BOMLogBean.java
@@ -0,0 +1,80 @@
+package com.connor.jd.plm.beans;
+
+public class BOMLogBean {
+ private String target1;
+ private String target2;
+ private String parent;
+ private String operation;
+ private String unit;
+ private String oldNum;
+ private String num;
+
+ public BOMLogBean(String target1, String target2, String parent, String operation, String unit, String oldNum,
+ String num) {
+ super();
+ this.target1 = target1;
+ this.target2 = target2;
+ this.parent = parent;
+ this.operation = operation;
+ this.unit = unit;
+ this.oldNum = oldNum;
+ this.num = num;
+ }
+
+ public String getTarget1() {
+ return target1;
+ }
+
+ public void setTarget1(String target1) {
+ this.target1 = target1;
+ }
+
+ public String getTarget2() {
+ return target2;
+ }
+
+ public void setTarget2(String target2) {
+ this.target2 = target2;
+ }
+
+ public String getParent() {
+ return parent;
+ }
+
+ public void setParent(String parent) {
+ this.parent = parent;
+ }
+
+ public String getOperation() {
+ return operation;
+ }
+
+ public void setOperation(String operation) {
+ this.operation = operation;
+ }
+
+ public String getUnit() {
+ return unit;
+ }
+
+ public void setUnit(String unit) {
+ this.unit = unit;
+ }
+
+ public String getOldNum() {
+ return oldNum;
+ }
+
+ public void setOldNum(String oldNum) {
+ this.oldNum = oldNum;
+ }
+
+ public String getNum() {
+ return num;
+ }
+
+ public void setNum(String num) {
+ this.num = num;
+ }
+
+}
diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialog/EditClassificationDialog.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialog/EditClassificationDialog.java
index a405be0..d489efa 100644
--- a/com.connor.jd.plm/src/com/connor/jd/plm/dialog/EditClassificationDialog.java
+++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialog/EditClassificationDialog.java
@@ -7,7 +7,6 @@ import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
-import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -29,6 +28,7 @@ import com.teamcenter.rac.aifrcp.AIFUtility;
import com.teamcenter.rac.kernel.TCClassificationService;
import com.teamcenter.rac.kernel.TCComponent;
import com.teamcenter.rac.kernel.TCComponentDataset;
+import com.teamcenter.rac.kernel.TCComponentForm;
import com.teamcenter.rac.kernel.TCComponentICO;
import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
@@ -67,6 +67,12 @@ public class EditClassificationDialog extends AbstractAIFDialog {
if (target instanceof TCComponentItemRevision) {
try {
+ rev = (TCComponentItemRevision) target;
+ boolean isAccess = session.getTCAccessControlService().checkPrivilege(rev, "WRITE");
+ if (!isAccess) {
+ JOptionPane.showMessageDialog(this, "ûа汾ȨޣϵϵͳԱ", "ʾ", JOptionPane.WARNING_MESSAGE);
+ return;
+ }
initUI();
} catch (Exception e) {
// TODO Auto-generated catch block
@@ -89,13 +95,12 @@ public class EditClassificationDialog extends AbstractAIFDialog {
Map displayMap = new LinkedHashMap();
propMap = new HashMap();
- TCComponentItemRevision rev = (TCComponentItemRevision) target;
try {
- if (rev.getClassificationClass() != null || !"".equals(rev.getClassificationClass())) {
+ if (rev.getClassificationClass() != null && !"".equals(rev.getClassificationClass())) {
try {
+ rev.refresh();
TCComponentICO ico = rev.getClassificationObjects()[0];
-
ICSProperty[] props = ico.getICSProperties(true);
ICSPropertyDescription[] desc = ico.getICSPropertyDescriptors();
for (int i = 0; i < props.length; i++) {
@@ -156,10 +161,11 @@ public class EditClassificationDialog extends AbstractAIFDialog {
for (String s : items) {
combo.addItem(s);
}
- combo.setSelectedItem(entry.getValue().getValue());
- if (combo.getSelectedItem() == null || combo.getSelectedIndex() < 0) {
- combo.addItem(entry.getValue().getValue());
- combo.setSelectedItem(entry.getValue().getValue());
+ String v = entry.getValue().getValue();
+ combo.setSelectedItem(v);
+ if (!Arrays.asList(items).contains(v)) {
+ combo.addItem(v);
+ combo.setSelectedItem(v);
}
combo.setBounds(130, num * 35 + 10, 150, 25);
propMap.put(entry.getValue().getName(), combo);
@@ -185,6 +191,7 @@ public class EditClassificationDialog extends AbstractAIFDialog {
cancelBtn.addActionListener(cancel());
JScrollPane jsp = new JScrollPane(content);
+ jsp.getVerticalScrollBar().setUnitIncrement(16);
jsp.setBounds(0, 0, 300, 300);
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
rootPanel.add(jsp);
@@ -241,13 +248,14 @@ public class EditClassificationDialog extends AbstractAIFDialog {
private boolean saveClassification(TCComponentItemRevision rev) {
try {
- boolean isAccess = session.getTCAccessControlService().checkPrivilege(rev, "WRITE");
- List released = Arrays.asList(rev.getItem().getReleasedItemRevisions());
- if (!isAccess || !released.contains(rev)) {
-// JOptionPane.showMessageDialog(this, "ǰûûȨߵǰδ", "ʾ", JOptionPane.WARNING_MESSAGE);
- return false;
+ TCComponentForm form = (TCComponentForm) rev.getRelatedComponents("IMAN_master_form_rev")[0];
+ TCComponent[] status = form.getRelatedComponents("release_status_list");
+ for (TCComponent comp : status) {
+ if (comp.getProperty("object_name").contains("ʽ")) {
+ JOptionPane.showMessageDialog(this, "汾ʽķ", "ʾ", JOptionPane.WARNING_MESSAGE);
+ return false;
+ }
}
-
TCComponentICO[] icoS = rev.getClassificationObjects();
String classID = rev.getClassificationClass();
if (icoS == null || icoS.length == 0) {
@@ -297,7 +305,8 @@ public class EditClassificationDialog extends AbstractAIFDialog {
@Override
public void run() {
// TODO Auto-generated method stub
- cn.hutool.http.HttpUtil.post(URL, PARAMMAP);
+ String res = cn.hutool.http.HttpUtil.post(URL, PARAMMAP);
+ System.out.println("uid===>" + uid + " res===>" + res);
finish();
}
}).start();
@@ -305,6 +314,7 @@ public class EditClassificationDialog extends AbstractAIFDialog {
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
+ JOptionPane.showMessageDialog(null, e1, "", JOptionPane.ERROR_MESSAGE);
}
return true;
}
@@ -330,7 +340,9 @@ public class EditClassificationDialog extends AbstractAIFDialog {
}
}
}
- String temp = builder.toString().substring(0, builder.toString().length() - 1);
+ String temp = builder.length() > 0
+ ? builder.toString().substring(0, builder.toString().length() - 1)
+ : "";
System.out.println("class porp values=====>" + temp);
// session.getUserService().call("bs_bypass", new Object[] { true });
rev.lock();
@@ -348,6 +360,7 @@ public class EditClassificationDialog extends AbstractAIFDialog {
JOptionPane.WARNING_MESSAGE);
return;
}
+ JOptionPane.showMessageDialog(null, "ķɹ", "ʾ", JOptionPane.WARNING_MESSAGE);
System.out.println("success");
}
@@ -359,5 +372,4 @@ public class EditClassificationDialog extends AbstractAIFDialog {
}
return clazz.getName() + "=>" + getClassificationAddress(clazz.getParent());
}
-
}
diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/BOMManagementFrame.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/BOMManagementFrame.java
index 5233696..c5b1bf3 100644
--- a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/BOMManagementFrame.java
+++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/BOMManagementFrame.java
@@ -3,11 +3,16 @@ package com.connor.jd.plm.dialogs;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
+import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyAdapter;
@@ -23,14 +28,17 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
@@ -63,6 +71,7 @@ import com.connor.jd.plm.utils.DatePickerUtil;
import com.connor.jd.plm.utils.DialogUtil;
import com.connor.jd.plm.utils.JDMethodUtil;
import com.connor.jd.plm.utils.KeyValComboBox;
+import com.connor.jd.plm.utils.SimpleExcelUtil;
import com.connor.jd.plm.utils.StringCreateUtil;
import com.eltima.components.ui.DatePicker;
import com.teamcenter.rac.aif.AbstractAIFApplication;
@@ -76,6 +85,7 @@ import com.teamcenter.rac.kernel.TCComponentItemRevision;
import com.teamcenter.rac.kernel.TCException;
import com.teamcenter.rac.kernel.TCSession;
import com.teamcenter.rac.kernel.TCTypeService;
+import com.teamcenter.rac.workflow.commands.newprocess.NewProcessCommand;
import cn.hutool.core.util.StrUtil;
import cn.hutool.db.Db;
@@ -89,7 +99,6 @@ public class BOMManagementFrame extends JFrame {
private String[] colDisplayNames = new String[] { "ѡ", "", "Ӽ", "λ", "", "״̬" };
private String[] colDisplayNames2 = new String[] { "", "û", "ʱ", "" };
private JPanel root;
- private Map uiMap = new HashMap();
private Map tableDataMap = new HashMap();
private BOMManagementFrame $this;
private List logDataList;
@@ -100,23 +109,111 @@ public class BOMManagementFrame extends JFrame {
private int doIndex = 0;
private boolean complate = false;
private List checkItemType = new ArrayList();
+ private JButton[] topBtns;
+ private TCComponentBOMWindowType winType;
+ private int width = 1200;
+ private int height = 800;
+ private int widthOffset = 0;
+ private int heightOffset = 0;
+ private JLabel p1TargetLabel;
+ private JButton p1TargetBtn;
+ private JLabel p1ReplaceLabel;
+ private JButton p1ReplaceBtn;
+ private JLabel p1UnitLabel;
+ private KeyValComboBox p1UnitCombo;
+ private JLabel p1NumLabel;
+ private JTextField p1NumText;
+ private JCheckBox p1SelectAll;
+ private JTable p1Table;
+ private JScrollPane p1jsp;
+ private JButton p1BottomBtn1;
+ private JButton p1BottomBtn2;
+ private JButton p1BottomBtn3;
+ private JButton p1BottomBtn4;
+ private JPanel p1Left;
+ private JScrollPane p1TreePanel;
+ private JPanel p1Right;
+ private JLabel p2TargetLabel;
+ private JButton p2TargetBtn;
+ private JLabel p2ChangeNumLabel;
+ private JTextField p2NumText;
+ private JCheckBox p2SelectAll;
+ private JTable p2Table;
+ private JScrollPane p2jsp;
+ private JButton p2BottomBtn1;
+ private JButton p2BottomBtn2;
+ private JButton p2BottomBtn3;
+ private JButton p2BottomBtn4;
+ private JPanel p2Left;
+ private JScrollPane p2TreePanel;
+ private JPanel p2Right;
+ private JLabel p3TargetLabel;
+ private JButton p3TargetBtn;
+ private JLabel p3AddLabel;
+ private JButton p3AddBtn;
+ private JLabel p3UnitLabel;
+ private KeyValComboBox p3UnitCombo;
+ private JLabel p3NumLabel;
+ private JTextField p3NumText;
+ private JCheckBox p3SelectAll;
+ private JTable p3Table;
+ private JScrollPane p3jsp;
+ private JButton p3BottomBtn1;
+ private JButton p3BottomBtn2;
+ private JButton p3BottomBtn3;
+ private JButton p3BottomBtn4;
+ private JPanel p3Left;
+ private JScrollPane p3TreePanel;
+ private JPanel p3Right;
+ private JLabel p4TargetLabel;
+ private JButton p4TargetBtn;
+ private JCheckBox p4SelectAll;
+ private JTable p4Table;
+ private JScrollPane p4jsp;
+ private JButton p4BottomBtn1;
+ private JButton p4BottomBtn2;
+ private JButton p4BottomBtn3;
+ private JButton p4BottomBtn4;
+ private JPanel p4Left;
+ private JScrollPane p4TreePanel;
+ private JPanel p4Right;
+ private JLabel p5UserLabel;
+ private JTextField p5UserText;
+ private JLabel p5TimeLabel;
+ private DatePicker p5TimeStartText;
+ private JLabel toLabel;
+ private DatePicker p5TimeEndText;
+ private JLabel p5ContentLabel;
+ private JTextArea p5ContentText;
+ private JScrollPane p5Contentjsp;
+ private JButton p5Search;
+ private JComboBox p5Download;
+ private JTable p5Table;
+ private JScrollPane p5jsp;
+ private Map uiSize = new HashMap<>();
+ private JPanel p1;
+ private JPanel p2;
+ private JPanel p3;
+ private JPanel p4;
+ private JPanel p5;
+ private Set addedBOMLine = new HashSet<>();
public BOMManagementFrame(AbstractAIFApplication app) {
super();
this.app = app;
this.session = (TCSession) app.getSession();
- TCComponent target = (TCComponent) AIFUtility.getCurrentApplication().getTargetComponent();
- try {
- target.setProperty("object_string", "test");
- } catch (TCException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
$this = this;
String[] prefArray = JDMethodUtil.getPrefStrArray("connor_bom_check_type", session);
if (prefArray != null) {
checkItemType = Arrays.asList(prefArray);
}
+ TCTypeService service = session.getTypeService();
+ try {
+ this.winType = (TCComponentBOMWindowType) service.getTypeComponent("BOMWindow");
+ } catch (TCException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
init();
}
@@ -124,14 +221,45 @@ public class BOMManagementFrame extends JFrame {
this.setTitle("BOM");
this.setSize(new Dimension(1200, 800));
this.setLayout(new BorderLayout());
- this.setResizable(false);
+ this.setResizable(true);
this.setAlwaysOnTop(true);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setLocationRelativeTo(null);
+ this.addComponentListener(new ComponentAdapter() {
+ @Override
+ public void componentResized(ComponentEvent e) {
+ // TODO Auto-generated method stub
+ super.componentResized(e);
+ Component comp = e.getComponent();
+ $this.widthOffset = comp.getWidth() - $this.width;
+ $this.heightOffset = comp.getHeight() - $this.height;
+ if ($this.widthOffset != 0 || $this.heightOffset != 0) {
+ System.out.println("width===>" + comp.getWidth());
+ System.out.println("height===>" + comp.getHeight());
+ $this.width = comp.getWidth();
+ $this.height = comp.getHeight();
+ $this.resize();
+ }
+ }
+ });
+ this.addFocusListener(new FocusListener() {
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void focusGained(FocusEvent e) {
+ // TODO Auto-generated method stub
+ $this.setAlwaysOnTop(true);
+ }
+ });
Container container = this.getContentPane();
container.setLayout(new BorderLayout());
- container.setPreferredSize(new Dimension(1200, 800));
+ container.setSize(new Dimension(1200, 800));
TCTypeService typeService = session.getTypeService();
Vector unitVector = new Vector();
@@ -148,13 +276,14 @@ public class BOMManagementFrame extends JFrame {
}
// ͷ
JPanel topBtnPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
- JButton[] topBtns = new JButton[5];
+ topBtns = new JButton[5];
topBtns[0] = new JButton("滻");
topBtns[1] = new JButton("");
topBtns[2] = new JButton("");
topBtns[3] = new JButton("ɾ");
topBtns[4] = new JButton("־");
// topBtns[5] = new JButton("ť");
+ topBtns[0].setSelected(true);
for (JButton btn : topBtns) {
topBtnPanel.add(btn);
btn.addActionListener(panelSwitch());
@@ -165,38 +294,32 @@ public class BOMManagementFrame extends JFrame {
root = new JPanel(rootSwitch);
// 滻
- JPanel p1 = new JPanel();
+ p1 = new JPanel();
p1.setLayout(null);
// 滻
- JPanel p1Left = new JPanel();
+ p1Left = new JPanel();
p1Left.setLayout(null);
p1Left.setBounds(0, 0, 800, 800);
p1Left.setBorder(BorderFactory.createEtchedBorder());
- JLabel p1TargetLabel = new JLabel("Ŀϱ");
+ p1TargetLabel = new JLabel("Ŀϱ");
p1TargetLabel.setBounds(20, 20, 100, 25);
- JButton p1TargetBtn = new JButton();
- uiMap.put("p1TargetBtn", p1TargetBtn);
+ p1TargetBtn = new JButton();
p1TargetBtn.setBounds(130, 20, 400, 25);
- JLabel p1ReplaceLabel = new JLabel("滻ϱ");
+ p1ReplaceLabel = new JLabel("滻ϱ");
p1ReplaceLabel.setBounds(20, 60, 100, 25);
- JButton p1ReplaceBtn = new JButton();
- uiMap.put("p1ReplaceBtn", p1ReplaceBtn);
+ p1ReplaceBtn = new JButton();
p1ReplaceBtn.setBounds(130, 60, 400, 25);
- JLabel p1UnitLabel = new JLabel("λ");
+ p1UnitLabel = new JLabel("λ");
p1UnitLabel.setBounds(560, 60, 50, 25);
- KeyValComboBox p1UnitCombo = new KeyValComboBox(unitVector);
- uiMap.put("p1UnitCombo", p1UnitCombo);
+ p1UnitCombo = new KeyValComboBox(unitVector);
p1UnitCombo.setBounds(610, 60, 50, 25);
- JLabel p1NumLabel = new JLabel("");
+ p1NumLabel = new JLabel("");
p1NumLabel.setBounds(680, 60, 50, 25);
- JTextField p1NumText = new JTextField();
- uiMap.put("p1NumText", p1NumText);
+ p1NumText = new JTextField();
p1NumText.setBounds(730, 60, 50, 25);
-
- JCheckBox p1SelectAll = new JCheckBox("ȫѡ");
- uiMap.put("p1SelectAll", p1SelectAll);
+ p1SelectAll = new JCheckBox("ȫѡ");
p1SelectAll.setBounds(20, 100, 100, 25);
DefaultTableModel p1model = new DefaultTableModel(colDisplayNames, 0) {
@Override
@@ -216,8 +339,7 @@ public class BOMManagementFrame extends JFrame {
return super.getColumnClass(paramInt);
}
};
- JTable p1Table = new JTable(p1model);
- uiMap.put("p1Table", p1Table);
+ p1Table = new JTable(p1model);
p1Table.getColumnModel().getColumn(0).setMinWidth(60);
p1Table.getColumnModel().getColumn(0).setMaxWidth(60);
p1Table.getColumnModel().getColumn(1).setMinWidth(200);
@@ -231,17 +353,20 @@ public class BOMManagementFrame extends JFrame {
p1Table.setAutoscrolls(true);
p1Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
p1Table.getTableHeader().setReorderingAllowed(false);
+ p1Table.putClientProperty("terminateEditOnFocusLost", true);
RowSorter p1sorter = new TableRowSorter(p1model);
p1Table.setRowSorter(p1sorter);
- JScrollPane p1jsp = new JScrollPane(p1Table);
+ p1jsp = new JScrollPane(p1Table);
p1jsp.setBounds(20, 130, 760, 500);
- JButton p1BottomBtn1 = new JButton("");
- p1BottomBtn1.setBounds(100, 650, 100, 25);
- JButton p1BottomBtn2 = new JButton("滻");
- p1BottomBtn2.setBounds(300, 650, 100, 25);
- JButton p1BottomBtn3 = new JButton("ȡ");
- p1BottomBtn3.setBounds(500, 650, 100, 25);
+ p1BottomBtn1 = new JButton("");
+ p1BottomBtn1.setBounds(80, 650, 100, 25);
+ p1BottomBtn2 = new JButton("滻");
+ p1BottomBtn2.setBounds(260, 650, 100, 25);
+ p1BottomBtn3 = new JButton("");
+ p1BottomBtn3.setBounds(440, 650, 100, 25);
+ p1BottomBtn4 = new JButton("ȡ");
+ p1BottomBtn4.setBounds(620, 650, 100, 25);
p1Left.add(p1TargetLabel);
p1Left.add(p1TargetBtn);
@@ -256,25 +381,25 @@ public class BOMManagementFrame extends JFrame {
p1Left.add(p1BottomBtn1);
p1Left.add(p1BottomBtn2);
p1Left.add(p1BottomBtn3);
+ p1Left.add(p1BottomBtn4);
// 滻ұ
- JPanel p1Right = new JPanel();
- uiMap.put("p1Right", p1Right);
+ p1Right = new JPanel();
p1Right.setLayout(null);
p1Right.setBounds(800, 0, 400, 800);
p1Right.setBorder(BorderFactory.createEtchedBorder());
- JScrollPane p1TreePanel = new JScrollPane();
- uiMap.put("p1TreePanel", p1TreePanel);
+ p1TreePanel = new JScrollPane();
p1TreePanel.setBounds(20, 130, 360, 500);
p1Right.add(p1TreePanel);
// ¼
p1SelectAll.addItemListener(selectAll(p1Table));
p1Table.addMouseListener(showTree(p1Right));
- p1BottomBtn3.addActionListener(cancel());
+ p1BottomBtn4.addActionListener(cancel());
p1BottomBtn1.addActionListener(batchRevise(p1Table, p1SelectAll));
p1BottomBtn2.addActionListener(batchReplace());
+ p1BottomBtn3.addActionListener(startWorkFlow(p1Table));
p1TargetBtn.addActionListener(clickSearch(p1Table, p1SelectAll));
p1ReplaceBtn.addActionListener(clickSearch(null, null));
@@ -282,28 +407,25 @@ public class BOMManagementFrame extends JFrame {
p1.add(p1Right);
//
- JPanel p2 = new JPanel();
+ p2 = new JPanel();
p2.setLayout(null);
//
- JPanel p2Left = new JPanel();
+ p2Left = new JPanel();
p2Left.setLayout(null);
p2Left.setBounds(0, 0, 800, 800);
p2Left.setBorder(BorderFactory.createEtchedBorder());
- JLabel p2TargetLabel = new JLabel("Ŀϱ");
+ p2TargetLabel = new JLabel("Ŀϱ");
p2TargetLabel.setBounds(20, 20, 100, 25);
- JButton p2TargetBtn = new JButton();
- uiMap.put("p2TargetBtn", p2TargetBtn);
+ p2TargetBtn = new JButton();
p2TargetBtn.setBounds(130, 20, 400, 25);
- JLabel p2ChangeNumLabel = new JLabel("");
+ p2ChangeNumLabel = new JLabel("");
p2ChangeNumLabel.setBounds(20, 60, 100, 25);
- JTextField p2NumText = new JTextField();
- uiMap.put("p2NumText", p2NumText);
+ p2NumText = new JTextField();
p2NumText.setBounds(130, 60, 50, 25);
- JCheckBox p2SelectAll = new JCheckBox("ȫѡ");
- uiMap.put("p2SelectAll", p2SelectAll);
+ p2SelectAll = new JCheckBox("ȫѡ");
p2SelectAll.setBounds(20, 100, 100, 25);
DefaultTableModel p2model = new DefaultTableModel(colDisplayNames, 0) {
@Override
@@ -323,8 +445,7 @@ public class BOMManagementFrame extends JFrame {
return super.getColumnClass(paramInt);
}
};
- JTable p2Table = new JTable(p2model);
- uiMap.put("p2Table", p2Table);
+ p2Table = new JTable(p2model);
p2Table.getColumnModel().getColumn(0).setMinWidth(60);
p2Table.getColumnModel().getColumn(0).setMaxWidth(60);
p2Table.getColumnModel().getColumn(1).setMinWidth(200);
@@ -338,17 +459,20 @@ public class BOMManagementFrame extends JFrame {
p2Table.setAutoscrolls(true);
p2Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
p2Table.getTableHeader().setReorderingAllowed(false);
+ p2Table.putClientProperty("terminateEditOnFocusLost", true);
RowSorter p2sorter = new TableRowSorter(p2model);
p2Table.setRowSorter(p2sorter);
- JScrollPane p2jsp = new JScrollPane(p2Table);
+ p2jsp = new JScrollPane(p2Table);
p2jsp.setBounds(20, 130, 760, 500);
- JButton p2BottomBtn1 = new JButton("");
- p2BottomBtn1.setBounds(100, 650, 100, 25);
- JButton p2BottomBtn2 = new JButton("");
- p2BottomBtn2.setBounds(300, 650, 100, 25);
- JButton p2BottomBtn3 = new JButton("ȡ");
- p2BottomBtn3.setBounds(500, 650, 100, 25);
+ p2BottomBtn1 = new JButton("");
+ p2BottomBtn1.setBounds(80, 650, 100, 25);
+ p2BottomBtn2 = new JButton("");
+ p2BottomBtn2.setBounds(260, 650, 100, 25);
+ p2BottomBtn3 = new JButton("");
+ p2BottomBtn3.setBounds(440, 650, 100, 25);
+ p2BottomBtn4 = new JButton("ȡ");
+ p2BottomBtn4.setBounds(620, 650, 100, 25);
p2Left.add(p2TargetLabel);
p2Left.add(p2TargetBtn);
@@ -359,63 +483,58 @@ public class BOMManagementFrame extends JFrame {
p2Left.add(p2BottomBtn1);
p2Left.add(p2BottomBtn2);
p2Left.add(p2BottomBtn3);
+ p2Left.add(p2BottomBtn4);
// ұ
- JPanel p2Right = new JPanel();
- uiMap.put("p2Right", p2Right);
+ p2Right = new JPanel();
p2Right.setLayout(null);
p2Right.setBounds(800, 0, 400, 800);
p2Right.setBorder(BorderFactory.createEtchedBorder());
- JScrollPane p2TreePanel = new JScrollPane();
- uiMap.put("p2TreePanel", p2TreePanel);
+ p2TreePanel = new JScrollPane();
p2TreePanel.setBounds(20, 130, 360, 500);
p2Right.add(p2TreePanel);
// ¼
p2SelectAll.addItemListener(selectAll(p2Table));
p2Table.addMouseListener(showTree(p2Right));
- p2BottomBtn3.addActionListener(cancel());
+ p2BottomBtn4.addActionListener(cancel());
p2BottomBtn1.addActionListener(batchRevise(p2Table, p2SelectAll));
p2BottomBtn2.addActionListener(batchModify());
+ p2BottomBtn3.addActionListener(startWorkFlow(p2Table));
p2TargetBtn.addActionListener(clickSearch(p2Table, p2SelectAll));
p2.add(p2Left);
p2.add(p2Right);
//
- JPanel p3 = new JPanel();
+ p3 = new JPanel();
p3.setLayout(null);
//
- JPanel p3Left = new JPanel();
+ p3Left = new JPanel();
p3Left.setLayout(null);
p3Left.setBounds(0, 0, 800, 800);
p3Left.setBorder(BorderFactory.createEtchedBorder());
- JLabel p3TargetLabel = new JLabel("οϱ");
+ p3TargetLabel = new JLabel("οϱ");
p3TargetLabel.setBounds(20, 20, 100, 25);
- JButton p3TargetBtn = new JButton();
- uiMap.put("p3TargetBtn", p3TargetBtn);
+ p3TargetBtn = new JButton();
p3TargetBtn.setBounds(130, 20, 400, 25);
- JLabel p3ReplaceLabel = new JLabel("ϱ");
- p3ReplaceLabel.setBounds(20, 60, 100, 25);
- JButton p3AddBtn = new JButton();
- uiMap.put("p3AddBtn", p3AddBtn);
+ p3AddLabel = new JLabel("ϱ");
+ p3AddLabel.setBounds(20, 60, 100, 25);
+ p3AddBtn = new JButton();
p3AddBtn.setBounds(130, 60, 400, 25);
- JLabel p3UnitLabel = new JLabel("λ");
+ p3UnitLabel = new JLabel("λ");
p3UnitLabel.setBounds(560, 60, 50, 25);
- KeyValComboBox p3UnitCombo = new KeyValComboBox(unitVector);
- uiMap.put("p3UnitCombo", p3UnitCombo);
+ p3UnitCombo = new KeyValComboBox(unitVector);
p3UnitCombo.setBounds(610, 60, 50, 25);
- JLabel p3NumLabel = new JLabel("");
+ p3NumLabel = new JLabel("");
p3NumLabel.setBounds(680, 60, 50, 25);
- JTextField p3NumText = new JTextField();
- uiMap.put("p3NumText", p3NumText);
+ p3NumText = new JTextField();
p3NumText.setBounds(730, 60, 50, 25);
- JCheckBox p3SelectAll = new JCheckBox("ȫѡ");
- uiMap.put("p3SelectAll", p3SelectAll);
+ p3SelectAll = new JCheckBox("ȫѡ");
p3SelectAll.setBounds(20, 100, 100, 25);
DefaultTableModel p3model = new DefaultTableModel(colDisplayNames, 0) {
@Override
@@ -435,8 +554,7 @@ public class BOMManagementFrame extends JFrame {
return super.getColumnClass(paramInt);
}
};
- JTable p3Table = new JTable(p3model);
- uiMap.put("p3Table", p3Table);
+ p3Table = new JTable(p3model);
p3Table.getColumnModel().getColumn(0).setMinWidth(60);
p3Table.getColumnModel().getColumn(0).setMaxWidth(60);
p3Table.getColumnModel().getColumn(1).setMinWidth(200);
@@ -450,21 +568,24 @@ public class BOMManagementFrame extends JFrame {
p3Table.setAutoscrolls(true);
p3Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
p3Table.getTableHeader().setReorderingAllowed(false);
+ p3Table.putClientProperty("terminateEditOnFocusLost", true);
RowSorter p3sorter = new TableRowSorter(p3model);
p3Table.setRowSorter(p3sorter);
- JScrollPane p3jsp = new JScrollPane(p3Table);
+ p3jsp = new JScrollPane(p3Table);
p3jsp.setBounds(20, 130, 760, 500);
- JButton p3BottomBtn1 = new JButton("");
- p3BottomBtn1.setBounds(100, 650, 100, 25);
- JButton p3BottomBtn2 = new JButton("");
- p3BottomBtn2.setBounds(300, 650, 100, 25);
- JButton p3BottomBtn3 = new JButton("ȡ");
- p3BottomBtn3.setBounds(500, 650, 100, 25);
+ p3BottomBtn1 = new JButton("");
+ p3BottomBtn1.setBounds(80, 650, 100, 25);
+ p3BottomBtn2 = new JButton("");
+ p3BottomBtn2.setBounds(260, 650, 100, 25);
+ p3BottomBtn3 = new JButton("");
+ p3BottomBtn3.setBounds(440, 650, 100, 25);
+ p3BottomBtn4 = new JButton("ȡ");
+ p3BottomBtn4.setBounds(620, 650, 100, 25);
p3Left.add(p3TargetLabel);
p3Left.add(p3TargetBtn);
- p3Left.add(p3ReplaceLabel);
+ p3Left.add(p3AddLabel);
p3Left.add(p3AddBtn);
p3Left.add(p3UnitLabel);
p3Left.add(p3UnitCombo);
@@ -475,25 +596,25 @@ public class BOMManagementFrame extends JFrame {
p3Left.add(p3BottomBtn1);
p3Left.add(p3BottomBtn2);
p3Left.add(p3BottomBtn3);
+ p3Left.add(p3BottomBtn4);
// ұ
- JPanel p3Right = new JPanel();
- uiMap.put("p3Right", p3Right);
+ p3Right = new JPanel();
p3Right.setLayout(null);
p3Right.setBounds(800, 0, 400, 800);
p3Right.setBorder(BorderFactory.createEtchedBorder());
- JScrollPane p3TreePanel = new JScrollPane();
- uiMap.put("p3TreePanel", p3TreePanel);
+ p3TreePanel = new JScrollPane();
p3TreePanel.setBounds(20, 130, 360, 500);
p3Right.add(p3TreePanel);
// ¼
p3SelectAll.addItemListener(selectAll(p3Table));
p3Table.addMouseListener(showTree(p3Right));
- p3BottomBtn3.addActionListener(cancel());
+ p3BottomBtn4.addActionListener(cancel());
p3BottomBtn1.addActionListener(batchRevise(p3Table, p3SelectAll));
p3BottomBtn2.addActionListener(batchAdd());
+ p3BottomBtn3.addActionListener(startWorkFlow(p3Table));
p3TargetBtn.addActionListener(clickSearch(p3Table, p3SelectAll));
p3AddBtn.addActionListener(clickSearch(null, null));
@@ -501,23 +622,21 @@ public class BOMManagementFrame extends JFrame {
p3.add(p3Right);
// ɾ
- JPanel p4 = new JPanel();
+ p4 = new JPanel();
p4.setLayout(null);
// ɾ
- JPanel p4Left = new JPanel();
+ p4Left = new JPanel();
p4Left.setLayout(null);
p4Left.setBounds(0, 0, 800, 800);
p4Left.setBorder(BorderFactory.createEtchedBorder());
- JLabel p4TargetLabel = new JLabel("Ŀϱ");
+ p4TargetLabel = new JLabel("Ŀϱ");
p4TargetLabel.setBounds(20, 20, 100, 25);
- JButton p4TargetBtn = new JButton();
- uiMap.put("p4TargetBtn", p4TargetBtn);
+ p4TargetBtn = new JButton();
p4TargetBtn.setBounds(130, 20, 400, 25);
- JCheckBox p4SelectAll = new JCheckBox("ȫѡ");
- uiMap.put("p4SelectAll", p4SelectAll);
+ p4SelectAll = new JCheckBox("ȫѡ");
p4SelectAll.setBounds(20, 100, 100, 25);
DefaultTableModel p4model = new DefaultTableModel(colDisplayNames, 0) {
@Override
@@ -537,8 +656,7 @@ public class BOMManagementFrame extends JFrame {
return super.getColumnClass(paramInt);
}
};
- JTable p4Table = new JTable(p4model);
- uiMap.put("p4Table", p4Table);
+ p4Table = new JTable(p4model);
p4Table.getColumnModel().getColumn(0).setMinWidth(60);
p4Table.getColumnModel().getColumn(0).setMaxWidth(60);
p4Table.getColumnModel().getColumn(1).setMinWidth(200);
@@ -552,17 +670,20 @@ public class BOMManagementFrame extends JFrame {
p4Table.setAutoscrolls(true);
p4Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
p4Table.getTableHeader().setReorderingAllowed(false);
+ p4Table.putClientProperty("terminateEditOnFocusLost", true);
RowSorter p4sorter = new TableRowSorter(p4model);
p4Table.setRowSorter(p4sorter);
- JScrollPane p4jsp = new JScrollPane(p4Table);
+ p4jsp = new JScrollPane(p4Table);
p4jsp.setBounds(20, 130, 760, 500);
- JButton p4BottomBtn1 = new JButton("");
- p4BottomBtn1.setBounds(100, 650, 100, 25);
- JButton p4BottomBtn2 = new JButton("ɾ");
- p4BottomBtn2.setBounds(300, 650, 100, 25);
- JButton p4BottomBtn3 = new JButton("ȡ");
- p4BottomBtn3.setBounds(500, 650, 100, 25);
+ p4BottomBtn1 = new JButton("");
+ p4BottomBtn1.setBounds(80, 650, 100, 25);
+ p4BottomBtn2 = new JButton("ɾ");
+ p4BottomBtn2.setBounds(260, 650, 100, 25);
+ p4BottomBtn3 = new JButton("");
+ p4BottomBtn3.setBounds(440, 650, 100, 25);
+ p4BottomBtn4 = new JButton("ȡ");
+ p4BottomBtn4.setBounds(620, 650, 100, 25);
p4Left.add(p4TargetLabel);
p4Left.add(p4TargetBtn);
@@ -571,62 +692,60 @@ public class BOMManagementFrame extends JFrame {
p4Left.add(p4BottomBtn1);
p4Left.add(p4BottomBtn2);
p4Left.add(p4BottomBtn3);
+ p4Left.add(p4BottomBtn4);
// ұ
- JPanel p4Right = new JPanel();
- uiMap.put("p4Right", p4Right);
+ p4Right = new JPanel();
p4Right.setLayout(null);
p4Right.setBounds(800, 0, 400, 800);
p4Right.setBorder(BorderFactory.createEtchedBorder());
- JScrollPane p4TreePanel = new JScrollPane();
- uiMap.put("p4TreePanel", p4TreePanel);
+ p4TreePanel = new JScrollPane();
p4TreePanel.setBounds(20, 130, 360, 500);
p4Right.add(p4TreePanel);
// ¼
p4SelectAll.addItemListener(selectAll(p4Table));
p4Table.addMouseListener(showTree(p4Right));
- p4BottomBtn3.addActionListener(cancel());
+ p4BottomBtn4.addActionListener(cancel());
p4BottomBtn1.addActionListener(batchRevise(p4Table, p4SelectAll));
p4BottomBtn2.addActionListener(batchRemove());
+ p4BottomBtn3.addActionListener(startWorkFlow(p4Table));
p4TargetBtn.addActionListener(clickSearch(p4Table, p4SelectAll));
p4.add(p4Left);
p4.add(p4Right);
// ־
- JPanel p5 = new JPanel();
+ p5 = new JPanel();
p5.setLayout(null);
- JLabel p5UserLabel = new JLabel("û");
+ p5UserLabel = new JLabel("û");
p5UserLabel.setBounds(20, 40, 70, 25);
- JTextField p5UserText = new JTextField();
- uiMap.put("p5UserText", p5UserText);
+ p5UserText = new JTextField();
p5UserText.setBounds(100, 40, 150, 25);
- JLabel p5timeLabel = new JLabel("ʱ");
- p5timeLabel.setBounds(300, 40, 70, 25);
- DatePicker p5timeStartText = DatePickerUtil.getDatePicker(null);
- uiMap.put("p5timeStartText", p5timeStartText);
- p5timeStartText.setBounds(380, 40, 100, 25);
- JLabel toLabel = new JLabel("");
+ p5TimeLabel = new JLabel("ʱ");
+ p5TimeLabel.setBounds(300, 40, 70, 25);
+ p5TimeStartText = DatePickerUtil.getDatePicker(null);
+ p5TimeStartText.setBounds(380, 40, 100, 25);
+ toLabel = new JLabel("");
toLabel.setBounds(490, 40, 20, 25);
- DatePicker p5timeEndText = DatePickerUtil.getDatePicker(null);
- uiMap.put("p5timeEndText", p5timeEndText);
- p5timeEndText.setBounds(520, 40, 100, 25);
- JLabel p5ContentLabel = new JLabel("");
+ p5TimeEndText = DatePickerUtil.getDatePicker(null);
+ p5TimeEndText.setBounds(520, 40, 100, 25);
+ p5ContentLabel = new JLabel("");
p5ContentLabel.setBounds(670, 40, 70, 25);
- JTextArea p5ContentText = new JTextArea();
- uiMap.put("p5ContentText", p5ContentText);
+ p5ContentText = new JTextArea();
p5ContentText.setLineWrap(true);
p5ContentText.setWrapStyleWord(true);
- JScrollPane p5Contentjsp = new JScrollPane(p5ContentText);
+ p5Contentjsp = new JScrollPane(p5ContentText);
p5Contentjsp.setBounds(750, 20, 200, 80);
- JButton p5Search = new JButton("");
- uiMap.put("p5Search", p5Search);
+ p5Search = new JButton("");
p5Search.setBounds(1000, 40, 60, 25);
- JButton p5Download = new JButton("־");
- uiMap.put("p5Download", p5Download);
+ p5Download = new JComboBox();
+ p5Download.addItem("־");
+ p5Download.addItem("Ϊtxt");
+ p5Download.addItem("Ϊexcel");
+ p5Download.setSelectedItem("־");
p5Download.setBounds(1080, 40, 100, 25);
DefaultTableModel p5model = new DefaultTableModel(colDisplayNames2, 0) {
@@ -644,8 +763,7 @@ public class BOMManagementFrame extends JFrame {
return super.getColumnClass(paramInt);
}
};
- JTable p5Table = new JTable(p5model);
- uiMap.put("p5Table", p5Table);
+ p5Table = new JTable(p5model);
p5Table.getColumnModel().getColumn(0).setMinWidth(60);
p5Table.getColumnModel().getColumn(0).setMaxWidth(60);
p5Table.getColumnModel().getColumn(1).setMinWidth(200);
@@ -657,22 +775,22 @@ public class BOMManagementFrame extends JFrame {
p5Table.getTableHeader().setReorderingAllowed(false);
RowSorter p5sorter = new TableRowSorter(p5model);
p5Table.setRowSorter(p5sorter);
- JScrollPane p5jsp = new JScrollPane(p5Table);
- p5jsp.setBounds(20, 130, 1160, 600);
+ p5jsp = new JScrollPane(p5Table);
+ p5jsp.setBounds(20, 130, 1160, 580);
// ¼
p5Search.addActionListener(searchLog());
- p5Download.addActionListener(downloadLog(p5Table));
+ p5Download.addItemListener(downloadLog(p5Table));
p5UserText.addKeyListener(logSearchEnter());
- p5timeStartText.addKeyListener(logSearchEnter());
- p5timeEndText.addKeyListener(logSearchEnter());
+ p5TimeStartText.addKeyListener(logSearchEnter());
+ p5TimeEndText.addKeyListener(logSearchEnter());
p5.add(p5UserLabel);
p5.add(p5UserText);
- p5.add(p5timeLabel);
- p5.add(p5timeStartText);
+ p5.add(p5TimeLabel);
+ p5.add(p5TimeStartText);
p5.add(toLabel);
- p5.add(p5timeEndText);
+ p5.add(p5TimeEndText);
p5.add(p5ContentLabel);
p5.add(p5Contentjsp);
p5.add(p5Search);
@@ -697,30 +815,61 @@ public class BOMManagementFrame extends JFrame {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String text = ((JButton) e.getSource()).getText();
+ for (int i = 0; i < topBtns.length; i++) {
+ topBtns[i].setSelected(topBtns[i].getText().equals(text));
+ }
switch (text) {
case "滻":
- clearTable((JTable) uiMap.get("p1Table"), (JCheckBox) uiMap.get("p1SelectAll"));
- ((JScrollPane) uiMap.get("p1TreePanel")).removeAll();
+ clearTable(p1Table, p1SelectAll);
+ p1Right.removeAll();
+ JScrollPane panel1 = new JScrollPane();
+ panel1.setBounds(p1TreePanel.getX(), p1TreePanel.getY(), p1TreePanel.getWidth(),
+ p1TreePanel.getHeight());
+ p1TreePanel = panel1;
+ p1Right.add(panel1);
+ p1Right.revalidate();
+ p1Right.repaint();
rootSwitch.show(root, "batchReplace");
break;
case "":
- clearTable((JTable) uiMap.get("p2Table"), (JCheckBox) uiMap.get("p2SelectAll"));
- ((JScrollPane) uiMap.get("p2TreePanel")).removeAll();
+ clearTable(p2Table, p2SelectAll);
+ p2Right.removeAll();
+ JScrollPane panel2 = new JScrollPane();
+ panel2.setBounds(p2TreePanel.getX(), p2TreePanel.getY(), p2TreePanel.getWidth(),
+ p2TreePanel.getHeight());
+ p2TreePanel = panel2;
+ p2Right.add(panel2);
+ p2Right.revalidate();
+ p2Right.repaint();
rootSwitch.show(root, "batchModify");
break;
case "":
- clearTable((JTable) uiMap.get("p3Table"), (JCheckBox) uiMap.get("p3SelectAll"));
- ((JScrollPane) uiMap.get("p3TreePanel")).removeAll();
+ clearTable(p3Table, p3SelectAll);
+ p3Right.removeAll();
+ JScrollPane panel3 = new JScrollPane();
+ panel3.setBounds(p3TreePanel.getX(), p3TreePanel.getY(), p3TreePanel.getWidth(),
+ p3TreePanel.getHeight());
+ p3TreePanel = panel3;
+ p3Right.add(panel3);
+ p3Right.revalidate();
+ p3Right.repaint();
rootSwitch.show(root, "batchAdd");
break;
case "ɾ":
- clearTable((JTable) uiMap.get("p4Table"), (JCheckBox) uiMap.get("p4SelectAll"));
- ((JScrollPane) uiMap.get("p4TreePanel")).removeAll();
+ clearTable(p4Table, p4SelectAll);
+ p4Right.removeAll();
+ JScrollPane panel4 = new JScrollPane();
+ panel4.setBounds(p4TreePanel.getX(), p4TreePanel.getY(), p4TreePanel.getWidth(),
+ p4TreePanel.getHeight());
+ p4TreePanel = panel4;
+ p4Right.add(panel4);
+ p4Right.revalidate();
+ p4Right.repaint();
rootSwitch.show(root, "batchRemove");
break;
case "־":
createLogDataSourceTable();
- clearTable((JTable) uiMap.get("p5Table"), null);
+ clearTable(p5Table, null);
rootSwitch.show(root, "updateLog");
break;
default:
@@ -743,13 +892,12 @@ public class BOMManagementFrame extends JFrame {
String revString = targetRev.getProperty("object_string");
TCComponent[] usedComps = targetRev.whereUsed((short) 0);
System.out.println("װ======>" + usedComps.length);
- TCTypeService service = session.getTypeService();
- TCComponentBOMWindowType winType = (TCComponentBOMWindowType) service.getTypeComponent("BOMWindow");
tableDataMap.clear();
- Map usedMap = removeDuplicates(usedComps);
- for (Entry entry : usedMap.entrySet()) {
- TCComponentItemRevision parentRev = (TCComponentItemRevision) entry.getValue();
+// Map usedMap = usedFilter(usedComps);
+// for (Entry entry : usedMap.entrySet()) {
+ for (TCComponentItemRevision parentRev : usedFilter(usedComps)) {
+// TCComponentItemRevision parentRev = entry.getValue();
String parentString = parentRev.getProperty("object_string");
TCComponent[] statusArray = parentRev.getRelatedComponents("release_status_list");
String status = "";
@@ -768,10 +916,11 @@ public class BOMManagementFrame extends JFrame {
String num = child.getProperty("bl_quantity");
Object[] rowData = new Object[] { new JCheckBox(), parentString, revString, unit, num, status };
- System.out.println(Arrays.toString(rowData));
+ rowPrint(rowData);
tableDataList.add(rowData);
tableDataMap.put(parentString,
new BOMManageTableBean(parentString, revString, parentRev, targetRev, topLine, child));
+ // TODO bomһchildܻ쳣ֻӰһ
break;
}
}
@@ -782,7 +931,8 @@ public class BOMManagementFrame extends JFrame {
}
if (tableDataList == null || tableDataList.size() == 0) {
- JOptionPane.showMessageDialog($this, "ҵӦöûκװ䣬ȷϱǷȷ", "ʾ", JOptionPane.WARNING_MESSAGE);
+ JOptionPane.showMessageDialog($this, "ҵӦöûκװװöľ°汾ȷϱǷȷ", "ʾ",
+ JOptionPane.WARNING_MESSAGE);
return;
}
@@ -850,6 +1000,8 @@ public class BOMManagementFrame extends JFrame {
if (selectAll != null) {
selectAll.setSelected(false);
}
+ tableDataMap.clear();
+ addedBOMLine.clear();
try {
closeWin();
} catch (TCException e) {
@@ -922,19 +1074,6 @@ public class BOMManagementFrame extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
-
-// TCComponentTaskTemplate taskTemplate = null;
-// TCComponentProcessType processType = null;
-// try {
-// TCComponentTaskTemplateType taskTemplateType = (TCComponentTaskTemplateType) session
-// .getTypeComponent("EPMTaskTemplate");
-// taskTemplate = taskTemplateType.find("TCM Release Process", 0);
-// processType = (TCComponentProcessType) session.getTypeComponent("EPMJob");
-// } catch (TCException e2) {
-// // TODO Auto-generated catch block
-// e2.printStackTrace();
-// return;
-// }
List selectedRowList = getselectedRow(table);
if (selectedRowList.size() == 0) {
return;
@@ -943,51 +1082,60 @@ public class BOMManagementFrame extends JFrame {
return;
}
List msgData = new ArrayList();
- for (BOMManageTableBean bean : selectedRowList) {
+ for (int i = 0; i < selectedRowList.size(); i++) {
try {
- TCComponentItemRevision newRev = bean.getParentRev().saveAs(null);
-// TCComponentProcess localTCComponentProcess = (TCComponentProcess) processType.create(
-// newRev.getProperty("object_string"), "", taskTemplate, new TCComponent[] { newRev },
-// new int[] { 1 });
- msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(),
+ TCComponentItemRevision newRev = selectedRowList.get(i).getParentRev().saveAs(null);
+ String parentString = newRev.getProperty("object_string");
+ selectedRowList.get(i).setParentRev(newRev);
+ selectedRowList.get(i).setParentString(parentString);
+ msgData.add(new String[] { msgData.size() + 1 + "", selectedRowList.get(i).getParentString(),
newRev.getProperty("object_string"), "ɹ" });
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
- JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE);
- return;
+// JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE);
+ msgData.add(new String[] { msgData.size() + 1 + "", selectedRowList.get(i).getParentString(),
+ "", "ʧܣ" + e1.getMessage() });
}
}
+// showWhereUesd(table, selectAll);
+ updateSelectedRow(table, selectedRowList);
JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "", "汾(ǰ)", "汾()", "" },
msgData).panel;
JOptionPane.showMessageDialog($this, jsp, "", JOptionPane.PLAIN_MESSAGE);
- showWhereUesd(table, selectAll);
}
};
}
- private Map removeDuplicates(TCComponent[] comps) throws TCException {
- Map sameParentUsedMap = new HashMap();
+ private List usedFilter(TCComponent[] comps) throws TCException {
+// Map sameParentUsedMap = new HashMap();
+ List list = new ArrayList<>();
for (TCComponent comp : comps) {
- String itemId;
- if (sameParentUsedMap.containsKey(itemId = comp.getProperty("item_id"))) {
- if (sameParentUsedMap.get(itemId).getProperty("item_revision_id")
- .compareTo(comp.getProperty("item_revision_id")) < 0) {
- sameParentUsedMap.put(itemId, comp);
+ if (comp instanceof TCComponentItemRevision) {
+ TCComponentItemRevision rev = (TCComponentItemRevision) comp;
+// String itemId;
+// if (sameParentUsedMap.containsKey(itemId = comp.getProperty("item_id"))) {
+// if (sameParentUsedMap.get(itemId).getProperty("item_revision_id")
+// .compareTo(comp.getProperty("item_revision_id")) < 0) {
+// sameParentUsedMap.put(itemId, rev);
+// }
+// } else {
+ if (rev.getItem().getLatestItemRevision().getUid().equals(rev.getUid())) {
+ list.add(rev);
}
- } else {
- sameParentUsedMap.put(itemId, comp);
+// sameParentUsedMap.put(itemId, rev);
+// }
}
}
- return sameParentUsedMap;
+ return list;
}
private void createLogDataSourceTable() {
if (isLogcreated) {
return;
}
- String sql1 = "CREATE TABLE JD2_BOMManageLog ( id NUMBER ( 38, 0 ) primary key, modify_user VARCHAR2 ( 200 ), modify_time DATE, modify_content VARCHAR2 ( 500 ) )";
+ String sql1 = "CREATE TABLE JD2_BOMManageLog ( id NUMBER ( 38, 0 ) primary key, modify_user VARCHAR2 ( 200 ), modify_time DATE, modify_content VARCHAR2 ( 500 ))";
String sql2 = "CREATE sequence JD2_BOMManageLog_seq minvalue 1 maxvalue 99999999 INCREMENT BY 1 START WITH 1";
String sql3 = "CREATE OR REPLACE TRIGGER JD2_BOMManageLog_tri before INSERT ON JD2_BOMManageLog FOR each ROW BEGIN SELECT JD2_BOMManageLog_seq.nextval INTO : new.id FROM dual; END;";
try {
@@ -1027,10 +1175,8 @@ public class BOMManagementFrame extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
- String username = ((JTextField) uiMap.get("p5UserText")).getText().trim();
- String content = ((JTextArea) uiMap.get("p5ContentText")).getText();
- JTable table = (JTable) uiMap.get("p5Table");
- clearTable(table, null);
+ String username = p5UserText.getText().trim();
+ String content = p5ContentText.getText();
if (username == null || "".equals(username)) {
return;
}
@@ -1039,9 +1185,9 @@ public class BOMManagementFrame extends JFrame {
if (!"*".equals(username)) {
sql += "modify_user like '%" + username + "%' and";
}
- sql += " modify_time between to_date('" + ((DatePicker) uiMap.get("p5timeStartText")).getText()
- + " 00:00:00','yyyy-MM-dd hh24:mi:ss') and to_date('"
- + ((DatePicker) uiMap.get("p5timeEndText")).getText() + " 23:59:59','yyyy-MM-dd hh24:mi:ss')";
+ sql += " modify_time between to_date('" + p5TimeStartText.getText()
+ + " 00:00:00','yyyy-MM-dd hh24:mi:ss') and to_date('" + p5TimeEndText.getText()
+ + " 23:59:59','yyyy-MM-dd hh24:mi:ss')";
if (content != null && !"".equals(content)) {
sql += " and modify_content like '%" + content + "%'";
}
@@ -1050,7 +1196,7 @@ public class BOMManagementFrame extends JFrame {
try {
logDataList = Db.use(DBUtil.getDataSource(session)).query(sql);
System.out.println("log size=====>" + logDataList.size());
- DefaultTableModel model = (DefaultTableModel) table.getModel();
+ DefaultTableModel model = (DefaultTableModel) p5Table.getModel();
for (Entity entity : logDataList) {
Object[] objArr = new Object[] { entity.get("ID"), entity.get("MODIFY_USER"),
entity.get("MODIFY_TIME"), entity.get("MODIFY_CONTENT") };
@@ -1061,18 +1207,26 @@ public class BOMManagementFrame extends JFrame {
e1.printStackTrace();
return;
}
- table.revalidate();
- table.repaint();
+ p5Table.revalidate();
+ p5Table.repaint();
}
};
}
- private ActionListener downloadLog(JTable table) {
- return new ActionListener() {
+ private ItemListener downloadLog(JTable table) {
+ return new ItemListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void itemStateChanged(ItemEvent paramItemEvent) {
// TODO Auto-generated method stub
+ if (paramItemEvent.getStateChange() == ItemEvent.DESELECTED) {
+ return;
+ }
+ String selectItem = ((JComboBox) paramItemEvent.getSource()).getSelectedItem().toString();
+ System.out.println(selectItem);
+ if (!selectItem.contains("txt") && !selectItem.contains("excel")) {
+ return;
+ }
if (table.getRowCount() > 0) {
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
@@ -1080,31 +1234,50 @@ public class BOMManagementFrame extends JFrame {
chooser.setCurrentDirectory(FileSystemView.getFileSystemView().getHomeDirectory());
chooser.showOpenDialog($this);
File folder = chooser.getSelectedFile();
- FileWriter fileWriter = null;
- String fileName = "BOM־-" + new SimpleDateFormat("yyyyMMddHHmm").format(new Date()) + ".txt";
- try {
- fileWriter = new FileWriter(folder.getPath() + File.separator + fileName);// ıļ
- String temp;
+ if (folder == null) {
+ p5Download.setSelectedItem("־");
+ return;
+ }
+ String fileName = "";
+ if (selectItem.contains("txt")) {
+ FileWriter fileWriter = null;
+ fileName = "BOM־-" + new SimpleDateFormat("yyyyMMddHHmm").format(new Date()) + ".txt";
+ try {
+ fileWriter = new FileWriter(folder.getPath() + File.separator + fileName);// ıļ
+ String temp;
+ System.out.println(logDataList.size());
+ for (Entity entity : logDataList) {
+ fileWriter.write((temp = entity.get("ID").toString())
+ + StringCreateUtil.createBlank(10 - temp.length())
+ + (temp = entity.get("MODIFY_USER").toString())
+ + StringCreateUtil.createBlank(20 - temp.length())
+ + (temp = entity.get("MODIFY_TIME").toString())
+ + StringCreateUtil.createBlank(30 - temp.length())
+ + entity.get("MODIFY_CONTENT").toString() + "\r\n");
+ }
+ fileWriter.flush();
+ fileWriter.close();
+ } catch (IOException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ return;
+ }
+ } else {
+ fileName = "BOM־-" + new SimpleDateFormat("yyyyMMddHHmm").format(new Date()) + ".xlsx";
+ String[] header = new String[] { "", "û", "ʱ", "" };
+ List data = new ArrayList<>();
System.out.println(logDataList.size());
for (Entity entity : logDataList) {
- fileWriter.write((temp = entity.get("ID").toString())
- + StringCreateUtil.createBlank(10 - temp.length())
- + (temp = entity.get("MODIFY_USER").toString())
- + StringCreateUtil.createBlank(20 - temp.length())
- + (temp = entity.get("MODIFY_TIME").toString())
- + StringCreateUtil.createBlank(30 - temp.length())
- + entity.get("MODIFY_CONTENT").toString() + "\r\n");
+ data.add(new String[] { entity.get("ID").toString(), entity.get("MODIFY_USER").toString(),
+ entity.get("MODIFY_TIME").toString(), entity.get("MODIFY_CONTENT").toString() });
}
- fileWriter.flush();
- fileWriter.close();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- return;
+ SimpleExcelUtil.exportExcel(folder.getPath() + File.separator + fileName, header, data);
+
}
JOptionPane.showMessageDialog($this, "־ɹ\r\n·" + folder + File.separator + fileName, "ʾ",
JOptionPane.WARNING_MESSAGE);
+ p5Download.setSelectedItem("־");
}
}
};
@@ -1117,16 +1290,15 @@ public class BOMManagementFrame extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
- String numStr = ((JTextField) uiMap.get("p1NumText")).getText().trim();
- KeyValComboBox combo = (KeyValComboBox) uiMap.get("p1UnitCombo");
- String text = combo.getSelectedText().trim();
- Object value = combo.getSelectedValue();
+ String numStr = p1NumText.getText().trim();
+ String text = p1UnitCombo.getSelectedText().trim();
+ Object value = p1UnitCombo.getSelectedValue();
System.out.println(numStr);
if ("".equals(numStr) || "".equals(text) || targetRev2 == null) {
JOptionPane.showMessageDialog($this, "δдϢд", "ʾ", JOptionPane.WARNING_MESSAGE);
return;
}
- List selectedRowList = getselectedRow((JTable) uiMap.get("p1Table"));
+ List selectedRowList = getselectedRow(p1Table);
if (selectedRowList.size() == 0) {
return;
}
@@ -1136,26 +1308,41 @@ public class BOMManagementFrame extends JFrame {
long startTime = System.currentTimeMillis();
updateTitleShowProgress(selectedRowList);
List msgData = new ArrayList();
- L1: for (BOMManageTableBean bean : selectedRowList) {
+ L1: for (int i = 0; i < selectedRowList.size(); i++) {
try {
doIndex++;
+ BOMManageTableBean bean = selectedRowList.get(i);
System.out.println(value.toString());
+ if (!addedBOMLine.add(bean.getParentRev().getUid() + targetRev2.getUid())) {
+ msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(),
+ bean.getChildString(), targetRev2.getProperty("object_string"), value.toString(),
+ numStr, "ʧܣ滻һΣ滻" });
+ continue L1;
+ }
AIFComponentContext[] aifs = bean.getParentLine().getChildren();
for (AIFComponentContext aif : aifs) {
String objStr = ((TCComponentBOMLine) aif.getComponent()).getItemRevision()
.getProperty("object_string");
if (objStr.equals(targetRev2.getProperty("object_string"))) {
+ msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(),
+ bean.getChildString(), targetRev2.getProperty("object_string"),
+ value.toString(), numStr, "ʧܣѴͬӼ" });
continue L1;
}
}
+ String seq = selectedRowList.get(i).getChildLine().getProperty("bl_sequence_no");
bean.getParentLine().remove("", bean.getChildLine());
TCComponentBOMLine childLine = bean.getParentLine().add(targetRev2.getItem(), targetRev2, null,
false, "");
childLine.setReferenceProperty("bl_uom", (TCComponent) value);
- childLine.setProperties(new String[] { "bl_quantity" }, new String[] { numStr });
+ childLine.setProperties(new String[] { "bl_quantity", "bl_sequence_no" },
+ new String[] { numStr, seq });
msgData.add(
new String[] { msgData.size() + 1 + "", bean.getParentString(), bean.getChildString(),
targetRev2.getProperty("object_string"), value.toString(), numStr, "ɹ" });
+ selectedRowList.get(i).setChildString(targetRev2.getProperty("object_string"));
+ selectedRowList.get(i).setChildRev(targetRev2);
+ selectedRowList.get(i).setChildLine(childLine);
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
@@ -1176,14 +1363,15 @@ public class BOMManagementFrame extends JFrame {
}
long endTime = System.currentTimeMillis();
System.out.println("滻ִϣʱ" + (endTime - startTime) + "ms");
- doLog("batchReplace", msgData);
+ doLog("滻", msgData);
JScrollPane jsp = DialogUtil
.createTableMsg(new String[] { "", "", "ԭӼ", "滻Ӽ", "λ", "", "" }, msgData).panel;
- JOptionPane.showMessageDialog($this, jsp,
- "滻 ɹ(" + msgData.size() + ") ʱ" + (endTime - startTime) + "ms",
- JOptionPane.PLAIN_MESSAGE);
- removeSelectRow((JTable) uiMap.get("p1Table"));
- ((JCheckBox) uiMap.get("p1SelectAll")).setSelected(false);
+ JOptionPane
+ .showMessageDialog(
+ $this, jsp, "滻 ɹ(" + getResultNum(msgData, true) + ") ʧ("
+ + getResultNum(msgData, false) + ") ʱ" + (endTime - startTime) + "ms",
+ JOptionPane.PLAIN_MESSAGE);
+ updateSelectedRow2(p1Table, selectedRowList);
}
};
}
@@ -1194,8 +1382,8 @@ public class BOMManagementFrame extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
- String numStr = ((JTextField) uiMap.get("p2NumText")).getText();
- List selectedRowList = getselectedRow((JTable) uiMap.get("p2Table"));
+ String numStr = p2NumText.getText();
+ List selectedRowList = getselectedRow(p2Table);
if (selectedRowList.size() == 0) {
return;
}
@@ -1233,14 +1421,15 @@ public class BOMManagementFrame extends JFrame {
}
long endTime = System.currentTimeMillis();
System.out.println("ִϣʱ" + (endTime - startTime) + "ms");
- doLog("batchModify", msgData);
+ doLog("", msgData);
JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "", "", "Ӽ", "ԭ", "", "" },
msgData).panel;
- JOptionPane.showMessageDialog($this, jsp,
- "Ľ ɹ(" + msgData.size() + ") ʱ" + (endTime - startTime) + "ms",
- JOptionPane.PLAIN_MESSAGE);
-// ((JTextField) uiMap.get("p2NumText")).setText("");
- showWhereUesd((JTable) uiMap.get("p2Table"), (JCheckBox) uiMap.get("p2SelectAll"));
+ JOptionPane
+ .showMessageDialog(
+ $this, jsp, "Ľ ɹ(" + getResultNum(msgData, true) + ") ʧ("
+ + getResultNum(msgData, false) + ") ʱ" + (endTime - startTime) + "ms",
+ JOptionPane.PLAIN_MESSAGE);
+ updateSelectedRow(p2Table, selectedRowList);
}
};
}
@@ -1251,16 +1440,15 @@ public class BOMManagementFrame extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
- String numStr = ((JTextField) uiMap.get("p3NumText")).getText().trim();
- KeyValComboBox combo = (KeyValComboBox) uiMap.get("p3UnitCombo");
- String text = combo.getSelectedText().trim();
- Object value = combo.getSelectedValue();
+ String numStr = p3NumText.getText().trim();
+ String text = p3UnitCombo.getSelectedText().trim();
+ Object value = p3UnitCombo.getSelectedValue();
System.out.println(numStr);
if ("".equals(numStr) || "".equals(text) || targetRev2 == null) {
JOptionPane.showMessageDialog($this, "δдϢд", "ʾ", JOptionPane.WARNING_MESSAGE);
return;
}
- List selectedRowList = getselectedRow((JTable) uiMap.get("p3Table"));
+ List selectedRowList = getselectedRow(p3Table);
if (selectedRowList.size() == 0) {
return;
}
@@ -1274,11 +1462,20 @@ public class BOMManagementFrame extends JFrame {
try {
doIndex++;
System.out.println(value.toString());
+ if (!addedBOMLine.add(bean.getParentRev().getUid() + targetRev2.getUid())) {
+ msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(),
+ targetRev2.getProperty("object_string"), value.toString(), numStr,
+ "ʧܣӹһΣظ" });
+ continue L1;
+ }
AIFComponentContext[] aifs = bean.getParentLine().getChildren();
for (AIFComponentContext aif : aifs) {
String objStr = ((TCComponentBOMLine) aif.getComponent()).getItemRevision()
.getProperty("object_string");
if (objStr.equals(targetRev2.getProperty("object_string"))) {
+ msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(),
+ targetRev2.getProperty("object_string"), value.toString(), numStr,
+ "ʧܣѴͬӼ" });
continue L1;
}
}
@@ -1308,17 +1505,15 @@ public class BOMManagementFrame extends JFrame {
}
long endTime = System.currentTimeMillis();
System.out.println("ִϣʱ" + (endTime - startTime) + "ms");
- doLog("batchAdd", msgData);
+ doLog("", msgData);
JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "", "", "Ӽ", "λ", "", "" },
msgData).panel;
- JOptionPane.showMessageDialog($this, jsp,
- " ɹ(" + msgData.size() + ") ʱ" + (endTime - startTime) + "ms",
- JOptionPane.PLAIN_MESSAGE);
-// ((JButton) uiMap.get("p3TargetBtn")).setText("");
-// ((JButton) uiMap.get("p3AddBtn")).setText("");
-// ((KeyValComboBox) uiMap.get("p3UnitCombo")).setSelectedIndex(0);
-// ((JTextField) uiMap.get("p3NumText")).setText("");
- showWhereUesd((JTable) uiMap.get("p3Table"), (JCheckBox) uiMap.get("p3SelectAll"));
+ JOptionPane
+ .showMessageDialog(
+ $this, jsp, " ɹ(" + getResultNum(msgData, true) + ") ʧ("
+ + getResultNum(msgData, false) + ") ʱ" + (endTime - startTime) + "ms",
+ JOptionPane.PLAIN_MESSAGE);
+// showWhereUesd(p3Table, p3SelectAll);
}
};
}
@@ -1329,7 +1524,7 @@ public class BOMManagementFrame extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
- List selectedRowList = getselectedRow((JTable) uiMap.get("p4Table"));
+ List selectedRowList = getselectedRow(p4Table);
if (selectedRowList.size() == 0) {
return;
}
@@ -1342,9 +1537,14 @@ public class BOMManagementFrame extends JFrame {
for (BOMManageTableBean bean : selectedRowList) {
try {
doIndex++;
- bean.getParentLine().remove("", bean.getChildLine());
- msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(),
- bean.getChildString(), "ɹ" });
+ if (bean.getChildLine() == null) {
+ msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(),
+ bean.getChildString(), "bomLineڣѾɹɾ" });
+ } else {
+ bean.getParentLine().remove("", bean.getChildLine());
+ msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(),
+ bean.getChildString(), "ɹ" });
+ }
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
@@ -1365,15 +1565,15 @@ public class BOMManagementFrame extends JFrame {
}
long endTime = System.currentTimeMillis();
System.out.println("ɾִϣʱ" + (endTime - startTime) + "ms");
- doLog("batchRemove", msgData);
+ doLog("ɾ", msgData);
JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "", "", "ɾӼ", "" }, msgData).panel;
- JOptionPane.showMessageDialog($this, jsp,
- "ɾ ɹ(" + msgData.size() + ") ʱ" + (endTime - startTime) + "ms",
- JOptionPane.PLAIN_MESSAGE);
-// ((JButton) uiMap.get("p4TargetBtn")).setText("");
-// clearTable((JTable) uiMap.get("p4Table"), (JCheckBox) uiMap.get("p4SelectAll"));
- removeSelectRow((JTable) uiMap.get("p4Table"));
- ((JCheckBox) uiMap.get("p4SelectAll")).setSelected(false);
+ JOptionPane
+ .showMessageDialog(
+ $this, jsp, "ɾ ɹ(" + getResultNum(msgData, true) + ") ʧ("
+ + getResultNum(msgData, false) + ") ʱ" + (endTime - startTime) + "ms",
+ JOptionPane.PLAIN_MESSAGE);
+// removeSelectRow(p4Table);
+ updateSelectedRow3(p4Table, selectedRowList);
}
};
}
@@ -1390,6 +1590,102 @@ public class BOMManagementFrame extends JFrame {
return selectedList;
}
+ private void updateSelectedRow(JTable table, List newRowData) {
+ int index = 0;
+ for (int i = 0; i < table.getRowCount(); i++) {
+ JCheckBox select = (JCheckBox) table.getValueAt(i, 0);
+ if (select.isSelected()) {
+ try {
+ TCComponentItemRevision parentRev = newRowData.get(index).getParentRev();
+ String parentString = newRowData.get(index).getParentString();
+ TCComponentBOMWindow win = winType.create(null);
+ TCComponentBOMLine topLine = win.setWindowTopLine(parentRev.getItem(), parentRev, null, null);
+ winMap.get(table.getValueAt(i, 1).toString()).close();
+ winMap.remove(table.getValueAt(i, 1));
+ winMap.put(parentString, win);
+ tableDataMap.remove(table.getValueAt(i, 1).toString());
+ TCComponent[] statusArray = parentRev.getRelatedComponents("release_status_list");
+ String status = "";
+ if (statusArray != null && statusArray.length > 0) {
+ status = statusArray[statusArray.length - 1].getProperty("object_name");
+ }
+ AIFComponentContext[] aifs = topLine.getChildren();
+ for (AIFComponentContext aif : aifs) {
+ TCComponentBOMLine child = (TCComponentBOMLine) aif.getComponent();
+ if (newRowData.get(index).getChildString()
+ .equals(child.getItemRevision().getProperty("object_string"))) {
+
+ String unit = child.getProperty("bl_uom");
+ String num = child.getProperty("bl_quantity");
+
+ JCheckBox selected = new JCheckBox();
+ selected.setSelected(true);
+ Object[] rowData = new Object[] { selected, parentString,
+ newRowData.get(index).getChildString(), unit, num, status };
+ rowPrint(rowData);
+ for (int ii = 0; ii < rowData.length; ii++) {
+ table.setValueAt(rowData[ii], i, ii);
+ }
+ tableDataMap.put(parentString, new BOMManageTableBean(parentString,
+ newRowData.get(index).getChildString(), parentRev, targetRev, topLine, child));
+ break;
+ }
+ }
+ index++;
+ } catch (TCException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+ table.revalidate();
+ table.repaint();
+ }
+
+ private void updateSelectedRow2(JTable table, List newRowData) {
+ int index = 0;
+ for (int i = 0; i < table.getRowCount(); i++) {
+ JCheckBox select = (JCheckBox) table.getValueAt(i, 0);
+ if (select.isSelected()) {
+ BOMManageTableBean bean = newRowData.get(index);
+ try {
+ TCComponentBOMLine child = bean.getChildLine();
+ String unit = child.getProperty("bl_uom");
+ String num = child.getProperty("bl_quantity");
+ table.setValueAt(bean.getChildString(), i, 2);
+ table.setValueAt(unit, index, 3);
+ table.setValueAt(num, index, 4);
+ tableDataMap.get(bean.getParentString()).setChildRev(bean.getChildRev());
+ tableDataMap.get(bean.getParentString()).setChildString(bean.getChildString());
+ tableDataMap.get(bean.getParentString()).setChildLine(child);
+ } catch (TCException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ index++;
+ }
+ }
+ table.revalidate();
+ table.repaint();
+ }
+
+ private void updateSelectedRow3(JTable table, List newRowData) {
+ int index = 0;
+ for (int i = 0; i < table.getRowCount(); i++) {
+ JCheckBox select = (JCheckBox) table.getValueAt(i, 0);
+ if (select.isSelected()) {
+ BOMManageTableBean bean = newRowData.get(index);
+ table.setValueAt("", i, 2);
+ table.setValueAt("", index, 3);
+ table.setValueAt("", index, 4);
+ tableDataMap.get(bean.getParentString()).setChildLine(null);
+ index++;
+ }
+ }
+ table.revalidate();
+ table.repaint();
+ }
+
private void removeSelectRow(JTable table) {
DefaultTableModel model = (DefaultTableModel) table.getModel();
int i = 0;
@@ -1408,12 +1704,22 @@ public class BOMManagementFrame extends JFrame {
@Override
public void dispose() {
// TODO Auto-generated method stub
- try {
- closeWin();
- } catch (TCException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+
+ new Thread(new Runnable() {
+
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ try {
+ closeWin();
+ System.out.println("closed");
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }).start();
+
super.dispose();
}
@@ -1438,13 +1744,13 @@ public class BOMManagementFrame extends JFrame {
private void doLog(String operation, List msgData) {
createLogDataSourceTable();
String content = "";
- if ("batchReplace".equals(operation)) {
+ if ("滻".equals(operation)) {
content = "%sӼ%s滻Ϊ%s;%s;%s";
- } else if ("batchModify".equals(operation)) {
+ } else if ("".equals(operation)) {
content = "%sӼ%s%sΪ%s";
- } else if ("batchAdd".equals(operation)) {
+ } else if ("".equals(operation)) {
content = "%sӼ%s;%s;%s";
- } else if ("batchRemove".equals(operation)) {
+ } else if ("ɾ".equals(operation)) {
content = "%sɾӼ%s";
}
String username = "";
@@ -1517,7 +1823,7 @@ public class BOMManagementFrame extends JFrame {
// TODO Auto-generated method stub
super.keyTyped(e);
if (e.getKeyChar() == KeyEvent.VK_ENTER) {
- ((JButton) uiMap.get("p5Search")).doClick();
+ p5Search.doClick();
}
}
};
@@ -1605,4 +1911,246 @@ public class BOMManagementFrame extends JFrame {
}
return true;
}
+
+ private ActionListener startWorkFlow(JTable table) {
+ return new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO Auto-generated method stub
+ List select = getselectedRow(table);
+ List parentRev = new ArrayList<>();
+ for (BOMManageTableBean bean : select) {
+ parentRev.add(bean.getParentRev());
+ }
+ $this.setExtendedState(JFrame.ICONIFIED);
+ NewProcessCommand command = new NewProcessCommand(AIFUtility.getActiveDesktop(), app,
+ parentRev.toArray(new TCComponentItemRevision[parentRev.size()]));
+ }
+ };
+ }
+
+ private void rowPrint(Object[] arr) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("[");
+ for (Object obj : arr) {
+ if (obj instanceof JCheckBox) {
+ sb.append(((JCheckBox) obj).isSelected());
+ } else {
+ sb.append(obj.toString());
+ }
+ sb.append(",");
+ }
+ if (sb.length() > 1) {
+ sb.deleteCharAt(sb.length() - 1);
+ }
+ sb.append("]");
+ System.out.println(sb.toString());
+ }
+
+ private void resize() {
+ double left = 2 * this.widthOffset / 3.0;
+ double right = this.widthOffset - left;
+
+ int bottom1 = p1BottomBtn2.getX() - p1BottomBtn1.getX() - p1BottomBtn1.getWidth();
+ int bottom2 = p1BottomBtn3.getX() - p1BottomBtn2.getX() - p1BottomBtn2.getWidth();
+ int botttom3 = p1BottomBtn4.getX() - p1BottomBtn3.getX() - p1BottomBtn3.getWidth();
+
+ // p1
+ int p1x1 = p1TargetBtn.getX() - p1TargetLabel.getX() - p1TargetLabel.getWidth();
+ int p1x2 = p1ReplaceBtn.getX() - p1ReplaceLabel.getX() - p1ReplaceLabel.getWidth();
+ int p1x3 = p1UnitLabel.getX() - p1ReplaceBtn.getX() - p1ReplaceBtn.getWidth();
+ int p1x4 = p1NumLabel.getX() - p1UnitCombo.getX() - p1UnitCombo.getWidth();
+ p1TargetLabel.setBounds(p1TargetLabel.getX() + getOffset(left, 20, 800), 20,
+ p1TargetLabel.getWidth() + getOffset(left, 100, 800), 25);
+ p1TargetBtn.setBounds(p1TargetLabel.getX() + p1TargetLabel.getWidth() + p1x1 + getOffset(left, 10, 800), 20,
+ p1TargetBtn.getWidth() + getOffset(left, 400, 800), 25);
+ p1ReplaceLabel.setBounds(p1ReplaceLabel.getX() + getOffset(left, 20, 800), 60,
+ p1ReplaceLabel.getWidth() + getOffset(left, 100, 800), 25);
+ p1ReplaceBtn.setBounds(p1ReplaceLabel.getX() + p1ReplaceLabel.getWidth() + p1x2 + getOffset(left, 10, 800), 60,
+ p1ReplaceBtn.getWidth() + getOffset(left, 400, 800), 25);
+ p1UnitLabel.setBounds(p1ReplaceBtn.getX() + p1ReplaceBtn.getWidth() + p1x3 + getOffset(left, 30, 800), 60,
+ p1UnitLabel.getWidth() + getOffset(left, 50, 800), 25);
+ p1UnitCombo.setBounds(p1UnitLabel.getX() + p1UnitLabel.getWidth(), 60,
+ p1UnitCombo.getWidth() + getOffset(left, 50, 800), 25);
+ p1NumLabel.setBounds(p1UnitCombo.getX() + p1UnitCombo.getWidth() + p1x4 + getOffset(left, 20, 800), 60,
+ p1NumLabel.getWidth() + getOffset(left, 50, 800), 25);
+ p1NumText.setBounds(p1NumLabel.getX() + p1NumLabel.getWidth(), 60,
+ p1NumText.getWidth() + getOffset(left, 50, 800), 25);
+ p1SelectAll.setBounds(p1SelectAll.getX() + getOffset(left, 20, 800), 100,
+ p1SelectAll.getWidth() + getOffset(left, 100, 800), 25);
+ p1jsp.setBounds(p1jsp.getX() + getOffset(left, 20, 800), p1jsp.getY(),
+ p1jsp.getWidth() + getOffset(left, 760, 800), p1jsp.getHeight() + this.heightOffset);
+ p1BottomBtn1.setBounds(p1BottomBtn1.getX() + getOffset(left, 80, 800), p1BottomBtn1.getY() + this.heightOffset,
+ p1BottomBtn1.getWidth() + getOffset(left, 100, 800), 25);
+ p1BottomBtn2.setBounds(p1BottomBtn1.getX() + p1BottomBtn1.getWidth() + bottom1 + getOffset(left, 80, 800),
+ p1BottomBtn2.getY() + this.heightOffset, p1BottomBtn2.getWidth() + getOffset(left, 100, 800), 25);
+ p1BottomBtn3.setBounds(p1BottomBtn2.getX() + p1BottomBtn2.getWidth() + bottom2 + getOffset(left, 80, 800),
+ p1BottomBtn3.getY() + this.heightOffset, p1BottomBtn3.getWidth() + getOffset(left, 100, 800), 25);
+ p1BottomBtn4.setBounds(p1BottomBtn3.getX() + p1BottomBtn3.getWidth() + botttom3 + getOffset(left, 80, 800),
+ p1BottomBtn4.getY() + this.heightOffset, p1BottomBtn4.getWidth() + getOffset(left, 100, 800), 25);
+ p1Left.setBounds(0, 0, p1Left.getWidth() + getOffset(this.widthOffset, 800, 1200),
+ p1Left.getHeight() + this.heightOffset);
+ p1TreePanel.setBounds(p1TreePanel.getX() + getOffset(right, 20, 400), 130,
+ p1TreePanel.getWidth() + getOffset(right, 360, 400), p1TreePanel.getHeight() + this.heightOffset);
+ p1Right.setBounds(p1Left.getX() + p1Left.getWidth(), 0,
+ p1Right.getWidth() + getOffset(this.widthOffset, 400, 1200), p1Right.getHeight() + this.heightOffset);
+ p1.revalidate();
+ p1.repaint();
+
+ // p2
+ int p2x1 = p2TargetBtn.getX() - p2TargetLabel.getX() - p2TargetLabel.getWidth();
+ int p2x2 = p2NumText.getX() - p2ChangeNumLabel.getX() - p2ChangeNumLabel.getWidth();
+ p2TargetLabel.setBounds(p2TargetLabel.getX() + getOffset(left, 20, 800), 20,
+ p2TargetLabel.getWidth() + getOffset(left, 100, 800), 25);
+ p2TargetBtn.setBounds(p2TargetLabel.getX() + p2TargetLabel.getWidth() + p2x1 + getOffset(left, 10, 800), 20,
+ p2TargetBtn.getWidth() + getOffset(left, 400, 800), 25);
+ p2ChangeNumLabel.setBounds(p2ChangeNumLabel.getX() + getOffset(left, 20, 800), 60,
+ p2ChangeNumLabel.getWidth() + getOffset(left, 100, 800), 25);
+ p2NumText.setBounds(p2ChangeNumLabel.getX() + p2ChangeNumLabel.getWidth() + p2x2 + getOffset(left, 10, 800), 60,
+ p2NumText.getWidth() + getOffset(left, 50, 800), 25);
+ p2SelectAll.setBounds(p2SelectAll.getX() + getOffset(left, 20, 800), 100,
+ p2SelectAll.getWidth() + getOffset(left, 100, 800), 25);
+ p2jsp.setBounds(p2jsp.getX() + getOffset(left, 20, 800), p2jsp.getY(),
+ p2jsp.getWidth() + getOffset(left, 760, 800), p2jsp.getHeight() + this.heightOffset);
+ p2BottomBtn1.setBounds(p2BottomBtn1.getX() + getOffset(left, 80, 800), p2BottomBtn1.getY() + this.heightOffset,
+ p2BottomBtn1.getWidth() + getOffset(left, 100, 800), 25);
+ p2BottomBtn2.setBounds(p2BottomBtn1.getX() + p2BottomBtn1.getWidth() + bottom1 + getOffset(left, 80, 800),
+ p2BottomBtn2.getY() + this.heightOffset, p2BottomBtn2.getWidth() + getOffset(left, 100, 800), 25);
+ p2BottomBtn3.setBounds(p2BottomBtn2.getX() + p2BottomBtn2.getWidth() + bottom2 + getOffset(left, 80, 800),
+ p2BottomBtn3.getY() + this.heightOffset, p2BottomBtn3.getWidth() + getOffset(left, 100, 800), 25);
+ p2BottomBtn4.setBounds(p2BottomBtn3.getX() + p2BottomBtn3.getWidth() + botttom3 + getOffset(left, 80, 800),
+ p2BottomBtn4.getY() + this.heightOffset, p2BottomBtn4.getWidth() + getOffset(left, 100, 800), 25);
+ p2Left.setBounds(0, 0, p2Left.getWidth() + getOffset(this.widthOffset, 800, 1200),
+ p2Left.getHeight() + this.heightOffset);
+ p2TreePanel.setBounds(p2TreePanel.getX() + getOffset(right, 20, 400), 130,
+ p2TreePanel.getWidth() + getOffset(right, 360, 400), p2TreePanel.getHeight() + this.heightOffset);
+ p2Right.setBounds(p2Left.getX() + p2Left.getWidth(), 0,
+ p2Right.getWidth() + getOffset(this.widthOffset, 400, 1200), p2Right.getHeight() + this.heightOffset);
+ p2.revalidate();
+ p2.repaint();
+
+ // p3
+ int p3x1 = p3TargetBtn.getX() - p3TargetLabel.getX() - p3TargetLabel.getWidth();
+ int p3x2 = p3AddBtn.getX() - p3AddLabel.getX() - p3AddLabel.getWidth();
+ int p3x3 = p3UnitLabel.getX() - p3AddBtn.getX() - p3AddBtn.getWidth();
+ int p3x4 = p3NumLabel.getX() - p3UnitCombo.getX() - p3UnitCombo.getWidth();
+ p3TargetLabel.setBounds(p3TargetLabel.getX() + getOffset(left, 20, 800), 20,
+ p3TargetLabel.getWidth() + getOffset(left, 100, 800), 25);
+ p3TargetBtn.setBounds(p3TargetLabel.getX() + p3TargetLabel.getWidth() + p3x1 + getOffset(left, 10, 800), 20,
+ p3TargetBtn.getWidth() + getOffset(left, 400, 800), 25);
+ p3AddLabel.setBounds(p3AddLabel.getX() + getOffset(left, 20, 800), 60,
+ p3AddLabel.getWidth() + getOffset(left, 100, 800), 25);
+ p3AddBtn.setBounds(p3AddLabel.getX() + p3AddLabel.getWidth() + p3x2 + getOffset(left, 10, 800), 60,
+ p3AddBtn.getWidth() + getOffset(left, 400, 800), 25);
+ p3UnitLabel.setBounds(p3AddBtn.getX() + p3AddBtn.getWidth() + p3x3 + getOffset(left, 30, 800), 60,
+ p3UnitLabel.getWidth() + getOffset(left, 50, 800), 25);
+ p3UnitCombo.setBounds(p3UnitLabel.getX() + p3UnitLabel.getWidth(), 60,
+ p3UnitCombo.getWidth() + getOffset(left, 50, 800), 25);
+ p3NumLabel.setBounds(p3UnitCombo.getX() + p3UnitCombo.getWidth() + p3x4 + getOffset(left, 20, 800), 60,
+ p3NumLabel.getWidth() + getOffset(left, 50, 800), 25);
+ p3NumText.setBounds(p3NumLabel.getX() + p3NumLabel.getWidth(), 60,
+ p3NumText.getWidth() + getOffset(left, 50, 800), 25);
+ p3SelectAll.setBounds(p3SelectAll.getX() + getOffset(left, 20, 800), 100,
+ p3SelectAll.getWidth() + getOffset(left, 100, 800), 25);
+ p3jsp.setBounds(p3jsp.getX() + getOffset(left, 20, 800), p3jsp.getY(),
+ p3jsp.getWidth() + getOffset(left, 760, 800), p3jsp.getHeight() + this.heightOffset);
+ p3BottomBtn1.setBounds(p3BottomBtn1.getX() + getOffset(left, 80, 800), p3BottomBtn1.getY() + this.heightOffset,
+ p3BottomBtn1.getWidth() + getOffset(left, 100, 800), 25);
+ p3BottomBtn2.setBounds(p3BottomBtn1.getX() + p3BottomBtn1.getWidth() + bottom1 + getOffset(left, 80, 800),
+ p3BottomBtn2.getY() + this.heightOffset, p3BottomBtn2.getWidth() + getOffset(left, 100, 800), 25);
+ p3BottomBtn3.setBounds(p3BottomBtn2.getX() + p3BottomBtn2.getWidth() + bottom2 + getOffset(left, 80, 800),
+ p3BottomBtn3.getY() + this.heightOffset, p3BottomBtn3.getWidth() + getOffset(left, 100, 800), 25);
+ p3BottomBtn4.setBounds(p3BottomBtn3.getX() + p3BottomBtn3.getWidth() + botttom3 + getOffset(left, 80, 800),
+ p3BottomBtn4.getY() + this.heightOffset, p3BottomBtn4.getWidth() + getOffset(left, 100, 800), 25);
+ p3Left.setBounds(0, 0, p3Left.getWidth() + getOffset(this.widthOffset, 800, 1200),
+ p3Left.getHeight() + this.heightOffset);
+ p3TreePanel.setBounds(p3TreePanel.getX() + getOffset(right, 20, 400), 130,
+ p3TreePanel.getWidth() + getOffset(right, 360, 400), p3TreePanel.getHeight() + this.heightOffset);
+ p3Right.setBounds(p3Left.getX() + p3Left.getWidth(), 0,
+ p3Right.getWidth() + getOffset(this.widthOffset, 400, 1200), p3Right.getHeight() + this.heightOffset);
+ p3.revalidate();
+ p3.repaint();
+
+ // p4
+ int p4x1 = p4TargetBtn.getX() - p4TargetLabel.getX() - p4TargetLabel.getWidth();
+ p4TargetLabel.setBounds(p4TargetLabel.getX() + getOffset(left, 20, 800), 20,
+ p4TargetLabel.getWidth() + getOffset(left, 100, 800), 25);
+ p4TargetBtn.setBounds(p4TargetLabel.getX() + p4TargetLabel.getWidth() + p4x1 + getOffset(left, 10, 800), 20,
+ p4TargetBtn.getWidth() + getOffset(left, 400, 800), 25);
+ p4SelectAll.setBounds(p4SelectAll.getX() + getOffset(left, 20, 800), 100,
+ p4SelectAll.getWidth() + getOffset(left, 100, 800), 25);
+ p4jsp.setBounds(p4jsp.getX() + getOffset(left, 20, 800), p4jsp.getY(),
+ p4jsp.getWidth() + getOffset(left, 760, 800), p4jsp.getHeight() + this.heightOffset);
+ p4BottomBtn1.setBounds(p4BottomBtn1.getX() + getOffset(left, 80, 800), p4BottomBtn1.getY() + this.heightOffset,
+ p4BottomBtn1.getWidth() + getOffset(left, 100, 800), 25);
+ p4BottomBtn2.setBounds(p4BottomBtn1.getX() + p4BottomBtn1.getWidth() + bottom1 + getOffset(left, 80, 800),
+ p4BottomBtn2.getY() + this.heightOffset, p4BottomBtn2.getWidth() + getOffset(left, 100, 800), 25);
+ p4BottomBtn3.setBounds(p4BottomBtn2.getX() + p4BottomBtn2.getWidth() + bottom2 + getOffset(left, 80, 800),
+ p4BottomBtn3.getY() + this.heightOffset, p4BottomBtn3.getWidth() + getOffset(left, 100, 800), 25);
+ p4BottomBtn4.setBounds(p4BottomBtn3.getX() + p4BottomBtn3.getWidth() + botttom3 + getOffset(left, 80, 800),
+ p4BottomBtn4.getY() + this.heightOffset, p4BottomBtn4.getWidth() + getOffset(left, 100, 800), 25);
+ p4Left.setBounds(0, 0, p4Left.getWidth() + getOffset(this.widthOffset, 800, 1200),
+ p4Left.getHeight() + this.heightOffset);
+ p4TreePanel.setBounds(p4TreePanel.getX() + getOffset(right, 20, 400), 130,
+ p4TreePanel.getWidth() + getOffset(right, 360, 400), p4TreePanel.getHeight() + this.heightOffset);
+ p4Right.setBounds(p4Left.getX() + p4Left.getWidth(), 0,
+ p4Right.getWidth() + getOffset(this.widthOffset, 400, 1200), p4Right.getHeight() + this.heightOffset);
+ p4.revalidate();
+ p4.repaint();
+
+ // p5
+ int p5x1 = p5UserText.getX() - p5UserLabel.getX() - p5UserLabel.getWidth();
+ int p5x2 = p5TimeLabel.getX() - p5UserText.getX() - p5UserText.getWidth();
+ int p5x3 = p5TimeStartText.getX() - p5TimeLabel.getX() - p5TimeLabel.getWidth();
+ int p5x4 = toLabel.getX() - p5TimeStartText.getX() - p5TimeStartText.getWidth();
+ int p5x5 = p5TimeEndText.getX() - toLabel.getX() - toLabel.getWidth();
+ int p5x6 = p5ContentLabel.getX() - p5TimeEndText.getX() - p5TimeEndText.getWidth();
+ int p5x7 = p5Contentjsp.getX() - p5ContentLabel.getX() - p5ContentLabel.getWidth();
+ int p5x8 = p5Search.getX() - p5Contentjsp.getX() - p5Contentjsp.getWidth();
+ int p5x9 = p5Download.getX() - p5Search.getX() - p5Search.getWidth();
+ p5UserLabel.setBounds(p5UserLabel.getX(), 40, p5UserLabel.getWidth() + getOffset(this.widthOffset, 70, 1200),
+ 25);
+ p5UserText.setBounds(p5UserLabel.getX() + p5UserLabel.getWidth() + p5x1 + getOffset(this.widthOffset, 10, 1200),
+ 40, p5UserText.getWidth() + getOffset(this.widthOffset, 150, 1200), 25);
+ p5TimeLabel.setBounds(p5UserText.getX() + p5UserText.getWidth() + p5x2 + getOffset(this.widthOffset, 50, 1200),
+ 40, p5TimeLabel.getWidth() + getOffset(this.widthOffset, 70, 1200), 25);
+ p5TimeStartText.setBounds(
+ p5TimeLabel.getX() + p5TimeLabel.getWidth() + p5x3 + getOffset(this.widthOffset, 10, 1200), 40,
+ p5TimeStartText.getWidth() + getOffset(this.widthOffset, 100, 1200), 25);
+ toLabel.setBounds(
+ p5TimeStartText.getX() + p5TimeStartText.getWidth() + p5x4 + getOffset(this.widthOffset, 10, 1200), 40,
+ toLabel.getWidth() + getOffset(this.widthOffset, 20, 1200), 25);
+ p5TimeEndText.setBounds(toLabel.getX() + toLabel.getWidth() + p5x5 + getOffset(this.widthOffset, 10, 1200), 40,
+ p5TimeEndText.getWidth() + getOffset(this.widthOffset, 100, 1200), 25);
+ p5ContentLabel.setBounds(
+ p5TimeEndText.getX() + p5TimeEndText.getWidth() + p5x6 + getOffset(this.widthOffset, 50, 1200), 40,
+ p5ContentLabel.getWidth() + getOffset(this.widthOffset, 70, 1200), 25);
+ p5Contentjsp.setBounds(
+ p5ContentLabel.getX() + p5ContentLabel.getWidth() + p5x7 + getOffset(this.widthOffset, 10, 1200), 20,
+ p5Contentjsp.getWidth() + getOffset(this.widthOffset, 200, 1200), 80);
+ p5Search.setBounds(p5Contentjsp.getX() + p5Contentjsp.getWidth() + p5x8 + getOffset(this.widthOffset, 50, 1200),
+ 40, p5Search.getWidth() + getOffset(this.widthOffset, 60, 1200), 25);
+ p5Download.setBounds(p5Search.getX() + p5Search.getWidth() + p5x9 + getOffset(this.widthOffset, 20, 1200), 40,
+ p5Download.getWidth() + getOffset(this.widthOffset, 100, 1200), 25);
+ p5jsp.setBounds(p5jsp.getX() + getOffset(this.widthOffset, 20, 1200), p5jsp.getY(),
+ p5jsp.getWidth() + getOffset(this.widthOffset, 1160, 1200), p5jsp.getHeight() + this.heightOffset);
+ p5.revalidate();
+ p5.repaint();
+ }
+
+ private int getOffset(double num1, int num2, int num3) {
+ return (int) (num1 * num2 / num3);
+ }
+
+ private int getResultNum(List msgData, boolean success) {
+ int num = 0;
+ String str = success ? "ɹ" : "ʧ";
+ for (String[] row : msgData) {
+ if (row[row.length - 1].contains(str)) {
+ num++;
+ }
+ }
+ return num;
+ }
}
diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/BOMManagementFrame20200826改log格式.txt b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/BOMManagementFrame20200826改log格式.txt
new file mode 100644
index 0000000..93f6146
--- /dev/null
+++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/BOMManagementFrame20200826改log格式.txt
@@ -0,0 +1,2145 @@
+package com.connor.jd.plm.dialogs;
+
+import java.awt.BorderLayout;
+import java.awt.CardLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.sql.SQLException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.Vector;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JDialog;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.JTree;
+import javax.swing.RowSorter;
+import javax.swing.filechooser.FileSystemView;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableRowSorter;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreeSelectionModel;
+
+import com.connor.jd.plm.beans.BOMLogBean;
+import com.connor.jd.plm.beans.BOMManageTableBean;
+import com.connor.jd.plm.beans.CheckBoxPo;
+import com.connor.jd.plm.beans.CustomLovBean;
+import com.connor.jd.plm.beans.ResultData;
+import com.connor.jd.plm.table.MyCellEditor4;
+import com.connor.jd.plm.table.MyCellRenderer;
+import com.connor.jd.plm.utils.DBConnectionUtil;
+import com.connor.jd.plm.utils.DBUtil;
+import com.connor.jd.plm.utils.DatePickerUtil;
+import com.connor.jd.plm.utils.DialogUtil;
+import com.connor.jd.plm.utils.JDMethodUtil;
+import com.connor.jd.plm.utils.KeyValComboBox;
+import com.connor.jd.plm.utils.StringCreateUtil;
+import com.eltima.components.ui.DatePicker;
+import com.teamcenter.rac.aif.AbstractAIFApplication;
+import com.teamcenter.rac.aif.kernel.AIFComponentContext;
+import com.teamcenter.rac.aifrcp.AIFUtility;
+import com.teamcenter.rac.kernel.TCComponent;
+import com.teamcenter.rac.kernel.TCComponentBOMLine;
+import com.teamcenter.rac.kernel.TCComponentBOMWindow;
+import com.teamcenter.rac.kernel.TCComponentBOMWindowType;
+import com.teamcenter.rac.kernel.TCComponentItemRevision;
+import com.teamcenter.rac.kernel.TCException;
+import com.teamcenter.rac.kernel.TCSession;
+import com.teamcenter.rac.kernel.TCTypeService;
+import com.teamcenter.rac.workflow.commands.newprocess.NewProcessCommand;
+
+import cn.hutool.db.Db;
+import cn.hutool.db.Entity;
+import cn.hutool.db.sql.Condition;
+
+public class BOMManagementFrame extends JFrame {
+ private AbstractAIFApplication app;
+ private TCSession session;
+ private CardLayout rootSwitch = new CardLayout();
+ private String[] colDisplayNames = new String[] { "ѡ", "", "Ӽ", "λ", "", "״̬" };
+ private String[] colDisplayNames2 = new String[] { "", "û", "ʱ", "" };
+ private JPanel root;
+ private Map tableDataMap = new HashMap();
+ private BOMManagementFrame $this;
+ private List logDataList;
+ private Map winMap = new HashMap();
+ private TCComponentItemRevision targetRev;
+ private TCComponentItemRevision targetRev2;
+ private boolean isLogcreated = false;
+ private int doIndex = 0;
+ private boolean complate = false;
+ private List checkItemType = new ArrayList();
+ private JButton[] topBtns;
+ private TCComponentBOMWindowType winType;
+ private int width = 1200;
+ private int height = 800;
+ private int widthOffset = 0;
+ private int heightOffset = 0;
+ private JLabel p1TargetLabel;
+ private JButton p1TargetBtn;
+ private JLabel p1ReplaceLabel;
+ private JButton p1ReplaceBtn;
+ private JLabel p1UnitLabel;
+ private KeyValComboBox p1UnitCombo;
+ private JLabel p1NumLabel;
+ private JTextField p1NumText;
+ private JCheckBox p1SelectAll;
+ private JTable p1Table;
+ private JScrollPane p1jsp;
+ private JButton p1BottomBtn1;
+ private JButton p1BottomBtn2;
+ private JButton p1BottomBtn3;
+ private JButton p1BottomBtn4;
+ private JPanel p1Left;
+ private JScrollPane p1TreePanel;
+ private JPanel p1Right;
+ private JLabel p2TargetLabel;
+ private JButton p2TargetBtn;
+ private JLabel p2ChangeNumLabel;
+ private JTextField p2NumText;
+ private JCheckBox p2SelectAll;
+ private JTable p2Table;
+ private JScrollPane p2jsp;
+ private JButton p2BottomBtn1;
+ private JButton p2BottomBtn2;
+ private JButton p2BottomBtn3;
+ private JButton p2BottomBtn4;
+ private JPanel p2Left;
+ private JScrollPane p2TreePanel;
+ private JPanel p2Right;
+ private JLabel p3TargetLabel;
+ private JButton p3TargetBtn;
+ private JLabel p3AddLabel;
+ private JButton p3AddBtn;
+ private JLabel p3UnitLabel;
+ private KeyValComboBox p3UnitCombo;
+ private JLabel p3NumLabel;
+ private JTextField p3NumText;
+ private JCheckBox p3SelectAll;
+ private JTable p3Table;
+ private JScrollPane p3jsp;
+ private JButton p3BottomBtn1;
+ private JButton p3BottomBtn2;
+ private JButton p3BottomBtn3;
+ private JButton p3BottomBtn4;
+ private JPanel p3Left;
+ private JScrollPane p3TreePanel;
+ private JPanel p3Right;
+ private JLabel p4TargetLabel;
+ private JButton p4TargetBtn;
+ private JCheckBox p4SelectAll;
+ private JTable p4Table;
+ private JScrollPane p4jsp;
+ private JButton p4BottomBtn1;
+ private JButton p4BottomBtn2;
+ private JButton p4BottomBtn3;
+ private JButton p4BottomBtn4;
+ private JPanel p4Left;
+ private JScrollPane p4TreePanel;
+ private JPanel p4Right;
+ private JLabel p5UserLabel;
+ private JTextField p5UserText;
+ private JLabel p5TimeLabel;
+ private DatePicker p5TimeStartText;
+ private JLabel toLabel;
+ private DatePicker p5TimeEndText;
+ private JLabel p5ContentLabel;
+ private JTextArea p5ContentText;
+ private JScrollPane p5Contentjsp;
+ private JButton p5Search;
+ private JButton p5Download;
+ private JTable p5Table;
+ private JScrollPane p5jsp;
+ private Map uiSize = new HashMap<>();
+ private JPanel p1;
+ private JPanel p2;
+ private JPanel p3;
+ private JPanel p4;
+ private JPanel p5;
+ private Set addedBOMLine = new HashSet<>();
+
+ public BOMManagementFrame(AbstractAIFApplication app) {
+ super();
+ this.app = app;
+ this.session = (TCSession) app.getSession();
+ $this = this;
+ String[] prefArray = JDMethodUtil.getPrefStrArray("connor_bom_check_type", session);
+ if (prefArray != null) {
+ checkItemType = Arrays.asList(prefArray);
+ }
+ TCTypeService service = session.getTypeService();
+ try {
+ this.winType = (TCComponentBOMWindowType) service.getTypeComponent("BOMWindow");
+ } catch (TCException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ init();
+ }
+
+ private void init() {
+ this.setTitle("BOM");
+ this.setSize(new Dimension(1200, 800));
+ this.setLayout(new BorderLayout());
+ this.setResizable(true);
+ this.setAlwaysOnTop(true);
+ this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ this.setLocationRelativeTo(null);
+ this.addComponentListener(new ComponentAdapter() {
+ @Override
+ public void componentResized(ComponentEvent e) {
+ // TODO Auto-generated method stub
+ super.componentResized(e);
+ Component comp = e.getComponent();
+ $this.widthOffset = comp.getWidth() - $this.width;
+ $this.heightOffset = comp.getHeight() - $this.height;
+ if ($this.widthOffset != 0 || $this.heightOffset != 0) {
+ System.out.println("width===>" + comp.getWidth());
+ System.out.println("height===>" + comp.getHeight());
+ $this.width = comp.getWidth();
+ $this.height = comp.getHeight();
+ $this.resize();
+ }
+ }
+ });
+ this.addFocusListener(new FocusListener() {
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void focusGained(FocusEvent e) {
+ // TODO Auto-generated method stub
+ $this.setAlwaysOnTop(true);
+ }
+ });
+
+ Container container = this.getContentPane();
+ container.setLayout(new BorderLayout());
+ container.setSize(new Dimension(1200, 800));
+
+ TCTypeService typeService = session.getTypeService();
+ Vector unitVector = new Vector();
+ try {
+ TCComponent[] uomArray = typeService.getTypeComponent("UnitOfMeasure").extent();
+ unitVector.add(new CheckBoxPo(" ", " "));
+ for (TCComponent comp : uomArray) {
+ unitVector.add(new CheckBoxPo(comp.toString(), comp));
+ }
+
+ } catch (TCException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ // ͷ
+ JPanel topBtnPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
+ topBtns = new JButton[5];
+ topBtns[0] = new JButton("滻");
+ topBtns[1] = new JButton("");
+ topBtns[2] = new JButton("");
+ topBtns[3] = new JButton("ɾ");
+ topBtns[4] = new JButton("־");
+// topBtns[5] = new JButton("ť");
+ topBtns[0].setSelected(true);
+ for (JButton btn : topBtns) {
+ topBtnPanel.add(btn);
+ btn.addActionListener(panelSwitch());
+ }
+ container.add(topBtnPanel, BorderLayout.NORTH);
+
+ // root
+ root = new JPanel(rootSwitch);
+
+ // 滻
+ p1 = new JPanel();
+ p1.setLayout(null);
+
+ // 滻
+ p1Left = new JPanel();
+ p1Left.setLayout(null);
+ p1Left.setBounds(0, 0, 800, 800);
+ p1Left.setBorder(BorderFactory.createEtchedBorder());
+
+ p1TargetLabel = new JLabel("Ŀϱ");
+ p1TargetLabel.setBounds(20, 20, 100, 25);
+ p1TargetBtn = new JButton();
+ p1TargetBtn.setBounds(130, 20, 400, 25);
+ p1ReplaceLabel = new JLabel("滻ϱ");
+ p1ReplaceLabel.setBounds(20, 60, 100, 25);
+ p1ReplaceBtn = new JButton();
+ p1ReplaceBtn.setBounds(130, 60, 400, 25);
+ p1UnitLabel = new JLabel("λ");
+ p1UnitLabel.setBounds(560, 60, 50, 25);
+ p1UnitCombo = new KeyValComboBox(unitVector);
+ p1UnitCombo.setBounds(610, 60, 50, 25);
+ p1NumLabel = new JLabel("");
+ p1NumLabel.setBounds(680, 60, 50, 25);
+ p1NumText = new JTextField();
+ p1NumText.setBounds(730, 60, 50, 25);
+ p1SelectAll = new JCheckBox("ȫѡ");
+ p1SelectAll.setBounds(20, 100, 100, 25);
+ DefaultTableModel p1model = new DefaultTableModel(colDisplayNames, 0) {
+ @Override
+ public boolean isCellEditable(int paramInt1, int paramInt2) {
+ if (paramInt2 == 0) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public Class> getColumnClass(int paramInt) {
+ // TODO Auto-generated method stub
+ if (paramInt == 0) {
+ return Integer.class;
+ }
+ return super.getColumnClass(paramInt);
+ }
+ };
+ p1Table = new JTable(p1model);
+ p1Table.getColumnModel().getColumn(0).setMinWidth(60);
+ p1Table.getColumnModel().getColumn(0).setMaxWidth(60);
+ p1Table.getColumnModel().getColumn(1).setMinWidth(200);
+ p1Table.getColumnModel().getColumn(2).setMinWidth(200);
+ p1Table.getColumnModel().getColumn(3).setMinWidth(100);
+ p1Table.getColumnModel().getColumn(4).setMinWidth(100);
+ p1Table.getColumnModel().getColumn(5).setMinWidth(100);
+ p1Table.getColumnModel().getColumn(0).setCellRenderer(new MyCellRenderer());
+ p1Table.getColumnModel().getColumn(0).setCellEditor(new MyCellEditor4(new JTextField()));
+ p1Table.setRowHeight(25);
+ p1Table.setAutoscrolls(true);
+ p1Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+ p1Table.getTableHeader().setReorderingAllowed(false);
+ p1Table.putClientProperty("terminateEditOnFocusLost", true);
+ RowSorter p1sorter = new TableRowSorter(p1model);
+ p1Table.setRowSorter(p1sorter);
+ p1jsp = new JScrollPane(p1Table);
+ p1jsp.setBounds(20, 130, 760, 500);
+
+ p1BottomBtn1 = new JButton("");
+ p1BottomBtn1.setBounds(80, 650, 100, 25);
+ p1BottomBtn2 = new JButton("滻");
+ p1BottomBtn2.setBounds(260, 650, 100, 25);
+ p1BottomBtn3 = new JButton("");
+ p1BottomBtn3.setBounds(440, 650, 100, 25);
+ p1BottomBtn4 = new JButton("ȡ");
+ p1BottomBtn4.setBounds(620, 650, 100, 25);
+
+ p1Left.add(p1TargetLabel);
+ p1Left.add(p1TargetBtn);
+ p1Left.add(p1ReplaceLabel);
+ p1Left.add(p1ReplaceBtn);
+ p1Left.add(p1UnitLabel);
+ p1Left.add(p1UnitCombo);
+ p1Left.add(p1NumLabel);
+ p1Left.add(p1NumText);
+ p1Left.add(p1SelectAll);
+ p1Left.add(p1jsp);
+ p1Left.add(p1BottomBtn1);
+ p1Left.add(p1BottomBtn2);
+ p1Left.add(p1BottomBtn3);
+ p1Left.add(p1BottomBtn4);
+
+ // 滻ұ
+ p1Right = new JPanel();
+ p1Right.setLayout(null);
+ p1Right.setBounds(800, 0, 400, 800);
+ p1Right.setBorder(BorderFactory.createEtchedBorder());
+
+ p1TreePanel = new JScrollPane();
+ p1TreePanel.setBounds(20, 130, 360, 500);
+ p1Right.add(p1TreePanel);
+
+ // ¼
+ p1SelectAll.addItemListener(selectAll(p1Table));
+ p1Table.addMouseListener(showTree(p1Right));
+ p1BottomBtn4.addActionListener(cancel());
+ p1BottomBtn1.addActionListener(batchRevise(p1Table, p1SelectAll));
+ p1BottomBtn2.addActionListener(batchReplace());
+ p1BottomBtn3.addActionListener(startWorkFlow(p1Table));
+ p1TargetBtn.addActionListener(clickSearch(p1Table, p1SelectAll));
+ p1ReplaceBtn.addActionListener(clickSearch(null, null));
+
+ p1.add(p1Left);
+ p1.add(p1Right);
+
+ //
+ p2 = new JPanel();
+ p2.setLayout(null);
+
+ //
+ p2Left = new JPanel();
+ p2Left.setLayout(null);
+ p2Left.setBounds(0, 0, 800, 800);
+ p2Left.setBorder(BorderFactory.createEtchedBorder());
+
+ p2TargetLabel = new JLabel("Ŀϱ");
+ p2TargetLabel.setBounds(20, 20, 100, 25);
+ p2TargetBtn = new JButton();
+ p2TargetBtn.setBounds(130, 20, 400, 25);
+ p2ChangeNumLabel = new JLabel("");
+ p2ChangeNumLabel.setBounds(20, 60, 100, 25);
+ p2NumText = new JTextField();
+ p2NumText.setBounds(130, 60, 50, 25);
+
+ p2SelectAll = new JCheckBox("ȫѡ");
+ p2SelectAll.setBounds(20, 100, 100, 25);
+ DefaultTableModel p2model = new DefaultTableModel(colDisplayNames, 0) {
+ @Override
+ public boolean isCellEditable(int paramInt1, int paramInt2) {
+ if (paramInt2 == 0) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public Class> getColumnClass(int paramInt) {
+ // TODO Auto-generated method stub
+ if (paramInt == 0) {
+ return Integer.class;
+ }
+ return super.getColumnClass(paramInt);
+ }
+ };
+ p2Table = new JTable(p2model);
+ p2Table.getColumnModel().getColumn(0).setMinWidth(60);
+ p2Table.getColumnModel().getColumn(0).setMaxWidth(60);
+ p2Table.getColumnModel().getColumn(1).setMinWidth(200);
+ p2Table.getColumnModel().getColumn(2).setMinWidth(200);
+ p2Table.getColumnModel().getColumn(3).setMinWidth(100);
+ p2Table.getColumnModel().getColumn(4).setMinWidth(100);
+ p2Table.getColumnModel().getColumn(5).setMinWidth(100);
+ p2Table.getColumnModel().getColumn(0).setCellRenderer(new MyCellRenderer());
+ p2Table.getColumnModel().getColumn(0).setCellEditor(new MyCellEditor4(new JTextField()));
+ p2Table.setRowHeight(25);
+ p2Table.setAutoscrolls(true);
+ p2Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+ p2Table.getTableHeader().setReorderingAllowed(false);
+ p2Table.putClientProperty("terminateEditOnFocusLost", true);
+ RowSorter p2sorter = new TableRowSorter(p2model);
+ p2Table.setRowSorter(p2sorter);
+ p2jsp = new JScrollPane(p2Table);
+ p2jsp.setBounds(20, 130, 760, 500);
+
+ p2BottomBtn1 = new JButton("");
+ p2BottomBtn1.setBounds(80, 650, 100, 25);
+ p2BottomBtn2 = new JButton("");
+ p2BottomBtn2.setBounds(260, 650, 100, 25);
+ p2BottomBtn3 = new JButton("");
+ p2BottomBtn3.setBounds(440, 650, 100, 25);
+ p2BottomBtn4 = new JButton("ȡ");
+ p2BottomBtn4.setBounds(620, 650, 100, 25);
+
+ p2Left.add(p2TargetLabel);
+ p2Left.add(p2TargetBtn);
+ p2Left.add(p2ChangeNumLabel);
+ p2Left.add(p2NumText);
+ p2Left.add(p2SelectAll);
+ p2Left.add(p2jsp);
+ p2Left.add(p2BottomBtn1);
+ p2Left.add(p2BottomBtn2);
+ p2Left.add(p2BottomBtn3);
+ p2Left.add(p2BottomBtn4);
+
+ // ұ
+ p2Right = new JPanel();
+ p2Right.setLayout(null);
+ p2Right.setBounds(800, 0, 400, 800);
+ p2Right.setBorder(BorderFactory.createEtchedBorder());
+
+ p2TreePanel = new JScrollPane();
+ p2TreePanel.setBounds(20, 130, 360, 500);
+ p2Right.add(p2TreePanel);
+
+ // ¼
+ p2SelectAll.addItemListener(selectAll(p2Table));
+ p2Table.addMouseListener(showTree(p2Right));
+ p2BottomBtn4.addActionListener(cancel());
+ p2BottomBtn1.addActionListener(batchRevise(p2Table, p2SelectAll));
+ p2BottomBtn2.addActionListener(batchModify());
+ p2BottomBtn3.addActionListener(startWorkFlow(p2Table));
+ p2TargetBtn.addActionListener(clickSearch(p2Table, p2SelectAll));
+
+ p2.add(p2Left);
+ p2.add(p2Right);
+
+ //
+ p3 = new JPanel();
+ p3.setLayout(null);
+
+ //
+ p3Left = new JPanel();
+ p3Left.setLayout(null);
+ p3Left.setBounds(0, 0, 800, 800);
+ p3Left.setBorder(BorderFactory.createEtchedBorder());
+
+ p3TargetLabel = new JLabel("οϱ");
+ p3TargetLabel.setBounds(20, 20, 100, 25);
+ p3TargetBtn = new JButton();
+ p3TargetBtn.setBounds(130, 20, 400, 25);
+ p3AddLabel = new JLabel("ϱ");
+ p3AddLabel.setBounds(20, 60, 100, 25);
+ p3AddBtn = new JButton();
+ p3AddBtn.setBounds(130, 60, 400, 25);
+ p3UnitLabel = new JLabel("λ");
+ p3UnitLabel.setBounds(560, 60, 50, 25);
+ p3UnitCombo = new KeyValComboBox(unitVector);
+ p3UnitCombo.setBounds(610, 60, 50, 25);
+ p3NumLabel = new JLabel("");
+ p3NumLabel.setBounds(680, 60, 50, 25);
+ p3NumText = new JTextField();
+ p3NumText.setBounds(730, 60, 50, 25);
+
+ p3SelectAll = new JCheckBox("ȫѡ");
+ p3SelectAll.setBounds(20, 100, 100, 25);
+ DefaultTableModel p3model = new DefaultTableModel(colDisplayNames, 0) {
+ @Override
+ public boolean isCellEditable(int paramInt1, int paramInt2) {
+ if (paramInt2 == 0) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public Class> getColumnClass(int paramInt) {
+ // TODO Auto-generated method stub
+ if (paramInt == 0) {
+ return Integer.class;
+ }
+ return super.getColumnClass(paramInt);
+ }
+ };
+ p3Table = new JTable(p3model);
+ p3Table.getColumnModel().getColumn(0).setMinWidth(60);
+ p3Table.getColumnModel().getColumn(0).setMaxWidth(60);
+ p3Table.getColumnModel().getColumn(1).setMinWidth(200);
+ p3Table.getColumnModel().getColumn(2).setMinWidth(200);
+ p3Table.getColumnModel().getColumn(3).setMinWidth(100);
+ p3Table.getColumnModel().getColumn(4).setMinWidth(100);
+ p3Table.getColumnModel().getColumn(5).setMinWidth(100);
+ p3Table.getColumnModel().getColumn(0).setCellRenderer(new MyCellRenderer());
+ p3Table.getColumnModel().getColumn(0).setCellEditor(new MyCellEditor4(new JTextField()));
+ p3Table.setRowHeight(25);
+ p3Table.setAutoscrolls(true);
+ p3Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+ p3Table.getTableHeader().setReorderingAllowed(false);
+ p3Table.putClientProperty("terminateEditOnFocusLost", true);
+ RowSorter p3sorter = new TableRowSorter(p3model);
+ p3Table.setRowSorter(p3sorter);
+ p3jsp = new JScrollPane(p3Table);
+ p3jsp.setBounds(20, 130, 760, 500);
+
+ p3BottomBtn1 = new JButton("");
+ p3BottomBtn1.setBounds(80, 650, 100, 25);
+ p3BottomBtn2 = new JButton("");
+ p3BottomBtn2.setBounds(260, 650, 100, 25);
+ p3BottomBtn3 = new JButton("");
+ p3BottomBtn3.setBounds(440, 650, 100, 25);
+ p3BottomBtn4 = new JButton("ȡ");
+ p3BottomBtn4.setBounds(620, 650, 100, 25);
+
+ p3Left.add(p3TargetLabel);
+ p3Left.add(p3TargetBtn);
+ p3Left.add(p3AddLabel);
+ p3Left.add(p3AddBtn);
+ p3Left.add(p3UnitLabel);
+ p3Left.add(p3UnitCombo);
+ p3Left.add(p3NumLabel);
+ p3Left.add(p3NumText);
+ p3Left.add(p3SelectAll);
+ p3Left.add(p3jsp);
+ p3Left.add(p3BottomBtn1);
+ p3Left.add(p3BottomBtn2);
+ p3Left.add(p3BottomBtn3);
+ p3Left.add(p3BottomBtn4);
+
+ // ұ
+ p3Right = new JPanel();
+ p3Right.setLayout(null);
+ p3Right.setBounds(800, 0, 400, 800);
+ p3Right.setBorder(BorderFactory.createEtchedBorder());
+
+ p3TreePanel = new JScrollPane();
+ p3TreePanel.setBounds(20, 130, 360, 500);
+ p3Right.add(p3TreePanel);
+
+ // ¼
+ p3SelectAll.addItemListener(selectAll(p3Table));
+ p3Table.addMouseListener(showTree(p3Right));
+ p3BottomBtn4.addActionListener(cancel());
+ p3BottomBtn1.addActionListener(batchRevise(p3Table, p3SelectAll));
+ p3BottomBtn2.addActionListener(batchAdd());
+ p3BottomBtn3.addActionListener(startWorkFlow(p3Table));
+ p3TargetBtn.addActionListener(clickSearch(p3Table, p3SelectAll));
+ p3AddBtn.addActionListener(clickSearch(null, null));
+
+ p3.add(p3Left);
+ p3.add(p3Right);
+
+ // ɾ
+ p4 = new JPanel();
+ p4.setLayout(null);
+
+ // ɾ
+ p4Left = new JPanel();
+ p4Left.setLayout(null);
+ p4Left.setBounds(0, 0, 800, 800);
+ p4Left.setBorder(BorderFactory.createEtchedBorder());
+
+ p4TargetLabel = new JLabel("Ŀϱ");
+ p4TargetLabel.setBounds(20, 20, 100, 25);
+ p4TargetBtn = new JButton();
+ p4TargetBtn.setBounds(130, 20, 400, 25);
+
+ p4SelectAll = new JCheckBox("ȫѡ");
+ p4SelectAll.setBounds(20, 100, 100, 25);
+ DefaultTableModel p4model = new DefaultTableModel(colDisplayNames, 0) {
+ @Override
+ public boolean isCellEditable(int paramInt1, int paramInt2) {
+ if (paramInt2 == 0) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public Class> getColumnClass(int paramInt) {
+ // TODO Auto-generated method stub
+ if (paramInt == 0) {
+ return Integer.class;
+ }
+ return super.getColumnClass(paramInt);
+ }
+ };
+ p4Table = new JTable(p4model);
+ p4Table.getColumnModel().getColumn(0).setMinWidth(60);
+ p4Table.getColumnModel().getColumn(0).setMaxWidth(60);
+ p4Table.getColumnModel().getColumn(1).setMinWidth(200);
+ p4Table.getColumnModel().getColumn(2).setMinWidth(200);
+ p4Table.getColumnModel().getColumn(3).setMinWidth(100);
+ p4Table.getColumnModel().getColumn(4).setMinWidth(100);
+ p4Table.getColumnModel().getColumn(5).setMinWidth(100);
+ p4Table.getColumnModel().getColumn(0).setCellRenderer(new MyCellRenderer());
+ p4Table.getColumnModel().getColumn(0).setCellEditor(new MyCellEditor4(new JTextField()));
+ p4Table.setRowHeight(25);
+ p4Table.setAutoscrolls(true);
+ p4Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+ p4Table.getTableHeader().setReorderingAllowed(false);
+ p4Table.putClientProperty("terminateEditOnFocusLost", true);
+ RowSorter p4sorter = new TableRowSorter(p4model);
+ p4Table.setRowSorter(p4sorter);
+ p4jsp = new JScrollPane(p4Table);
+ p4jsp.setBounds(20, 130, 760, 500);
+
+ p4BottomBtn1 = new JButton("");
+ p4BottomBtn1.setBounds(80, 650, 100, 25);
+ p4BottomBtn2 = new JButton("ɾ");
+ p4BottomBtn2.setBounds(260, 650, 100, 25);
+ p4BottomBtn3 = new JButton("");
+ p4BottomBtn3.setBounds(440, 650, 100, 25);
+ p4BottomBtn4 = new JButton("ȡ");
+ p4BottomBtn4.setBounds(620, 650, 100, 25);
+
+ p4Left.add(p4TargetLabel);
+ p4Left.add(p4TargetBtn);
+ p4Left.add(p4SelectAll);
+ p4Left.add(p4jsp);
+ p4Left.add(p4BottomBtn1);
+ p4Left.add(p4BottomBtn2);
+ p4Left.add(p4BottomBtn3);
+ p4Left.add(p4BottomBtn4);
+
+ // ұ
+ p4Right = new JPanel();
+ p4Right.setLayout(null);
+ p4Right.setBounds(800, 0, 400, 800);
+ p4Right.setBorder(BorderFactory.createEtchedBorder());
+
+ p4TreePanel = new JScrollPane();
+ p4TreePanel.setBounds(20, 130, 360, 500);
+ p4Right.add(p4TreePanel);
+
+ // ¼
+ p4SelectAll.addItemListener(selectAll(p4Table));
+ p4Table.addMouseListener(showTree(p4Right));
+ p4BottomBtn4.addActionListener(cancel());
+ p4BottomBtn1.addActionListener(batchRevise(p4Table, p4SelectAll));
+ p4BottomBtn2.addActionListener(batchRemove());
+ p4BottomBtn3.addActionListener(startWorkFlow(p4Table));
+ p4TargetBtn.addActionListener(clickSearch(p4Table, p4SelectAll));
+
+ p4.add(p4Left);
+ p4.add(p4Right);
+
+ // ־
+ p5 = new JPanel();
+ p5.setLayout(null);
+
+ p5UserLabel = new JLabel("û");
+ p5UserLabel.setBounds(20, 40, 70, 25);
+ p5UserText = new JTextField();
+ p5UserText.setBounds(100, 40, 150, 25);
+ p5TimeLabel = new JLabel("ʱ");
+ p5TimeLabel.setBounds(300, 40, 70, 25);
+ p5TimeStartText = DatePickerUtil.getDatePicker(null);
+ p5TimeStartText.setBounds(380, 40, 100, 25);
+ toLabel = new JLabel("");
+ toLabel.setBounds(490, 40, 20, 25);
+ p5TimeEndText = DatePickerUtil.getDatePicker(null);
+ p5TimeEndText.setBounds(520, 40, 100, 25);
+ p5ContentLabel = new JLabel("");
+ p5ContentLabel.setBounds(670, 40, 70, 25);
+ p5ContentText = new JTextArea();
+ p5ContentText.setLineWrap(true);
+ p5ContentText.setWrapStyleWord(true);
+ p5Contentjsp = new JScrollPane(p5ContentText);
+ p5Contentjsp.setBounds(750, 20, 200, 80);
+ p5Search = new JButton("");
+ p5Search.setBounds(1000, 40, 60, 25);
+ p5Download = new JButton("־");
+ p5Download.setBounds(1080, 40, 100, 25);
+
+ DefaultTableModel p5model = new DefaultTableModel(colDisplayNames2, 0) {
+ @Override
+ public boolean isCellEditable(int paramInt1, int paramInt2) {
+ return false;
+ }
+
+ @Override
+ public Class> getColumnClass(int paramInt) {
+ // TODO Auto-generated method stub
+ if (paramInt == 0) {
+ return Integer.class;
+ }
+ return super.getColumnClass(paramInt);
+ }
+ };
+ p5Table = new JTable(p5model);
+ p5Table.getColumnModel().getColumn(0).setMinWidth(60);
+ p5Table.getColumnModel().getColumn(0).setMaxWidth(60);
+ p5Table.getColumnModel().getColumn(1).setMinWidth(200);
+ p5Table.getColumnModel().getColumn(2).setMinWidth(200);
+ p5Table.getColumnModel().getColumn(3).setMinWidth(700);
+ p5Table.setRowHeight(25);
+ p5Table.setAutoscrolls(true);
+ p5Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+ p5Table.getTableHeader().setReorderingAllowed(false);
+ RowSorter p5sorter = new TableRowSorter(p5model);
+ p5Table.setRowSorter(p5sorter);
+ p5jsp = new JScrollPane(p5Table);
+ p5jsp.setBounds(20, 130, 1160, 580);
+
+ // ¼
+ p5Search.addActionListener(searchLog());
+ p5Download.addActionListener(downloadLog(p5Table));
+ p5UserText.addKeyListener(logSearchEnter());
+ p5TimeStartText.addKeyListener(logSearchEnter());
+ p5TimeEndText.addKeyListener(logSearchEnter());
+
+ p5.add(p5UserLabel);
+ p5.add(p5UserText);
+ p5.add(p5TimeLabel);
+ p5.add(p5TimeStartText);
+ p5.add(toLabel);
+ p5.add(p5TimeEndText);
+ p5.add(p5ContentLabel);
+ p5.add(p5Contentjsp);
+ p5.add(p5Search);
+ p5.add(p5Download);
+ p5.add(p5jsp);
+
+ root.add("batchReplace", p1);
+ root.add("batchModify", p2);
+ root.add("batchAdd", p3);
+ root.add("batchRemove", p4);
+ root.add("updateLog", p5);
+
+ rootSwitch.show(root, "batchReplace");
+ container.add(root, BorderLayout.CENTER);
+ this.setVisible(true);
+ }
+
+ private ActionListener panelSwitch() {
+ return new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // TODO Auto-generated method stub
+ String text = ((JButton) e.getSource()).getText();
+ for (int i = 0; i < topBtns.length; i++) {
+ topBtns[i].setSelected(topBtns[i].getText().equals(text));
+ }
+ switch (text) {
+ case "滻":
+ clearTable(p1Table, p1SelectAll);
+ p1Right.removeAll();
+ JScrollPane panel1 = new JScrollPane();
+ panel1.setBounds(p1TreePanel.getX(), p1TreePanel.getY(), p1TreePanel.getWidth(),
+ p1TreePanel.getHeight());
+ p1TreePanel = panel1;
+ p1Right.add(panel1);
+ p1Right.revalidate();
+ p1Right.repaint();
+ rootSwitch.show(root, "batchReplace");
+ break;
+ case "":
+ clearTable(p2Table, p2SelectAll);
+ p2Right.removeAll();
+ JScrollPane panel2 = new JScrollPane();
+ panel2.setBounds(p2TreePanel.getX(), p2TreePanel.getY(), p2TreePanel.getWidth(),
+ p2TreePanel.getHeight());
+ p2TreePanel = panel2;
+ p2Right.add(panel2);
+ p2Right.revalidate();
+ p2Right.repaint();
+ rootSwitch.show(root, "batchModify");
+ break;
+ case "":
+ clearTable(p3Table, p3SelectAll);
+ p3Right.removeAll();
+ JScrollPane panel3 = new JScrollPane();
+ panel3.setBounds(p3TreePanel.getX(), p3TreePanel.getY(), p3TreePanel.getWidth(),
+ p3TreePanel.getHeight());
+ p3TreePanel = panel3;
+ p3Right.add(panel3);
+ p3Right.revalidate();
+ p3Right.repaint();
+ rootSwitch.show(root, "batchAdd");
+ break;
+ case "ɾ":
+ clearTable(p4Table, p4SelectAll);
+ p4Right.removeAll();
+ JScrollPane panel4 = new JScrollPane();
+ panel4.setBounds(p4TreePanel.getX(), p4TreePanel.getY(), p4TreePanel.getWidth(),
+ p4TreePanel.getHeight());
+ p4TreePanel = panel4;
+ p4Right.add(panel4);
+ p4Right.revalidate();
+ p4Right.repaint();
+ rootSwitch.show(root, "batchRemove");
+ break;
+ case "־":
+ createLogDataSourceTable();
+ clearTable(p5Table, null);
+ rootSwitch.show(root, "updateLog");
+ break;
+ default:
+// createLogDataSourceTable();
+ }
+ }
+ };
+ }
+
+ private void showWhereUesd(JTable table, JCheckBox selectAll) {
+ DefaultTableModel model = (DefaultTableModel) table.getModel();
+ // TODO Auto-generated method stub
+ clearTable(table, selectAll);
+ if (table == null || targetRev == null) {
+ return;
+ }
+ long startTime = System.currentTimeMillis();
+ List