From 4a34cb2b389bebca85749f00637198d3b4d25252 Mon Sep 17 00:00:00 2001 From: zouxk Date: Thu, 17 Sep 2020 15:35:28 +0800 Subject: [PATCH] 9/17 --- com.connor.jd.plm/META-INF/MANIFEST.MF | 8 +- com.connor.jd.plm/plugin.xml | 20 + .../jd/plm/action/BatchReviseAction.java | 94 + .../plm/action/DeleteItemRevisionAction.java | 85 + .../jd/plm/action/WLTZReviseAction.java | 156 +- .../com/connor/jd/plm/beans/BOMLogBean.java | 80 + .../plm/dialog/EditClassificationDialog.java | 47 +- .../jd/plm/dialogs/BOMManagementFrame.java | 1124 ++++++--- ...BOMManagementFrame20200826改log格式.txt | 2145 +++++++++++++++++ .../dialogs/TransformDesignToPartDialog.java | 24 +- .../com/connor/jd/plm/form/GTCSJHForm.java | 13 +- .../jd/plm/handlers/BatchReviseHandler.java | 21 + .../handlers/DeleteItemRevisionHandler.java | 21 + .../com/connor/jd/plm/utils/DialogUtil.java | 6 +- .../connor/jd/plm/utils/SimpleExcelUtil.java | 69 + .../NamedReferencesDialog.java | 1501 ++++++++++++ .../rac/commands/open/OpenCommand.java | 871 +++++++ .../teamcenter/rac/kernel/DatasetDisable.java | 49 - .../rac/kernel/kernel_user.properties | 2 - com.connor.jd.plm/src/config/db.setting | 4 +- 20 files changed, 5920 insertions(+), 420 deletions(-) create mode 100644 com.connor.jd.plm/src/com/connor/jd/plm/action/BatchReviseAction.java create mode 100644 com.connor.jd.plm/src/com/connor/jd/plm/action/DeleteItemRevisionAction.java create mode 100644 com.connor.jd.plm/src/com/connor/jd/plm/beans/BOMLogBean.java create mode 100644 com.connor.jd.plm/src/com/connor/jd/plm/dialogs/BOMManagementFrame20200826改log格式.txt create mode 100644 com.connor.jd.plm/src/com/connor/jd/plm/handlers/BatchReviseHandler.java create mode 100644 com.connor.jd.plm/src/com/connor/jd/plm/handlers/DeleteItemRevisionHandler.java create mode 100644 com.connor.jd.plm/src/com/connor/jd/plm/utils/SimpleExcelUtil.java create mode 100644 com.connor.jd.plm/src/com/teamcenter/rac/commands/namedreferences/NamedReferencesDialog.java create mode 100644 com.connor.jd.plm/src/com/teamcenter/rac/commands/open/OpenCommand.java delete mode 100644 com.connor.jd.plm/src/com/teamcenter/rac/kernel/DatasetDisable.java delete mode 100644 com.connor.jd.plm/src/com/teamcenter/rac/kernel/kernel_user.properties 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 be18f27..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,6 +36,12 @@ 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); @@ -60,42 +67,95 @@ 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; } rev.refresh(); - 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("ʼȨ"); - 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; - } - } - if (newRev == null) { - newRev = rev.saveAs(item.getNewRev()); +// 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) target).window().refresh(); + 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 (rev.getClassificationClass() == null || "".equals(rev.getClassificationClass())) { MessageBox.post("ɹ", "ʾ", MessageBox.WARNING); - aclService.revokePrivilege(item, session.getUser(), "READ"); - aclService.revokePrivilege(item, session.getUser(), "WRITE"); - aclService.revokePrivilege(item, session.getUser(), "DELETE"); - System.out.println("ѳдɾȨ"); +// 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; } @@ -112,24 +172,22 @@ 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 @@ -137,15 +195,27 @@ public class WLTZReviseAction extends AbstractAIFAction { // TODO Auto-generated method stub cn.hutool.http.HttpUtil.post(URL, PARAMMAP); MessageBox.post("ɹ", "ʾ", MessageBox.WARNING); - try { - aclService.revokePrivilege(item, session.getUser(), "READ"); - aclService.revokePrivilege(item, session.getUser(), "WRITE"); - aclService.revokePrivilege(item, session.getUser(), "DELETE"); - System.out.println("ѳдɾȨ"); - } catch (TCException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + +// 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(); 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 a232285..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); @@ -242,15 +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) { - JOptionPane.showMessageDialog(this, "Ȩ޲ϵϵͳԱ", "ʾ", JOptionPane.WARNING_MESSAGE); - return false; - } else if (released.contains(rev)) { - 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) { @@ -300,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(); @@ -308,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; } @@ -333,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(); @@ -351,6 +360,7 @@ public class EditClassificationDialog extends AbstractAIFDialog { JOptionPane.WARNING_MESSAGE); return; } + JOptionPane.showMessageDialog(null, "޸ķɹ", "ʾ", JOptionPane.WARNING_MESSAGE); System.out.println("success"); } @@ -362,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 tableDataList = new ArrayList(); + try { + String revString = targetRev.getProperty("object_string"); + TCComponent[] usedComps = targetRev.whereUsed((short) 0); + System.out.println("װ======>" + usedComps.length); + + tableDataMap.clear(); +// 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 = ""; + if (statusArray != null && statusArray.length > 0) { + status = statusArray[statusArray.length - 1].getProperty("object_name"); + } + TCComponentBOMWindow win = winType.create(null); + TCComponentBOMLine topLine = win.setWindowTopLine(parentRev.getItem(), parentRev, null, null); + winMap.put(parentString, win); + AIFComponentContext[] aifs = topLine.getChildren(); + for (AIFComponentContext aif : aifs) { + TCComponentBOMLine child = (TCComponentBOMLine) aif.getComponent(); + if (revString.equals(child.getItemRevision().getProperty("object_string"))) { + + String unit = child.getProperty("bl_uom"); + String num = child.getProperty("bl_quantity"); + + Object[] rowData = new Object[] { new JCheckBox(), parentString, revString, unit, num, status }; + rowPrint(rowData); + tableDataList.add(rowData); + tableDataMap.put(parentString, + new BOMManageTableBean(parentString, revString, parentRev, targetRev, topLine, child)); + // TODO bomһchildܻ쳣ֻӰһ + break; + } + } + } + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + if (tableDataList == null || tableDataList.size() == 0) { + JOptionPane.showMessageDialog($this, "ҵӦ󣬵öûκװװöľ°汾ȷϱǷȷ", "ʾ", + JOptionPane.WARNING_MESSAGE); + return; + } + + for (Object[] rowData : tableDataList) { + model.addRow(rowData); + } + table.revalidate(); + table.repaint(); + System.out.println("װʾɣʱ" + (System.currentTimeMillis() - startTime) + "ms"); + } + + private MouseAdapter showTree(JPanel panelRight) { + return new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) { + JTable table = (JTable) e.getSource(); + String parentString = table.getValueAt(table.getSelectedRow(), 1).toString(); + System.out.println("select row=====>" + table.getSelectedRow()); + System.out.println("parentName=====>" + parentString); + CustomLovBean lovBean = null; + try { + lovBean = new CustomLovBean(tableDataMap.get(parentString).getChildString()); + CustomLovBean subBean = new CustomLovBean(parentString); + lovBean.addSub(subBean); + getTreeData(tableDataMap.get(parentString).getParentRev(), subBean); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + panelRight.removeAll(); + JTree tree = createTree(lovBean); + JScrollPane treePanel = new JScrollPane(tree); + treePanel.setBounds(20, 130, 360, 500); + panelRight.add(treePanel); + panelRight.revalidate(); + panelRight.repaint(); + } + } + }; + } + + private void getTreeData(TCComponent rev, CustomLovBean lov) throws TCException { + TCComponent[] comps = rev.whereUsed((short) 0); + if (comps == null || comps.length == 0) { + return; + } + for (TCComponent comp : comps) { + CustomLovBean sub = new CustomLovBean(comp.getProperty("object_string")); + System.out.println(sub.displayName); + lov.addSub(sub); + getTreeData(comp, sub); + } + } + + private void clearTable(JTable table, JCheckBox selectAll) { + DefaultTableModel model = (DefaultTableModel) table.getModel(); + int cnt = model.getRowCount(); + for (int i = 0; i < cnt; i++) { + model.removeRow(0); + } + table.revalidate(); + table.repaint(); + if (selectAll != null) { + selectAll.setSelected(false); + } + tableDataMap.clear(); + addedBOMLine.clear(); + try { + closeWin(); + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private JTree createTree(CustomLovBean lovData) { + if (lovData == null || "".equals(lovData.displayName)) { + return new JTree(); + } + DefaultMutableTreeNode root = new DefaultMutableTreeNode(lovData.displayName); + DefaultMutableTreeNode parent = root; + DefaultTreeModel treeModel = new DefaultTreeModel(root); + + initTree(lovData, parent, treeModel); + + JTree tree = new JTree(treeModel); + tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + DefaultTreeCellRenderer cellRenderer = (DefaultTreeCellRenderer) tree.getCellRenderer(); + cellRenderer.setTextNonSelectionColor(Color.black); + cellRenderer.setTextSelectionColor(Color.blue); + return tree; + } + + private void initTree(CustomLovBean lovData, DefaultMutableTreeNode parent, DefaultTreeModel treeModel) { + if (!lovData.hasChild()) { + return; + } + List subList = lovData.getSub(); + for (CustomLovBean sub : subList) { + DefaultMutableTreeNode temp = new DefaultMutableTreeNode(sub.displayName); + treeModel.insertNodeInto(temp, parent, parent.getChildCount()); + initTree(sub, temp, treeModel); + } + } + + private ItemListener selectAll(JTable table) { + return new ItemListener() { + + @Override + public void itemStateChanged(ItemEvent e) { + // TODO Auto-generated method stub + boolean select = ((JCheckBox) e.getSource()).isSelected(); + for (int i = 0; i < table.getRowCount(); i++) { + JCheckBox checkBox = (JCheckBox) table.getValueAt(i, 0); + checkBox.setSelected(select); + table.revalidate(); + table.repaint(); + } + } + }; + } + + private ActionListener cancel() { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + $this.dispose(); + } + }; + } + + private ActionListener batchRevise(JTable table, JCheckBox selectAll) { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + List selectedRowList = getselectedRow(table); + if (selectedRowList.size() == 0) { + return; + } + if (!checkAccess(selectedRowList).isRes()) { + return; + } + List msgData = new ArrayList(); + for (int i = 0; i < selectedRowList.size(); i++) { + try { + 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; + } + } + +// showWhereUesd(table, selectAll); + updateSelectedRow(table, selectedRowList); + JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "", "汾(ǰ)", "汾()", "" }, + msgData).panel; + JOptionPane.showMessageDialog($this, jsp, "", JOptionPane.PLAIN_MESSAGE); + } + }; + } + + private List usedFilter(TCComponent[] comps) throws TCException { +// Map sameParentUsedMap = new HashMap(); + List list = new ArrayList<>(); + for (TCComponent comp : comps) { + 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); + } +// sameParentUsedMap.put(itemId, rev); +// } + } + } + 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 ), target1 VARCHAR2 ( 100 ), target2 VARCHAR2 ( 100 ), parent VARCHAR2 ( 100 ), operation VARCHAR2 ( 50 ), unit VARCHAR2 ( 100 ), num VARCHAR2 ( 100 ))"; + 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 { + List temp = null; + temp = Db.use(DBUtil.getDataSource(session)).findBy("user_tables", + new Condition("table_name", "JD2_BOMMANAGELOG")); + if (temp == null || temp.size() == 0) { + Db.use(DBUtil.getDataSource(session)).execute(sql1); + System.out.println("JD2_BOMMANAGELOG create success"); + } + temp = null; + temp = Db.use(DBUtil.getDataSource(session)).findBy("user_sequences", + new Condition("sequence_name", "JD2_BOMMANAGELOG_SEQ")); + if (temp == null || temp.size() == 0) { + Db.use(DBUtil.getDataSource(session)).execute(sql2); + System.out.println("JD2_BOMMANAGELOG_SEQ create success"); + } + temp = null; + temp = Db.use(DBUtil.getDataSource(session)).findBy("all_triggers", + new Condition("trigger_name", "JD2_BOMMANAGELOG_TRI")); + if (temp == null || temp.size() == 0) { + DBConnectionUtil.dbConn(session).createStatement().execute(sql3); + System.out.println("JD2_BOMManageLog_tri create success"); + } + isLogcreated = true; + System.out.println("init log success"); + } catch (Exception e) { + // TODO Auto-generated catch block + JOptionPane.showMessageDialog($this, "ݿʧܣѡjd2_db_settings", "", JOptionPane.ERROR_MESSAGE); + e.printStackTrace(); + } + } + + private ActionListener searchLog() { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + String username = p5UserText.getText().trim(); + String content = p5ContentText.getText(); + if (username == null || "".equals(username)) { + return; + } + + String sql = "select * from JD2_BOMMANAGELOG where "; + if (!"*".equals(username)) { + sql += "modify_user like '%" + username + "%' and"; + } + 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 + "%'"; + } + sql += "order by MODIFY_TIME asc"; + System.out.println(sql); + try { + logDataList = Db.use(DBUtil.getDataSource(session)).query(sql); + System.out.println("log size=====>" + logDataList.size()); + 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") }; + model.addRow(objArr); + } + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + return; + } + p5Table.revalidate(); + p5Table.repaint(); + } + }; + } + + private ActionListener downloadLog(JTable table) { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + if (table.getRowCount() > 0) { + JFileChooser chooser = new JFileChooser(); + chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + chooser.setMultiSelectionEnabled(false); + 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; + 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; + } + + JOptionPane.showMessageDialog($this, "־ɹ\r\n·" + folder + File.separator + fileName, "ʾ", + JOptionPane.WARNING_MESSAGE); + } + } + }; + + } + + private ActionListener batchReplace() { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + 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(p1Table); + if (selectedRowList.size() == 0) { + return; + } + if (!checkTargetAndSelect(targetRev, selectedRowList)) { + return; + } + long startTime = System.currentTimeMillis(); + updateTitleShowProgress(selectedRowList); + List msgData = new ArrayList(); + List logData = new ArrayList(); + L1: for (int i = 0; i < selectedRowList.size(); i++) { + try { + doIndex++; + BOMManageTableBean bean = selectedRowList.get(i); + System.out.println(value.toString()); + if (!addedBOMLine.add(targetRev2)) { + 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", "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, "ɹ" }); + BOMLogBean logBean = new BOMLogBean(bean.getChildString(), + targetRev2.getProperty("object_string"), bean.getParentString(), "滻", value.toString(), + "", numStr); + logData.add(logBean); + 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(); + JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE); + complate = true; + return; + } + } + try { + saveWin(); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE); + return; + } finally { + complate = true; + } + long endTime = System.currentTimeMillis(); + System.out.println("滻ִϣʱ" + (endTime - startTime) + "ms"); + doLog("滻", logData); + JScrollPane jsp = DialogUtil + .createTableMsg(new String[] { "", "", "ԭӼ", "滻Ӽ", "λ", "", "" }, msgData).panel; + JOptionPane + .showMessageDialog( + $this, jsp, "滻 ɹ(" + getResultNum(msgData, true) + ") ʧ(" + + getResultNum(msgData, false) + ") ʱ" + (endTime - startTime) + "ms", + JOptionPane.PLAIN_MESSAGE); + updateSelectedRow2(p1Table, selectedRowList); + } + }; + } + + private ActionListener batchModify() { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + String numStr = p2NumText.getText(); + List selectedRowList = getselectedRow(p2Table); + if (selectedRowList.size() == 0) { + return; + } + if (!checkTargetAndSelect(targetRev, selectedRowList)) { + return; + } + long startTime = System.currentTimeMillis(); + updateTitleShowProgress(selectedRowList); + List msgData = new ArrayList(); + List logData = new ArrayList<>(); + for (BOMManageTableBean bean : selectedRowList) { + String oldNumStr = ""; + try { + doIndex++; + oldNumStr = bean.getChildLine().getProperty("bl_quantity"); + bean.getChildLine().setProperties(new String[] { "bl_quantity" }, new String[] { numStr }); + msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(), + bean.getChildString(), oldNumStr, numStr, "ɹ" }); + BOMLogBean logBean = new BOMLogBean(bean.getChildString(), + targetRev2.getProperty("object_string"), bean.getParentString(), "޸", "", oldNumStr, + numStr); + logData.add(logBean); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE); + complate = true; + return; + } + } + try { + saveWin(); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE); + return; + } finally { + complate = true; + } + long endTime = System.currentTimeMillis(); + System.out.println("ִϣʱ" + (endTime - startTime) + "ms"); + doLog("޸", logData); + JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "", "", "Ӽ", "ԭ", "", "" }, + msgData).panel; + JOptionPane + .showMessageDialog( + $this, jsp, "Ľ ɹ(" + getResultNum(msgData, true) + ") ʧ(" + + getResultNum(msgData, false) + ") ʱ" + (endTime - startTime) + "ms", + JOptionPane.PLAIN_MESSAGE); + updateSelectedRow(p2Table, selectedRowList); + } + }; + } + + private ActionListener batchAdd() { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + 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(p3Table); + if (selectedRowList.size() == 0) { + return; + } + if (!checkTargetAndSelect(targetRev, selectedRowList)) { + return; + } + long startTime = System.currentTimeMillis(); + updateTitleShowProgress(selectedRowList); + List msgData = new ArrayList(); + List logData = new ArrayList<>(); + L1: for (BOMManageTableBean bean : selectedRowList) { + try { + doIndex++; + System.out.println(value.toString()); + if (!addedBOMLine.add(targetRev2)) { + 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; + } + } + 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 }); + msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(), + targetRev2.getProperty("object_string"), value.toString(), numStr, "ɹ" }); + BOMLogBean logBean = new BOMLogBean(bean.getChildString(), + targetRev2.getProperty("object_string"), bean.getParentString(), "", value.toString(), + "", numStr); + logData.add(logBean); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE); + complate = true; + return; + } + } + try { + saveWin(); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE); + return; + } finally { + complate = true; + } + long endTime = System.currentTimeMillis(); + System.out.println("ִϣʱ" + (endTime - startTime) + "ms"); + doLog("", logData); + JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "", "", "Ӽ", "λ", "", "" }, + msgData).panel; + JOptionPane + .showMessageDialog( + $this, jsp, " ɹ(" + getResultNum(msgData, true) + ") ʧ(" + + getResultNum(msgData, false) + ") ʱ" + (endTime - startTime) + "ms", + JOptionPane.PLAIN_MESSAGE); +// showWhereUesd(p3Table, p3SelectAll); + } + }; + } + + private ActionListener batchRemove() { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + List selectedRowList = getselectedRow(p4Table); + if (selectedRowList.size() == 0) { + return; + } + if (!checkTargetAndSelect(targetRev, selectedRowList)) { + return; + } + long startTime = System.currentTimeMillis(); + updateTitleShowProgress(selectedRowList); + List msgData = new ArrayList(); + List logData = new ArrayList<>(); + for (BOMManageTableBean bean : selectedRowList) { + try { + doIndex++; + 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(), "ɹ" }); + BOMLogBean logBean = new BOMLogBean(bean.getChildString(), + targetRev2.getProperty("object_string"), bean.getParentString(), "ɾ", "", "", ""); + logData.add(logBean); + } + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE); + complate = true; + return; + } + } + try { + saveWin(); + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + JOptionPane.showMessageDialog($this, e1.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE); + return; + } finally { + complate = true; + } + long endTime = System.currentTimeMillis(); + System.out.println("ɾִϣʱ" + (endTime - startTime) + "ms"); + doLog("ɾ", logData); + JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "", "", "ɾӼ", "" }, msgData).panel; + JOptionPane + .showMessageDialog( + $this, jsp, "ɾ ɹ(" + getResultNum(msgData, true) + ") ʧ(" + + getResultNum(msgData, false) + ") ʱ" + (endTime - startTime) + "ms", + JOptionPane.PLAIN_MESSAGE); +// removeSelectRow(p4Table); + updateSelectedRow3(p4Table, selectedRowList); + } + }; + } + + private List getselectedRow(JTable table) { + List selectedList = new ArrayList(); + for (int i = 0; i < table.getRowCount(); i++) { + JCheckBox select = (JCheckBox) table.getValueAt(i, 0); + if (select.isSelected()) { + System.out.println("select=====>" + table.getValueAt(i, 1)); + selectedList.add(tableDataMap.get(table.getValueAt(i, 1))); + } + } + 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; + while (i < table.getRowCount()) { + JCheckBox select = (JCheckBox) table.getValueAt(i, 0); + if (select.isSelected()) { + model.removeRow(i); + continue; + } + i++; + } + table.revalidate(); + table.repaint(); + } + + @Override + public void dispose() { + // TODO Auto-generated method stub + + 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(); + } + + private void saveWin() throws TCException { + for (Entry entry : winMap.entrySet()) { + if (entry.getValue() != null) { + entry.getValue().save(); + } + + } + } + + private void closeWin() throws TCException { + saveWin(); + + for (Entry entry : winMap.entrySet()) { + entry.getValue().close(); + } + winMap.clear(); + } + + private void doLog(String operation, List logData) { + createLogDataSourceTable(); + String username = ""; + try { + username = session.getUser().getUserName() + "(" + session.getUser().getUserId() + ")"; + } catch (TCException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + String datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); + + List sqls = new ArrayList(); + for (BOMLogBean bean : logData) { + StringBuilder builder = new StringBuilder(); + builder.append( + "insert into JD2_BOMMANAGELOG (MODIFY_USER,MODIFY_TIME,MODIFY_CONTENT,TARGET1,TARGET2,PARENT,OPERATION,UNIT,NUM) VALUES ('"); + builder.append(username); + builder.append("',to_date('"); + builder.append(datetime); + builder.append("','yyyy-MM-dd hh24:mi:ss'),'"); + if ("滻".equals(operation)) { + String temp = String.format("%sӼ%s滻Ϊ%s;%s;%s", bean.getParent(), bean.getTarget1(), + bean.getTarget2(), bean.getUnit(), bean.getNum()); + builder.append(temp + "','"); + } else if ("޸".equals(operation)) { + String temp = String.format("%sӼ%s%sΪ%s", bean.getParent(), bean.getTarget1(), bean.getOldNum(), + bean.getNum()); + builder.append(temp + "','"); + } else if ("".equals(operation)) { + String temp = String.format("%sӼ%s;%s;%s", bean.getParent(), bean.getTarget2(), bean.getUnit(), + bean.getNum()); + builder.append(temp + "','"); + } else if ("ɾ".equals(operation)) { + String temp = String.format("%sɾӼ%s", bean.getParent(), bean.getTarget1()); + builder.append(temp + "','"); + } + builder.append(bean.getTarget1() + "','"); + builder.append(bean.getTarget2() + "','"); + builder.append(bean.getParent() + "','"); + builder.append(bean.getUnit() + "','"); + builder.append(operation + "','"); + builder.append(bean.getNum() + "');"); + sqls.add(builder.toString()); + } + + try { + Db.use(DBUtil.getDataSource(session)).executeBatch(sqls.toArray(new String[sqls.size()])); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private ActionListener clickSearch(JTable table, JCheckBox selectAll) { + return new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + // TODO Auto-generated method stub + JDialog content = DialogUtil.createSearchAndSelectRevDialog($this, table, selectAll, + (JButton) e.getSource()); + } + }; + } + + public void okCallback(JTable revTable, JTable table, JCheckBox selectAll, JButton field) { + // TODO Auto-generated method stub + int rowIndex = revTable.getSelectedRow(); + if (rowIndex < 0) { + return; + } + String text = revTable.getValueAt(rowIndex, 0).toString(); + System.out.println(text); + field.setText(text); + if ("".equals(text)) { + return; + } + if (table != null) { + targetRev = (TCComponentItemRevision) revTable.getValueAt(rowIndex, 5); + showWhereUesd(table, selectAll); + } else { + targetRev2 = (TCComponentItemRevision) revTable.getValueAt(rowIndex, 5); + } + } + + private KeyAdapter logSearchEnter() { + return new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + // TODO Auto-generated method stub + super.keyTyped(e); + if (e.getKeyChar() == KeyEvent.VK_ENTER) { + p5Search.doClick(); + } + } + }; + } + + private void updateTitleShowProgress(List list) { + new Thread(new Runnable() { + + @Override + public void run() { + int num = 1; + String temp; + doIndex = 0; + while (!complate) { + $this.setTitle("ڴ" + (temp = StringCreateUtil.createPoint(num % 3)) + + StringCreateUtil.createBlank(5 - temp.length()) + list.get(doIndex).getParentString() + + " " + (doIndex + 1) + "/" + list.size()); + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + num++; + } + $this.setTitle("BOM"); + doIndex = -1; + complate = false; + } + }).start(); + } + + private boolean checkReleaseStatus(TCComponentItemRevision rev) { + try { + System.out.println("item type======>" + rev.getItem().getType()); + if (checkItemType.contains(rev.getItem().getType())) { + return true; + } + TCComponent form = rev.getRelatedComponents("IMAN_master_form_rev")[0]; + TCComponent[] statusArray = form.getRelatedComponents("release_status_list"); + String status = ""; + if (statusArray != null && statusArray.length > 0) { + status = statusArray[statusArray.length - 1].getProperty("object_name"); + } + if ("".equals(status) || "JD2_DJJY".equals(status) || "JD2_DJKY".equals(status)) { + return false; + } + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return true; + } + + private ResultData checkAccess(List data) { + for (BOMManageTableBean bean : data) { + boolean isAccess = true; + try { + isAccess = session.getTCAccessControlService().checkPrivilege(bean.getParentLine(), "WRITE"); + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + if (!isAccess) { + try { + return new ResultData(false, "ǰûûж" + bean.getParentLine().getProperty("object_string") + "дȨ", + bean.getParentLine()); + } catch (TCException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + return new ResultData(true, "", null); + } + + private boolean checkTargetAndSelect(TCComponentItemRevision rev, List data) { + if (!checkReleaseStatus(rev)) { + JOptionPane.showMessageDialog($this, "Ŀδߴڶ״̬޷BOM", "ʾ", JOptionPane.WARNING_MESSAGE); + return false; + } + ResultData res = checkAccess(data); + if (!res.isRes()) { + JOptionPane.showMessageDialog($this, res.getMessage(), "ʾ", JOptionPane.WARNING_MESSAGE); + return false; + } + 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/TransformDesignToPartDialog.java b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java index 2c9c702..c7cb266 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/dialogs/TransformDesignToPartDialog.java @@ -48,11 +48,13 @@ import com.teamcenter.rac.kernel.TCComponentBOMLine; import com.teamcenter.rac.kernel.TCComponentBOMViewRevision; import com.teamcenter.rac.kernel.TCComponentBOMWindow; import com.teamcenter.rac.kernel.TCComponentBOMWindowType; +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.TCSession; import com.teamcenter.rac.kernel.TCTypeService; +import com.teamcenter.rac.kernel.ics.ICSProperty; import com.teamcenter.rac.util.ButtonLayout; import com.teamcenter.rac.util.MessageBox; import com.teamcenter.rac.util.PropertyLayout; @@ -267,7 +269,7 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac JScrollPane msgPanel = DialogUtil.createTableMsg(new String[] { "ID", "汾", "", "ɫ" }, bean.colorMaterial).panel; int r = JOptionPane.showConfirmDialog((Component) e.getSource(), msgPanel, "ɫȷ", - JOptionPane.PLAIN_MESSAGE); + JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); if (r == JOptionPane.OK_OPTION) { createBom1(bean); } else { @@ -382,11 +384,21 @@ public class TransformDesignToPartDialog extends AbstractAIFDialog implements Ac } for (TCComponentItemRevision material : childrenList) { - String ys = material.getProperty("jd2_classys"); - if (ys != null && !"".equals(ys)) { - System.out.println("ɫ" + material.getProperty("object_string")); - colorMaterialBean.colorMaterial.add(new String[] { material.getProperty("item_id"), - material.getProperty("item_revision_id"), material.getProperty("object_name"), ys }); + if (material.getClassificationObjects().length > 0) { + String ys = null; + TCComponentICO ico = material.getClassificationObjects()[0]; + ICSProperty[] props = ico.getICSProperties(true); + for (ICSProperty prop : props) { + if (prop.getId() == 1007) { + ys = prop.getValue(); + break; + } + } + if (ys != null && !"".equals(ys)) { + System.out.println("ɫ" + material.getProperty("object_string")); + colorMaterialBean.colorMaterial.add(new String[] { material.getProperty("item_id"), + material.getProperty("item_revision_id"), material.getProperty("object_name"), ys }); + } } } colorMaterialBean.data.put(materialRev, new Object[] { materialRev, childrenList, null, quantityList }); diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/form/GTCSJHForm.java b/com.connor.jd.plm/src/com/connor/jd/plm/form/GTCSJHForm.java index c6425a6..a8417ac 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/form/GTCSJHForm.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/form/GTCSJHForm.java @@ -109,9 +109,9 @@ public class GTCSJHForm extends AbstractRendering { inner.setLayout(null); inner.setPreferredSize(new Dimension(1000, 420)); innerTop.setLayout(null); - innerTop.setPreferredSize(new Dimension(880, 100)); + innerTop.setPreferredSize(new Dimension(1000, 100)); innerTop.setBorder(BorderFactory.createLineBorder(Color.black)); - innerTop.setBounds(10, 0, 880, 100); + innerTop.setBounds(10, 0, 1000, 100); innerCenter.setPreferredSize(new Dimension(880, 300)); innerCenter.setBorder(BorderFactory.createLineBorder(Color.black)); innerCenter.setBounds(10, 120, 880, 300); @@ -145,10 +145,10 @@ public class GTCSJHForm extends AbstractRendering { infoValue[i - 1] = new JLabel(); } for (int i = 1; i < 7; i++) { - infoText[i].setBounds(25 * i + 120 * (i - 1), 30, 60, 25); - infoValue[i - 1].setBounds(85 * i + 60 * (i - 1), 30, 60, 25); - infoText[i + 6].setBounds(25 * i + 120 * (i - 1), 60, 60, 25); - infoValue[i + 5].setBounds(85 * i + 60 * (i - 1), 60, 60, 25); + infoText[i].setBounds(25 + 162 * (i - 1), 30, 80, 25); + infoValue[i - 1].setBounds(105 + 162 * (i - 1), 30, 80, 25); + infoText[i + 6].setBounds(25 + 162 * (i - 1), 60, 80, 25); + infoValue[i + 5].setBounds(105 + 162 * (i - 1), 60, 80, 25); } innerTop.add(infoText[0]); for (int i = 0; i < 12; i++) { @@ -322,6 +322,7 @@ public class GTCSJHForm extends AbstractRendering { if (parentProp.containsKey(labellTexts[i])) { String str = parentProp.get(labellTexts[i]); infoValue[i].setText(str); + infoValue[i].setToolTipText(str); } else { System.out.println("\"" + labellTexts[i] + "\""); } diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/handlers/BatchReviseHandler.java b/com.connor.jd.plm/src/com/connor/jd/plm/handlers/BatchReviseHandler.java new file mode 100644 index 0000000..271f0e7 --- /dev/null +++ b/com.connor.jd.plm/src/com/connor/jd/plm/handlers/BatchReviseHandler.java @@ -0,0 +1,21 @@ +package com.connor.jd.plm.handlers; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; + +import com.connor.jd.plm.action.BatchReviseAction; +import com.teamcenter.rac.aif.AbstractAIFApplication; +import com.teamcenter.rac.aifrcp.AIFUtility; + +public class BatchReviseHandler extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent arg0) throws ExecutionException { + // TODO Auto-generated method stub + AbstractAIFApplication app = AIFUtility.getCurrentApplication(); + new Thread(new BatchReviseAction(app, "")).start(); + return null; + } + +} diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/handlers/DeleteItemRevisionHandler.java b/com.connor.jd.plm/src/com/connor/jd/plm/handlers/DeleteItemRevisionHandler.java new file mode 100644 index 0000000..fc238dd --- /dev/null +++ b/com.connor.jd.plm/src/com/connor/jd/plm/handlers/DeleteItemRevisionHandler.java @@ -0,0 +1,21 @@ +package com.connor.jd.plm.handlers; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; + +import com.connor.jd.plm.action.DeleteItemRevisionAction; +import com.teamcenter.rac.aifrcp.AIFUtility; + +public class DeleteItemRevisionHandler extends AbstractHandler { + + @Override + public Object execute(ExecutionEvent arg0) throws ExecutionException { + // TODO Auto-generated method stub + + DeleteItemRevisionAction action = new DeleteItemRevisionAction(AIFUtility.getCurrentApplication(), ""); + new Thread(action).start(); + return null; + } + +} diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/utils/DialogUtil.java b/com.connor.jd.plm/src/com/connor/jd/plm/utils/DialogUtil.java index 7bf6fd5..31781d4 100644 --- a/com.connor.jd.plm/src/com/connor/jd/plm/utils/DialogUtil.java +++ b/com.connor.jd.plm/src/com/connor/jd/plm/utils/DialogUtil.java @@ -46,8 +46,8 @@ public class DialogUtil { }; JTable msgTable = new JTable(msgModel); for (int columnIndex = 0; columnIndex < msgTable.getColumnCount(); columnIndex++) { - //msgTable.getColumnModel().getColumn(columnIndex).setMinWidth(100); - msgTable.getColumnModel().getColumn(columnIndex).setMinWidth(200); + // msgTable.getColumnModel().getColumn(columnIndex).setMinWidth(100); + msgTable.getColumnModel().getColumn(columnIndex).setPreferredWidth(200); } msgTable.setRowHeight(25); msgTable.setShowGrid(false); @@ -56,7 +56,6 @@ public class DialogUtil { msgTable.getTableHeader().setReorderingAllowed(false); // msgTable.getTableHeader().setVisible(false); - for (String[] row : msgContent) { msgModel.addRow(row); } @@ -187,6 +186,7 @@ public class DialogUtil { List tableDataList = new ArrayList(); for (TCComponentItem item : items) { try { + item.refresh(); TCComponent[] comps = item.getRelatedComponents("revision_list"); for (TCComponent comp : comps) { String objetcString = comp.getProperty("object_string"); diff --git a/com.connor.jd.plm/src/com/connor/jd/plm/utils/SimpleExcelUtil.java b/com.connor.jd.plm/src/com/connor/jd/plm/utils/SimpleExcelUtil.java new file mode 100644 index 0000000..e975127 --- /dev/null +++ b/com.connor.jd.plm/src/com/connor/jd/plm/utils/SimpleExcelUtil.java @@ -0,0 +1,69 @@ +package com.connor.jd.plm.utils; + +import java.io.File; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +import com.aspose.cells.Cells; +import com.aspose.cells.License; +import com.aspose.cells.Workbook; +import com.aspose.cells.WorksheetCollection; + +public class SimpleExcelUtil { + public static void exportExcel(String path, String[] header, List data) { + if (path == null || data == null) { + return; + } + try { + File file = new File(path); + file.createNewFile(); + + getLicense(); + + Workbook excel = new Workbook(path); + WorksheetCollection wc = excel.getWorksheets(); + Cells cells = wc.get(0).getCells(); + int rowIndex = 0; + if (header != null) { + for (int columnIndex = 0; columnIndex < header.length; columnIndex++) { + cells.get(rowIndex, columnIndex).setValue(header[columnIndex]); + } + rowIndex++; + } + for (String[] arr : data) { + for (int columnIndex = 0; columnIndex < arr.length; columnIndex++) { + cells.get(rowIndex, columnIndex).setValue(arr[columnIndex]); + } + rowIndex++; + } + excel.save(path); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public static boolean getLicense() throws Exception { + boolean result = false; + try { + InputStream is = com.aspose.cells.Cell.class.getResourceAsStream("/com/aspose/cells/resources/license.xml"); + License aposeLic = new License(); + aposeLic.setLicense(is); + result = true; + is.close(); + } catch (Exception e) { + e.printStackTrace(System.out); + throw e; + } + return result; + } + + public static void main(String[] args) { + List test = new ArrayList(); + test.add(new String[] { "zzz", "xxx" }); + SimpleExcelUtil.exportExcel(System.getenv("temp") + File.separator + "xxxxxxxxxxxxxxxxxxxx.xlsx", + new String[] { "1", "2" }, test); + System.out.println(System.getenv("temp")); + } +} diff --git a/com.connor.jd.plm/src/com/teamcenter/rac/commands/namedreferences/NamedReferencesDialog.java b/com.connor.jd.plm/src/com/teamcenter/rac/commands/namedreferences/NamedReferencesDialog.java new file mode 100644 index 0000000..d026ef6 --- /dev/null +++ b/com.connor.jd.plm/src/com/teamcenter/rac/commands/namedreferences/NamedReferencesDialog.java @@ -0,0 +1,1501 @@ +package com.teamcenter.rac.commands.namedreferences; + +import java.awt.Component; +import java.awt.Cursor; +import java.awt.Dialog; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Insets; +import java.awt.Toolkit; +import java.awt.Window; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.StringSelection; +import java.awt.datatransfer.Transferable; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import javax.swing.DefaultListModel; +import javax.swing.JButton; +import javax.swing.JFileChooser; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableColumn; +import javax.swing.table.TableColumnModel; + +import org.apache.log4j.Logger; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.PlatformUI; + +import com.teamcenter.rac.aif.AIFClipboard; +import com.teamcenter.rac.aif.AIFDesktop; +import com.teamcenter.rac.aif.AIFPortal; +import com.teamcenter.rac.aif.AbstractAIFCommand; +import com.teamcenter.rac.aif.AbstractAIFDialog; +import com.teamcenter.rac.aif.AbstractAIFOperation; +import com.teamcenter.rac.aif.InterfaceAIFOperationListener; +import com.teamcenter.rac.aif.common.AIFIdentifier; +import com.teamcenter.rac.aif.kernel.AIFComponentContext; +import com.teamcenter.rac.aif.kernel.AIFComponentEvent; +import com.teamcenter.rac.aif.kernel.AbstractAIFSession; +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponentEventListener; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.commands.newdataset.DatasetUtil; +import com.teamcenter.rac.commands.newdataset.IFilesSelector; +import com.teamcenter.rac.commands.newdataset.TCFileDescriptor; +import com.teamcenter.rac.commands.newdataset.TCFileSelectorService; +import com.teamcenter.rac.common.Activator; +import com.teamcenter.rac.common.viewedit.ViewEditHelper; +import com.teamcenter.rac.kernel.NamedReferenceContext; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentDataset; +import com.teamcenter.rac.kernel.TCComponentDatasetDefinition; +import com.teamcenter.rac.kernel.TCComponentItemRevision; +import com.teamcenter.rac.kernel.TCComponentTcFile; +import com.teamcenter.rac.kernel.TCComponentType; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCPreferenceService; +import com.teamcenter.rac.kernel.TCProperty; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.kernel.services.IPropertyPolicyService; +import com.teamcenter.rac.util.ButtonLayout; +import com.teamcenter.rac.util.ConfirmDialog; +import com.teamcenter.rac.util.ConfirmationDialog; +import com.teamcenter.rac.util.Cookie; +import com.teamcenter.rac.util.HorizontalLayout; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.rac.util.OSGIUtil; +import com.teamcenter.rac.util.Registry; +import com.teamcenter.rac.util.Separator; +import com.teamcenter.rac.util.Utilities; +import com.teamcenter.rac.util.VerticalLayout; +import com.teamcenter.rac.util.log.Debug; +import com.teamcenter.soa.common.ObjectPropertyPolicy; +import com.teamcenter.soa.common.PolicyType; + +public class NamedReferencesDialog extends AbstractAIFDialog implements InterfaceAIFComponentEventListener { + private static final Logger logger = Logger.getLogger(NamedReferencesDialog.class); + + private JTable table; + + private JScrollPane tableScrollPane; + + private NamedReferencesTableModel model; + + private JButton openButton; + + private JButton importButton; + + private JButton exportButton; + + private JButton cutButton; + + private JButton copyButton; + + private JButton pasteButton; + + private JButton deleteButton; + + private Window parent; + + private AbstractAIFSession session; + + private Registry appReg; + + private TCComponentDataset datasetComponent = null; + + private String truncateFileName = "FALSE"; + + private static String[] sourceClassificationString; + + private static String[] destClassificationString; + + String[] prop = { "ip_classification", "gov_classification" }; + + public static final String OBJECT_NAME_COLUMN_ID = "object_name"; + + public static final String TCFILE_NAME_COLUMN_ID = "original_file_name"; + + public static final String SIZE_COLUMN_ID = "file_size"; + + public static final String REMOTE_COLUMN_ID = "owning_site"; + + public static final String TYPE_COLUMN_ID = "object_type"; + + public static final String LASTMODIFIED_COLUMN_ID = "last_mod_date"; + + public static final String VOLUME_COLUMN_ID = "volume_tag"; + + public static final String REF_LIST = "ref_list"; + + public static final String REF_NAMES = "ref_names"; + + public static final String ADDITIONAL_COLUMN = "com.teamcenter.rac.commands.namedreferences.AdditionalColumnShown"; + + public static final String TC_TRUNCATE_FILE_NAME = "TC_truncate_file_name"; + + protected JFileChooser exportFc; + + private TCComponent[] toolComponents; + + private TCComponent selectedToolComponent; + + private static String fileNamePolicy; + + public NamedReferencesDialog(TCComponentDataset paramTCComponentDataset, Frame paramFrame) { + super(paramFrame, true); + this.parent = paramFrame; + this.session = paramTCComponentDataset.getSession(); + this.datasetComponent = paramTCComponentDataset; + initializeDialog(); + } + + public NamedReferencesDialog(TCComponentDataset paramTCComponentDataset, Dialog paramDialog) { + super(paramDialog, true); + this.parent = paramDialog; + this.session = paramTCComponentDataset.getSession(); + this.datasetComponent = paramTCComponentDataset; + initializeDialog(); + } + + public NamedReferencesDialog(TCComponentDataset paramTCComponentDataset) { + super(true); + this.session = paramTCComponentDataset.getSession(); + this.datasetComponent = paramTCComponentDataset; + initializeDialog(); + } + + private void initializeDialog() { + this.appReg = Registry.getRegistry(this); + setTitle(this.appReg.getString("command.TITLE")); + setModal(false); + JPanel jPanel1 = new JPanel(new VerticalLayout(5, 2, 2, 2, 2)); + getContentPane().add(jPanel1); + JPanel jPanel2 = new JPanel(new HorizontalLayout(2, 2, 2, 2, 2)); + JPanel jPanel3 = new JPanel(new ButtonLayout()); + TCPreferenceService tCPreferenceService = ((TCSession) this.session).getPreferenceService(); + String[] arrayOfString = tCPreferenceService.getStringArray(0, + "com.teamcenter.rac.commands.namedreferences.AdditionalColumnShown"); + this.truncateFileName = tCPreferenceService.getString(0, "TC_truncate_file_name"); + this.model = new NamedReferencesTableModel(arrayOfString); + this.table = new JTable(this.model); + this.table.setPreferredScrollableViewportSize(new Dimension(550, 100)); + RightTextRenderer rightTextRenderer = new RightTextRenderer(); + TableColumn tableColumn1 = getTableColumnByName("file_size"); + tableColumn1.setCellRenderer(rightTextRenderer); + this.table.setAutoResizeMode(0); + this.tableScrollPane = new JScrollPane(this.table); + DefaultTableCellRenderer defaultTableCellRenderer = new DefaultTableCellRenderer(); + defaultTableCellRenderer.setToolTipText(this.appReg.getString("changeFileName.TIP")); + TableColumn tableColumn2 = getTableColumnByName("original_file_name"); + tableColumn2.setCellRenderer(defaultTableCellRenderer); + AIFIdentifier[] arrayOfAIFIdentifier1 = this.model.getColumnIdentifiers(); + AIFIdentifier[] arrayOfAIFIdentifier2; + arrayOfAIFIdentifier2 = arrayOfAIFIdentifier1; + int i = arrayOfAIFIdentifier1.length; + for (byte b = 0; b < i; b++) { + AIFIdentifier aIFIdentifier = arrayOfAIFIdentifier2[b]; + TableColumn tableColumn = getTableColumnByName((String) aIFIdentifier.getColumnId()); + if (aIFIdentifier.getClientData() != null) { + Integer integer = (Integer) aIFIdentifier.getClientData(); + tableColumn.setPreferredWidth(integer.intValue()); + } + } + JPanel jPanel4 = new JPanel(new ButtonLayout()); + this.openButton = new JButton(this.appReg.getString("open")); + this.openButton.setMnemonic(this.appReg.getString("open.MNEMONIC").charAt(0)); + this.openButton.setToolTipText(this.appReg.getString("open.TOOLTIP")); + this.importButton = new JButton(this.appReg.getString("importbutton")); + this.importButton.setMnemonic(this.appReg.getString("import.MNEMONIC").charAt(0)); + this.importButton.setToolTipText(this.appReg.getString("import.TOOLTIP")); + this.exportButton = new JButton(this.appReg.getString("exportbutton")); + this.exportButton.setMnemonic(this.appReg.getString("export.MNEMONIC").charAt(0)); + this.exportButton.setToolTipText(this.appReg.getString("export.TOOLTIP")); + jPanel4.add(this.openButton); + jPanel4.add(this.importButton); + jPanel4.add(this.exportButton); + JPanel jPanel5 = new JPanel(new HorizontalLayout()); + this.cutButton = new JButton(this.appReg.getImageIcon("cut.ICON")); + this.cutButton.setFocusPainted(false); + this.cutButton.setMargin(new Insets(0, 0, 0, 0)); + this.cutButton.setToolTipText(this.appReg.getString("cut.TOOLTIP")); + this.copyButton = new JButton(this.appReg.getImageIcon("copy.ICON")); + this.copyButton.setFocusPainted(false); + this.copyButton.setMargin(new Insets(0, 0, 0, 0)); + this.copyButton.setToolTipText(this.appReg.getString("copy.TOOLTIP")); + this.pasteButton = new JButton(this.appReg.getImageIcon("paste.ICON")); + this.pasteButton.setFocusPainted(false); + this.pasteButton.setMargin(new Insets(0, 0, 0, 0)); + this.pasteButton.setToolTipText(this.appReg.getString("paste.TOOLTIP")); + this.deleteButton = new JButton(this.appReg.getImageIcon("delete.ICON")); + this.deleteButton.setFocusPainted(false); + this.deleteButton.setMargin(new Insets(0, 0, 0, 0)); + this.deleteButton.setToolTipText(this.appReg.getString("remove.TOOLTIP")); + jPanel5.add("right.nobind.center.center", this.deleteButton); + jPanel5.add("right.nobind.center.center", this.pasteButton); + jPanel5.add("right.nobind.center.center", this.copyButton); + jPanel5.add("right.nobind.center.center", this.cutButton); + jPanel2.add("left.nobind.left.center", jPanel4); + jPanel2.add("right.nobind.right.center", jPanel5); + JButton jButton = new JButton(this.appReg.getString("close")); + jButton.setMnemonic(this.appReg.getString("close.MNEMONIC").charAt(0)); + jPanel3.add(jButton); + JLabel jLabel1 = new JLabel(this.appReg.getImageIcon("namedreferences.ICON"), 0); + JLabel jLabel2 = new JLabel(this.appReg.getImageIcon("modeless.ICON")); + jLabel2.setToolTipText(this.appReg.getString("modeless.TOOLTIP")); + String str = allowedNameReferenceModification() ? "" : this.appReg.getString("CheckoutNamedRef.INFOMESSAGE"); + JLabel jLabel3 = new JLabel(str, 0); + JPanel jPanel6 = new JPanel(new HorizontalLayout(2, 0, 0, 0, 0)); + jPanel6.add("left", jLabel1); + jPanel6.add("left", jLabel3); + jPanel6.add("right", jLabel2); + jPanel1.add("top", jPanel6); + jPanel1.add("top.bind", new Separator()); + jPanel1.add("bottom.bind.center.top", jPanel3); + jPanel1.add("bottom.bind", new Separator()); + jPanel1.add("bottom.bind", jPanel2); + jPanel1.add("unbound.bind.center.top", this.tableScrollPane); + this.importButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent param1ActionEvent) { + NamedReferencesDialog.this.startImportFilesOperation(); + } + }); + this.exportButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent param1ActionEvent) { + NamedReferencesDialog.this.startExportFilesOperation(); + } + }); + this.openButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent param1ActionEvent) { + NamedReferencesDialog.this.startOpenFileOperation(); + } + }); + this.copyButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent param1ActionEvent) { + NamedReferencesDialog.this.startCopyOperation(); + } + }); + this.cutButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent param1ActionEvent) { + NamedReferencesDialog.this.startCutNamedRefOperation(); + } + }); + this.pasteButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent param1ActionEvent) { + NamedReferencesDialog.this.startPasteOperation(); + } + }); + this.deleteButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent param1ActionEvent) { + NamedReferencesDialog.this.startDeleteNamedRefOperation(); + } + }); + jButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent param1ActionEvent) { + NamedReferencesDialog.this.closePressed(); + } + }); + pack(); + centerToScreen(1.5D, 1.0D); + jButton.requestFocusInWindow(); + AbstractAIFOperation abstractAIFOperation = new AbstractAIFOperation() { + @Override + public void executeOperation() { + ArrayList arrayList = new ArrayList(); + arrayList.add(NamedReferencesDialog.this.datasetComponent); + TCComponentType.refresh(arrayList); + } + }; + abstractAIFOperation.addOperationListener(new InterfaceAIFOperationListener() { + @Override + public void startOperation(String param1String) { + } + + @Override + public void endOperation() { + NamedReferencesDialog.this.loadNamedReferences(); + } + }); + this.session.queueOperation(abstractAIFOperation); + this.session.addAIFComponentEventListener(this); + validateButtons(); + this.table.getSelectionModel().addListSelectionListener(new ListSelectionListener() { + @Override + public void valueChanged(ListSelectionEvent param1ListSelectionEvent) { + NamedReferencesDialog.this.validateButtons(); + } + }); + this.table.addKeyListener(new KeyListener() { + @Override + public void keyTyped(KeyEvent param1KeyEvent) { + } + + @Override + public void keyReleased(KeyEvent param1KeyEvent) { + } + + @Override + public void keyPressed(KeyEvent param1KeyEvent) { + if (param1KeyEvent.isControlDown() && param1KeyEvent.getKeyCode() == 67) { + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + StringBuilder stringBuilder = new StringBuilder(); + int[] arrayOfInt1 = NamedReferencesDialog.this.table.getSelectedRows(); + int i = NamedReferencesDialog.this.table.getColumnCount(); + int[] arrayOfInt2; + arrayOfInt2 = arrayOfInt1; + int j = arrayOfInt1.length; + for (byte b = 0; b < j; b++) { + int k = arrayOfInt2[b]; + for (byte b1 = 0; b1 < i; b1++) { + String str = String.valueOf(NamedReferencesDialog.this.table.getModel().getValueAt(k, b1)); + stringBuilder.append(str).append("\t"); + } + stringBuilder.append("\n"); + } + StringSelection stringSelection = new StringSelection(stringBuilder.toString()); + clipboard.setContents(stringSelection, null); + } + } + }); + } + + @Override + public void run() { + setVisible(true); + } + + public void closePressed() { + this.session.removeAIFComponentEventListener(this); + TableColumnModel tableColumnModel = this.table.getColumnModel(); + int i = tableColumnModel.getColumnCount(); + String[] arrayOfString1 = new String[i]; + String[] arrayOfString2 = new String[i]; + AIFIdentifier[] arrayOfAIFIdentifier = this.model.getColumnIdentifiers(); + for (byte b = 0; b < i; b++) { + TableColumn tableColumn = tableColumnModel.getColumn(b); + Integer integer = new Integer(tableColumn.getWidth()); + arrayOfString2[b] = integer.toString(); + arrayOfString1[b] = getPropertyName(this.table.getColumnName(b), arrayOfAIFIdentifier); + } + try { + Cookie cookie = Cookie.getCookie("namedreference", true); + cookie.setStringArray("columnname", arrayOfString1); + cookie.setStringArray("columnwidth", arrayOfString2); + cookie.close(); + } catch (Exception exception) { + } + disposeDialog(); + } + + private String getPropertyName(String paramString, AIFIdentifier[] paramArrayOfAIFIdentifier) { + String str = ""; + if (paramArrayOfAIFIdentifier != null) { + AIFIdentifier[] arrayOfAIFIdentifier; + arrayOfAIFIdentifier = paramArrayOfAIFIdentifier; + int i = paramArrayOfAIFIdentifier.length; + for (byte b = 0; b < i; b++) { + AIFIdentifier aIFIdentifier = arrayOfAIFIdentifier[b]; + if (aIFIdentifier.getColumnName().equals(paramString)) { + str = (String) aIFIdentifier.getColumnId(); + break; + } + } + } + return str; + } + + private TableColumn getTableColumnByName(String paramString) { + byte b1 = 0; + AIFIdentifier[] arrayOfAIFIdentifier = this.model.getColumnIdentifiers(); + for (byte b2 = 0; b2 < arrayOfAIFIdentifier.length; b2++) { + if (paramString.equals(arrayOfAIFIdentifier[b2].getColumnId())) { + b1 = b2; + break; + } + } + return this.table.getColumnModel().getColumn(b1); + } + + private int[] checkTableSelection(boolean paramBoolean1, boolean paramBoolean2) { + int[] arrayOfInt = this.table.getSelectedRows(); + if (arrayOfInt == null || arrayOfInt.length == 0) { + if (paramBoolean2) + MessageBox.post(this.parent, this.appReg.getString("noSelection"), + this.appReg.getString("warning.TITLE"), 4); + return null; + } + if (!paramBoolean1 && arrayOfInt.length > 1) { + if (paramBoolean2) + MessageBox.post(this.parent, this.appReg.getString("noMultipleSelection"), + this.appReg.getString("warning.TITLE"), 4); + return null; + } + return arrayOfInt; + } + + private void startExportFilesOperation() { + if (Debug.isOn("dataset,export")) + Debug.println("==> startExportFilesOperation"); + int[] arrayOfInt = checkTableSelection(true, true); + if (arrayOfInt == null) + return; + int i = arrayOfInt.length; + Vector vector = new Vector(); + TCComponent tCComponent = null; + for (byte b = 0; b < i; b++) { + tCComponent = this.model.getComponentAt(arrayOfInt[b]); + if (tCComponent instanceof TCComponentTcFile) { + vector.addElement(tCComponent); + final TCComponentTcFile tcFile = (TCComponentTcFile) tCComponent; + + // jd + boolean flag = true; + try { + TCSession tcSession = (TCSession) this.session; + TCPreferenceService service = tcSession.getPreferenceService(); + String[] pref = service.getStringValues("jd_dataset_download"); + String[] pref2 = service.getStringValues("jd_wl_type_classify"); + Map> typeClassify = new HashMap>(); + List list = new ArrayList(); + if (pref != null && pref.length > 0) { + System.out.println("ѡ===>" + Arrays.toString(pref)); + list = Arrays.asList(pref); + } + if (pref2 != null && pref2.length > 0) { + System.out.println("ѡ2===>" + Arrays.toString(pref2)); + for (String str : pref2) { + String[] row = str.split(":"); + typeClassify.put(row[0], Arrays.asList(row[1].split(","))); + } + } + AIFComponentContext[] parents = tcFile.whereReferenced(); + L1: for (AIFComponentContext aif : parents) { + TCComponentDataset dataset = (TCComponentDataset) aif.getComponent(); + System.out.println(dataset.getProperty("object_string")); + System.out.println(dataset.getType()); + if (list.contains(dataset.getType())) { + flag = false; + String currentUser = tcSession.getUser().getProperty("object_string"); + String owningUser = dataset.getProperty("owning_user"); + System.out.println("currentUser===>" + currentUser + ",owningUser===>" + owningUser); + if (currentUser.equals(owningUser)) { + System.out.println(""); + flag = true; + break; + } + String loginGroup = tcSession.getUser().getProperty("login_group"); + System.out.println("loginGroup===>" + loginGroup); + if (loginGroup.contains("dba")) { + System.out.println("dba"); + flag = true; + break; + } + AIFComponentContext[] revs = dataset.whereReferenced(); + for (AIFComponentContext aif1 : revs) { + if (aif1.getComponent() != null + && (aif1.getComponent() instanceof TCComponentItemRevision)) { + String type = aif1.getComponent().getType(); + System.out.println("===>" + type); + if ((loginGroup.contains("зһ") && typeClassify.get("GT") != null + && typeClassify.get("GT").contains(type)) + || (loginGroup.contains("з") && typeClassify.get("BL") != null + && typeClassify.get("BL").contains(type)) + || (loginGroup.contains("з岿") && typeClassify.get("BX") != null + && typeClassify.get("BX").contains(type))) { + System.out.println(""); + flag = true; + break L1; + } + } + } + } + } + } catch (Exception e) { + // TODO Auto-generated catch block + logger.error(e.getLocalizedMessage(), e); + e.printStackTrace(); + } + if (!flag) { + MessageBox.post(this.parent, "", "ʾ", MessageBox.WARNING); + return; + } + + if (this.exportFc == null) { + this.exportFc = new JFileChooser(getDefaultExportDirectory()); + this.exportFc.setFileSelectionMode(0); + this.exportFc.setApproveButtonText(this.appReg.getString("export")); + } + this.exportFc.rescanCurrentDirectory(); + String str1 = null; + try { + str1 = tcFile.getProperty("original_file_name"); + } catch (TCException tCException) { + logger.error(tCException.getLocalizedMessage(), tCException); + return; + } + this.exportFc.setDialogTitle( + String.valueOf(this.appReg.getString("exportFile.TITLE")) + " " + str1 + " ... "); + File file1 = this.exportFc.getCurrentDirectory(); + String str2 = String.valueOf(file1.getAbsolutePath()) + File.separator + str1; + File file2 = new File(str2); + int j = str1.lastIndexOf('.'); + String str3 = null; + if (j == -1) { + str3 = str1; + } else { + str3 = str1.substring(0, j); + } + if (Debug.isOn("dataset,export")) + Debug.println("Processing TCComponentTcFile [" + tcFile + "] defaultFileLocation [" + str2 + + "], file name [" + str1 + "] absFileName [" + str3 + "]"); + try { + TCPreferenceService tCPreferenceService = ((TCSession) this.session).getPreferenceService(); + String str = tCPreferenceService.getString(0, "Dataset_File_Export_Option"); + if (Debug.isOn("dataset,export")) + Debug.println("Pref [Dataset_File_Export_Option] value [" + str + "]"); + if (str != null && str.length() > 0) + if (str.equalsIgnoreCase("LOWERCASE")) { + file2 = new File(String.valueOf(file1.getAbsolutePath()) + File.separator + + str3.toLowerCase() + str1.substring(j)); + } else if (str.equalsIgnoreCase("UPPERCASE")) { + file2 = new File(String.valueOf(file1.getAbsolutePath()) + File.separator + + str3.toUpperCase() + str1.substring(j)); + } + } catch (Exception exception) { + if (Debug.isOn("dataset,export")) + Debug.printStackTrace(exception); + } + this.exportFc.setSelectedFile(file2); + if (Debug.isOn("dataset,export")) + Debug.println("setSelectedFile [" + file2.getName() + "]"); + File file3 = null; + Frame frame = Utilities.getCurrentFrame(); + if (this.exportFc.showOpenDialog(frame) == 0) + for (file3 = this.exportFc.getSelectedFile(); file3 != null && file3.exists(); file3 = null) { + if (ConfirmationDialog.post(frame, this.appReg.getString("fileExist.TITLE"), + this.appReg.getString("fileExists")) == 2) { + if (Debug.isOn("dataset,export")) + Debug.println("Deleting [" + file3.getName() + "]"); + if (!file3.delete()) { + MessageBox.post(this.appReg.getString("exportFailure.MESSAGE"), + this.appReg.getString("exportFailure.TITLE"), 4); + file3 = null; + } + continue; + } + if (this.exportFc.showOpenDialog(frame) == 0) { + file3 = this.exportFc.getSelectedFile(); + continue; + } + } + if (Debug.isOn("dataset,export")) + Debug.println("getSelectedFile [" + file3.getName() + "]"); + if (file3 != null) { + final File realDirFile = file3; + Utilities.setCookie("filechooser", true, "DatasetExport.DIR", realDirFile.getParent()); + this.session.queueOperation(new AbstractAIFOperation( + String.valueOf(this.appReg.getString("exportingFiles")) + tcFile + " ... ") { + @Override + public void executeOperation() { + NamedReferencesDialog.this.executeExportOperation(tcFile, realDirFile); + } + }); + } + } + } + if (vector.isEmpty()) { + MessageBox.post(this.parent, this.appReg.getString("noValidExportSelection"), + this.appReg.getString("warning.TITLE"), 4); + return; + } + } + + protected void executeExportOperation(TCComponentTcFile paramTCComponentTcFile, File paramFile) { + try { + if (Debug.isOn("dataset,export")) + Debug.println("getSelectedFile [" + paramFile.getName() + "] parent [[" + paramFile.getParent() + "]"); + paramTCComponentTcFile.getFile(this.datasetComponent, paramFile.getParent(), paramFile.getName()); + } catch (Exception exception) { + if (Debug.isOn("dataset,export")) + Debug.printStackTrace(exception); + MessageBox.post(this.parent, exception); + } + } + + private void startImportFilesOperation() { + TCComponentDatasetDefinition tCComponentDatasetDefinition = null; + NamedReferenceContext[] arrayOfNamedReferenceContext = null; + try { + tCComponentDatasetDefinition = this.datasetComponent.getDatasetDefinitionComponent(); + arrayOfNamedReferenceContext = tCComponentDatasetDefinition.getNamedReferenceContexts(); + } catch (Exception exception) { + MessageBox.post(this.parent, exception); + } + if (arrayOfNamedReferenceContext == null || arrayOfNamedReferenceContext.length == 0) { + MessageBox.post(this.parent, this.appReg.getString("noRefTypeFound"), + this.appReg.getString("warning.TITLE"), 4); + return; + } + Frame frame = Utilities.getCurrentFrame(); + TCFileSelectorService tCFileSelectorService = TCFileSelectorService.getInstance(); + IFilesSelector iFilesSelector = tCFileSelectorService.getFileSelector(); + if (iFilesSelector == null) { + ImportFilesFileChooser importFilesFileChooser = new ImportFilesFileChooser(tCComponentDatasetDefinition, + frame); + int i = importFilesFileChooser.showDialog(frame, null); + if (i == 0) { + final File f = importFilesFileChooser.getSelectedFile(); + if (f != null) { + String str1 = f.getAbsolutePath(); + final String type = importFilesFileChooser.getType(); + final String ref = importFilesFileChooser.getReferenceType(); + Registry registry = Registry.getRegistry(this); + if (!DatasetUtil.isValidFileForUpload(tCComponentDatasetDefinition, str1)) { + MessageBox.post(this.parent, registry.getString("invalidFile.MSG"), + registry.getString("warning.TITLE"), 4); + return; + } + Utilities.setCookie("filechooser", true, "DatasetImport.DIR", f.getParent()); + if (this.truncateFileName.equalsIgnoreCase("TRUE")) { + byte b = 30; + if (f.getName().length() > b) { + Display.getDefault().asyncExec(new Runnable() { + @Override + public void run() { + String str = NamedReferencesDialog.this.appReg.getString("fileNameTruncated"); + Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); + int i = ConfirmDialog.prompt(shell, + NamedReferencesDialog.this.appReg.getString("warning.TITLE"), str); + if (i == 2) + NamedReferencesDialog.this.executeImportOperation(f, type, ref); + } + }); + } else { + executeImportOperation(f, type, ref); + } + } else { + char c = '„'; + if (f.getName().length() > c) { + StringBuffer stringBuffer = (new StringBuffer( + this.appReg.getString("fileNameLengthTooLong"))).append(" (").append(c) + .append(")."); + MessageBox.post(this.parent, stringBuffer.toString(), + this.appReg.getString("warning.TITLE"), 4); + } else { + executeImportOperation(f, type, ref); + } + } + } else { + MessageBox.post(this.parent, this.appReg.getString("noImportFileSelection"), + this.appReg.getString("warning.TITLE"), 4); + } + } + } else { + try { + logger.debug("Delegating file selection to extensionPointImplementation class: " + + iFilesSelector.getClass()); + iFilesSelector.initialize(tCComponentDatasetDefinition, null, null); + List list = iFilesSelector.getSelectedFiles(); + if (list != null && !list.isEmpty()) { + logger.debug("File descriptor information for files selected by custom code"); + for (TCFileDescriptor tCFileDescriptor1 : list) + logger.debug(tCFileDescriptor1); + TCFileDescriptor tCFileDescriptor = list.get(0); + if (tCFileDescriptor != null) { + final File f = tCFileDescriptor.getFile(); + if (f != null) { + Utilities.setCookie("filechooser", true, "DatasetImport.DIR", f.getParent()); + } else { + logger.error("File object in TCFileDescriptor return by custom code is null"); + } + } else { + logger.error( + "TCFileDescriptor object in List returned by custom code is null"); + } + } else { + logger.debug( + "Custom code did not return any information about selected files. Looks like user has not selected any files"); + if (list == null) { + logger.debug("getSelectedFiles returned null"); + } else { + logger.debug("getSelectedFiles returned empty list"); + } + } + ImportFilesOperation importFilesOperation = new ImportFilesOperation(this.datasetComponent, + iFilesSelector, null, Utilities.getCurrentFrame()); + this.session.queueOperation(importFilesOperation); + } catch (Exception exception) { + MessageBox messageBox = new MessageBox(this.parent, exception); + messageBox.setModal(true); + messageBox.setVisible(true); + return; + } + } + } + + protected void executeImportOperation(File paramFile, String paramString1, String paramString2) { + ImportFilesOperation importFilesOperation = new ImportFilesOperation(this.datasetComponent, paramFile, + paramString1, null, paramString2, Utilities.getCurrentFrame()); + this.session.queueOperation(importFilesOperation); + } + + private void startOpenFileOperation() { + int[] arrayOfInt = checkTableSelection(false, true); + if (arrayOfInt == null) + return; + Registry registry = Registry.getRegistry("com.teamcenter.rac.common.actions.actions"); + TCComponent tCComponent = this.model.getComponentAt(arrayOfInt[0]); + if (tCComponent instanceof TCComponentTcFile) { + String str1 = (String) this.model.getValueAt(arrayOfInt[0], "object_name"); + if (this.selectedToolComponent == null) + return; + String str2 = (String) this.model.getValueAt(arrayOfInt[0], "original_file_name"); + AbstractAIFCommand abstractAIFCommand = (AbstractAIFCommand) registry.newInstanceFor("openAsCommand", + new Object[] { this.datasetComponent, this.selectedToolComponent, str2, + Utilities.getParentFrame(this) }); + abstractAIFCommand.executeModeless(); + } else if (tCComponent != null) { + AIFDesktop aIFDesktop = AIFUtility.getActiveDesktop(); + AbstractAIFCommand abstractAIFCommand = (AbstractAIFCommand) registry.newInstanceFor("openCommand", + new Object[] { aIFDesktop, tCComponent }); + abstractAIFCommand.executeModeless(); + } + } + + private void startCutNamedRefOperation() { + int[] arrayOfInt1 = checkTableSelection(true, true); + if (arrayOfInt1 == null) + return; + ArrayList arrayList1 = new ArrayList(); + ArrayList arrayList2 = new ArrayList(); + ArrayList arrayList3 = new ArrayList(); + ArrayList arrayList4 = new ArrayList(); + int[] arrayOfInt2; + arrayOfInt2 = arrayOfInt1; + int i = arrayOfInt1.length; + for (byte b = 0; b < i; b++) { + int j = arrayOfInt2[b]; + TCComponent tCComponent = this.model.getComponentAt(j); + if (tCComponent instanceof TCComponentTcFile) { + arrayList1.add(tCComponent); + String str1 = (String) this.model.getValueAt(j, "object_name"); + String str2 = (String) this.model.getValueAt(j, "original_file_name"); + arrayList2.add(str1); + arrayList3.add(str2); + } else { + String str = this.model.getNamedRefType(tCComponent); + if (str == null) { + MessageBox.post(this.parent, + String.valueOf(this.appReg.getString("cannotCut")) + " " + tCComponent.toString(), + this.appReg.getString("warning.TITLE"), 4); + } else { + arrayList1.add(tCComponent); + arrayList4.add(str); + } + } + } + if (!arrayList1.isEmpty()) { + int j = arrayList1.size(); + InterfaceAIFComponent[] arrayOfInterfaceAIFComponent = (InterfaceAIFComponent[]) arrayList1 + .toArray(new InterfaceAIFComponent[j]); + Registry registry = Registry.getRegistry("com.teamcenter.rac.common.actions.actions"); + AbstractAIFCommand abstractAIFCommand = (AbstractAIFCommand) registry.newInstanceFor("copyCommand", + new Object[] { arrayOfInterfaceAIFComponent }); + abstractAIFCommand.executeModeless(); + } + try { + sourceClassificationString = this.datasetComponent.getProperties(this.prop); + } catch (TCException tCException) { + MessageBox.post(this.parent, tCException); + } + if (!arrayList2.isEmpty()) { + int j = arrayList2.size(); + String[] arrayOfString1 = (String[]) arrayList2.toArray(new String[j]); + String[] arrayOfString2 = (String[]) arrayList3.toArray(new String[j]); + RemoveNamedRefOperation removeNamedRefOperation = new RemoveNamedRefOperation(this.datasetComponent, + arrayOfString1, arrayOfString2, Utilities.getCurrentFrame()); + this.session.queueOperation(removeNamedRefOperation); + } + if (!arrayList4.isEmpty()) { + int j = arrayList4.size(); + String[] arrayOfString = (String[]) arrayList4.toArray(new String[j]); + RemoveNamedRefOperation removeNamedRefOperation = new RemoveNamedRefOperation(this.datasetComponent, + arrayOfString, Utilities.getCurrentFrame()); + this.session.queueOperation(removeNamedRefOperation); + } + } + + private void startDeleteNamedRefOperation() { + int[] arrayOfInt1 = checkTableSelection(true, true); + if (arrayOfInt1 == null) + return; + if (ConfirmationDialog.post((Frame) this.parent, this.appReg.getString("delete.TITLE"), + this.appReg.getString("delete")) != 2) + return; + ArrayList arrayList1 = new ArrayList(); + ArrayList arrayList2 = new ArrayList(); + ArrayList arrayList3 = new ArrayList(); + ArrayList arrayList4 = new ArrayList(); + int[] arrayOfInt2; + arrayOfInt2 = arrayOfInt1; + int i = arrayOfInt1.length; + for (byte b = 0; b < i; b++) { + int j = arrayOfInt2[b]; + TCComponent tCComponent = this.model.getComponentAt(j); + if (tCComponent instanceof TCComponentTcFile) { + arrayList1.add(tCComponent); + String str1 = (String) this.model.getValueAt(j, "object_name"); + String str2 = (String) this.model.getValueAt(j, "original_file_name"); + arrayList2.add(str1); + arrayList3.add(str2); + } else { + String str = this.model.getNamedRefType(tCComponent); + if (str == null) { + MessageBox.post(this.parent, + String.valueOf(this.appReg.getString("cannotDelete")) + " " + tCComponent.toString(), + this.appReg.getString("warning.TITLE"), 4); + } else { + arrayList1.add(tCComponent); + arrayList4.add(str); + } + } + } + if (!arrayList2.isEmpty()) { + arrayList3.add(":::::::::://////////\\\\\\\\\\"); + arrayList2.add(":::::::::://////////\\\\\\\\\\"); + int j = arrayList2.size(); + String[] arrayOfString1 = (String[]) arrayList2.toArray(new String[j]); + String[] arrayOfString2 = (String[]) arrayList3.toArray(new String[j]); + RemoveNamedRefOperation removeNamedRefOperation = new RemoveNamedRefOperation(this.datasetComponent, + arrayOfString1, arrayOfString2, Utilities.getCurrentFrame()); + this.session.queueOperation(removeNamedRefOperation); + } + if (!arrayList4.isEmpty()) { + int j = arrayList4.size(); + String[] arrayOfString = (String[]) arrayList4.toArray(new String[j]); + RemoveNamedRefOperation removeNamedRefOperation = new RemoveNamedRefOperation(this.datasetComponent, + arrayOfString, Utilities.getCurrentFrame()); + this.session.queueOperation(removeNamedRefOperation); + } + } + + private void startCopyOperation() { + int[] arrayOfInt = checkTableSelection(true, true); + if (arrayOfInt == null) + return; + int i = arrayOfInt.length; + TCComponent[] arrayOfTCComponent = new TCComponent[i]; + for (byte b = 0; b < i; b++) { + arrayOfTCComponent[b] = this.model.getComponentAt(arrayOfInt[b]); + arrayOfTCComponent[b].setClientObject(this.model.getValueAt(arrayOfInt[b], "object_name")); + } + try { + sourceClassificationString = this.datasetComponent.getProperties(this.prop); + } catch (TCException b) { + TCException tCException; + MessageBox.post(this.parent, b); + } + Registry registry = Registry.getRegistry("com.teamcenter.rac.common.actions.actions"); + AbstractAIFCommand abstractAIFCommand = (AbstractAIFCommand) registry.newInstanceFor("copyCommand", + new Object[] { arrayOfTCComponent }); + abstractAIFCommand.executeModeless(); + } + + private void startPasteOperation() { + AIFClipboard aIFClipboard = AIFPortal.getClipboard(); + Transferable transferable = aIFClipboard.getContents(this); + if (transferable == null) { + MessageBox.post(this.parent, this.appReg.getString("clipboardEmpty"), + this.appReg.getString("warning.TITLE"), 4); + return; + } + Vector vector1 = new Vector(); + try { + vector1 = (Vector) transferable.getTransferData(new DataFlavor(Vector.class, "AIF Vector")); + } catch (Exception exception) { + MessageBox.post(this.parent, exception); + return; + } + if (vector1 == null || vector1.isEmpty()) { + MessageBox.post(this.parent, this.appReg.getString("clipboardEmpty"), + this.appReg.getString("warning.TITLE"), 4); + return; + } + Vector vector2 = new Vector(); + for (byte b = 0; b < vector1.size(); b++) { + if (vector1.elementAt(b) instanceof TCComponent) + vector2.addElement(vector1.elementAt(b)); + } + try { + destClassificationString = this.datasetComponent.getProperties(this.prop); + } catch (TCException b) { + TCException tCException; + MessageBox.post(this.parent, b); + } + if (sourceClassificationString != null && destClassificationString != null + && (!sourceClassificationString[0].equals(destClassificationString[0]) + || !sourceClassificationString[1].equals(destClassificationString[1]))) { + MessageBox.post(this.parent, this.appReg.getString("incorrectClassification"), + this.appReg.getString("error.TITLE"), 1); + return; + } + if (vector2.isEmpty()) { + MessageBox.post(this.parent, this.appReg.getString("cannotPaste"), this.appReg.getString("warning.TITLE"), + 4); + return; + } + TCComponent[] arrayOfTCComponent = (TCComponent[]) vector2.toArray(new TCComponent[vector2.size()]); + PasteNamedReferencesDialog pasteNamedReferencesDialog = new PasteNamedReferencesDialog(this.datasetComponent, + arrayOfTCComponent, Utilities.getCurrentFrame()); + pasteNamedReferencesDialog.setVisible(true); + } + + private void startModifyFileName(TCComponent paramTCComponent, String paramString) { + if (paramTCComponent == null || paramString == null || paramString.length() == 0) + return; + try { + String str = paramTCComponent.getProperty("original_file_name"); + if (str.equals(paramString)) + return; + if (paramTCComponent instanceof TCComponentTcFile) { + TCComponentTcFile tCComponentTcFile = (TCComponentTcFile) paramTCComponent; + tCComponentTcFile.setOriginalFileName(this.datasetComponent, paramString); + } else { + paramTCComponent.setProperty("object_name", paramString); + paramTCComponent.firePropertyChangeEvent("object_name"); + } + } catch (TCException tCException) { + MessageBox.post(this.parent, tCException); + } + } + + private void loadNamedReferences() { + String str = String.valueOf(this.appReg.getString("loadingNamedRef")) + this.datasetComponent.toString(); + this.session.queueOperation(new AbstractAIFOperation(str) { + @Override + public void executeOperation() { + TCComponent[] arrayOfTCComponent1; + NamedReferencesDialog.this.tableScrollPane.setCursor(Cursor.getPredefinedCursor(3)); + try { + arrayOfTCComponent1 = NamedReferencesDialog.this.datasetComponent.getNamedReferences(); + for (byte b = 0; b < arrayOfTCComponent1.length; b++) + arrayOfTCComponent1[b].clearCache(); + } catch (TCException tCException) { + MessageBox.post(NamedReferencesDialog.this.parent, tCException); + NamedReferencesDialog.this.tableScrollPane.setCursor(Cursor.getPredefinedCursor(0)); + return; + } + if (arrayOfTCComponent1.length == 0) { + NamedReferencesDialog.this.tableScrollPane.setCursor(Cursor.getPredefinedCursor(0)); + return; + } + final TCComponent[] namedRefsArray = arrayOfTCComponent1; + Utilities.invokeLater(new Runnable() { + @Override + public void run() { + try { + NamedReferencesDialog.this.model.removeAllRows(); + TCComponent[] arrayOfTCComponent; + arrayOfTCComponent = namedRefsArray; + int i = namedRefsArray.length; + for (byte b = 0; b < i; b++) { + TCComponent tCComponent = arrayOfTCComponent[b]; + NamedReferencesDialog.this.model.addRow(tCComponent); + } + } catch (Exception exception) { + MessageBox.post(NamedReferencesDialog.this.parent, exception); + } + NamedReferencesDialog.this.tableScrollPane.setCursor(Cursor.getPredefinedCursor(0)); + NamedReferencesDialog.this.tableScrollPane.validate(); + NamedReferencesDialog.this.tableScrollPane.repaint(); + NamedReferencesDialog.this.table.validate(); + NamedReferencesDialog.this.table.repaint(); + } + }); + } + }); + } + + @Override + public void processComponentEvents(AIFComponentEvent[] paramArrayOfAIFComponentEvent) { + AIFComponentEvent[] arrayOfAIFComponentEvent; + arrayOfAIFComponentEvent = paramArrayOfAIFComponentEvent; + int i = paramArrayOfAIFComponentEvent.length; + for (byte b = 0; b < i; b++) { + AIFComponentEvent aIFComponentEvent = arrayOfAIFComponentEvent[b]; + if (aIFComponentEvent instanceof com.teamcenter.rac.aif.kernel.AIFComponentChangeEvent) { + TCComponent tCComponent = (TCComponent) aIFComponentEvent.getComponent(); + if (tCComponent instanceof TCComponentDataset) { + TCComponentDataset tCComponentDataset = (TCComponentDataset) tCComponent; + if (tCComponentDataset == this.datasetComponent) { + Utilities.invokeLater(new Runnable() { + @Override + public void run() { + NamedReferencesDialog.this.model.removeAllRows(); + } + }); + loadNamedReferences(); + break; + } + } + } + } + } + + protected String getDefaultExportDirectory() { + String str = Utilities.getCookie("filechooser", "DatasetExport.DIR", true); + if (str == null || str.length() == 0) { + TCPreferenceService tCPreferenceService = ((TCSession) this.session).getPreferenceService(); + str = tCPreferenceService.getString(0, "defaultExportDirectory"); + } + if (str != null) { + str = str.trim(); + if (str.length() == 0) + str = null; + } + return str; + } + + private void validateButtons() { + boolean bool = !this.table.getSelectionModel().isSelectionEmpty(); + AIFClipboard aIFClipboard = AIFPortal.getClipboard(); + Transferable transferable = aIFClipboard.getContents(this); + this.copyButton.setEnabled(bool); + this.exportButton.setEnabled(bool); + this.openButton.setEnabled(bool); + this.cutButton.setEnabled((allowedNameReferenceModification() && bool)); + this.deleteButton.setEnabled((allowedNameReferenceModification() && bool)); + this.pasteButton.setEnabled((allowedNameReferenceModification() && transferable != null)); + this.importButton.setEnabled(allowedNameReferenceModification()); + try { + if (this.datasetComponent.isTypeOf("FullText")) { + this.deleteButton.setEnabled(false); + this.cutButton.setEnabled(false); + this.importButton.setEnabled(false); + this.pasteButton.setEnabled(false); + } + } catch (Exception exception) { + MessageBox.post(this.parent, exception); + } + } + + private boolean allowedNameReferenceModification() { + ViewEditHelper viewEditHelper = new ViewEditHelper(this.datasetComponent.getSession()); + return !(!viewEditHelper.isImplicitlyCheckoutable() && !this.datasetComponent.isCheckedOut()); + } + + private class NamedReferencesTableModel extends DefaultTableModel { + private Vector compVector = new Vector(); + + private AIFIdentifier[] identifiers = null; + + private Hashtable osLastModifiedDateTable = new Hashtable(); + + public NamedReferencesTableModel(String[] param1ArrayOfString) { + Registry registry = Registry.getRegistry(this); + String[] arrayOfString1 = null; + String[] arrayOfString2 = null; + try { + Cookie cookie = Cookie.getCookie("namedreference", true); + arrayOfString1 = cookie.getStringArray("columnname"); + arrayOfString2 = cookie.getStringArray("columnwidth"); + cookie.close(); + } catch (Exception exception) { + } + if (arrayOfString1 == null || arrayOfString1.length == 0) { + int j = 7; + if (param1ArrayOfString != null && param1ArrayOfString.length > 0) + j = 7 + param1ArrayOfString.length; + arrayOfString1 = new String[j]; + arrayOfString1[0] = "object_name"; + arrayOfString1[1] = "original_file_name"; + arrayOfString1[2] = "file_size"; + arrayOfString1[3] = "owning_site"; + arrayOfString1[4] = "object_type"; + arrayOfString1[5] = "last_mod_date"; + arrayOfString1[6] = "volume_tag"; + if (param1ArrayOfString != null && param1ArrayOfString.length > 0) + for (byte b1 = 0; b1 < param1ArrayOfString.length; b1++) + arrayOfString1[b1 + 7] = param1ArrayOfString[b1]; + } else if (param1ArrayOfString != null && param1ArrayOfString.length > 0) { + Vector vector = Utilities.convertArrayToVector(arrayOfString1); + String[] arrayOfString; + arrayOfString = param1ArrayOfString; + int j = param1ArrayOfString.length; + for (byte b1 = 0; b1 < j; b1++) { + String str = arrayOfString[b1]; + if (!vector.contains(str)) + vector.add(str); + } + arrayOfString1 = (String[]) vector.toArray(new String[vector.size()]); + } + int i = arrayOfString1.length; + Integer[] arrayOfInteger = new Integer[i]; + if (arrayOfString2 == null || arrayOfString2.length == 0) { + for (byte b1 = 0; b1 < i; b1++) + arrayOfInteger[b1] = null; + } else { + for (byte b1 = 0; b1 < i; b1++) { + if (b1 < arrayOfString2.length) { + arrayOfInteger[b1] = new Integer(arrayOfString2[b1]); + } else { + arrayOfInteger[b1] = null; + } + } + } + this.identifiers = new AIFIdentifier[i]; + for (byte b = 0; b < i; b++) { + String str = String.valueOf(arrayOfString1[b]) + ".NAME"; + this.identifiers[b] = new AIFIdentifier(registry.getString(str, arrayOfString1[b]), arrayOfString1[b]); + if (b < arrayOfInteger.length) + this.identifiers[b].setClientData(arrayOfInteger[b]); + } + setColumnIdentifiers(this.identifiers); + } + + public AIFIdentifier[] getColumnIdentifiers() { + return this.identifiers; + } + + @Override + public int getColumnCount() { + return this.identifiers.length; + } + + @Override + public int getRowCount() { + return (this.compVector == null) ? 0 : this.compVector.size(); + } + + @Override + public String getColumnName(int param1Int) { + return (String) this.identifiers[param1Int].getColumnName(); + } + + public Object getValueAt(int param1Int, String param1String) { + String str = ""; + TCComponent tCComponent = getComponentAt(param1Int); + try { + if (param1String.equals("object_name")) { + str = getNamedRefType(tCComponent); + } else if (param1String.equals("original_file_name")) { + if (tCComponent instanceof TCComponentTcFile) { + str = tCComponent.getProperty(param1String); + if (str.isEmpty()) + str = tCComponent.getProperty("object_string"); + } else { + str = tCComponent.getProperty("object_name"); + } + } else if (tCComponent instanceof TCComponentTcFile && param1String.equals("last_mod_date")) { + TCPreferenceService tCPreferenceService = ((TCSession) NamedReferencesDialog.this.session) + .getPreferenceService(); + boolean bool = tCPreferenceService.isTrue(4, "Display_OSFile_LMD_for_TCFile"); + if (Debug.isOn("dataset")) { + Debug.println("Preference [Display_OSFile_LMD_for_TCFile] value [" + bool + "]"); + if (bool) { + Debug.println("Use OSFile LMD for LMD of TCFile [" + tCComponent.toString() + "]"); + } else { + Debug.println("Use LMD of TCFile [" + tCComponent.toString() + "]"); + } + } + if (this.osLastModifiedDateTable.containsKey(tCComponent)) { + str = this.osLastModifiedDateTable.get(tCComponent); + } else { + if (bool) { + str = ((TCComponentTcFile) tCComponent).getOSLastModifiedDate(); + } else { + str = tCComponent.getProperty(param1String); + } + this.osLastModifiedDateTable.put(tCComponent, str); + } + } else { + str = tCComponent.getProperty(param1String); + } + } catch (TCException tCException) { + System.out.println(tCException.toString()); + } + return str; + } + + @Override + public Object getValueAt(int param1Int1, int param1Int2) { + String str = (String) this.identifiers[param1Int2].getColumnId(); + return getValueAt(param1Int1, str); + } + + public TCComponent getComponentAt(int param1Int) { + return this.compVector.elementAt(param1Int); + } + + @Override + public Class getColumnClass(int param1Int) { + return getValueAt(0, param1Int).getClass(); + } + + @Override + public boolean isCellEditable(int param1Int1, int param1Int2) { + boolean bool = false; + String str = (String) this.identifiers[param1Int2].getColumnId(); + TCComponent tCComponent = getComponentAt(param1Int1); + if (str.equals("original_file_name") && tCComponent instanceof TCComponentTcFile) { + IPropertyPolicyService iPropertyPolicyService = (IPropertyPolicyService) OSGIUtil + .getService(Activator.getDefault(), IPropertyPolicyService.class); + try { + if (fileNamePolicy == null) { + ObjectPropertyPolicy objectPropertyPolicy = new ObjectPropertyPolicy(); + objectPropertyPolicy.addType(new PolicyType("ImanFile", new String[] { "original_file_name" }, + new String[] { "includeIsModifiable" })); + fileNamePolicy = iPropertyPolicyService.createPropertyPolicy(objectPropertyPolicy); + } + iPropertyPolicyService.setPropertyPolicy(fileNamePolicy); + TCComponentType.getTCPropertiesViaSOA(tCComponent.getSession(), tCComponent, + new String[] { "original_file_name" }, false); + TCProperty tCProperty = tCComponent.getTCProperty("original_file_name"); + if (tCProperty.isModifiable()) + bool = true; + } catch (TCException tCException) { + logger.error(tCException.getLocalizedMessage(), tCException); + } finally { + iPropertyPolicyService.restorePropertyPolicy(); + } + } + return bool; + } + + @Override + public void setValueAt(Object param1Object, int param1Int1, int param1Int2) { + TCComponent tCComponent = getComponentAt(param1Int1); + NamedReferencesDialog.this.startModifyFileName(tCComponent, (String) param1Object); + fireTableCellUpdated(param1Int1, param1Int2); + } + + @Override + public void removeRow(int param1Int) { + TCComponent tCComponent = getComponentAt(param1Int); + if (this.osLastModifiedDateTable.containsKey(tCComponent)) + this.osLastModifiedDateTable.remove(tCComponent); + this.compVector.removeElementAt(param1Int); + fireTableRowsDeleted(param1Int, param1Int); + } + + public void removeAllRows() { + int i = getRowCount(); + for (byte b = 0; b < i; b++) + removeRow(0); + } + + public void addRow(TCComponent param1TCComponent) { + if (param1TCComponent == null) + return; + int i = this.compVector.size(); + this.compVector.addElement(param1TCComponent); + String[] arrayOfString = { "last_mod_date", "object_name", "owning_site", "object_type", "volume_tag", + "file_size" }; + arrayOfString = param1TCComponent.getValidPropertyNames(arrayOfString); + try { + param1TCComponent.getTCProperties(arrayOfString); + } catch (TCException tCException) { + Logger.getLogger(NamedReferencesTableModel.class).error(tCException.getLocalizedMessage(), tCException); + } + fireTableRowsInserted(i, i); + } + + private String getNamedRefType(TCComponent param1TCComponent) { + String str = ""; + try { + String[] arrayOfString1 = { "ref_list", "ref_names" }; + TCProperty[] arrayOfTCProperty = NamedReferencesDialog.this.datasetComponent + .getTCProperties(arrayOfString1); + TCProperty tCProperty1 = arrayOfTCProperty[0]; + TCProperty tCProperty2 = arrayOfTCProperty[1]; + if (tCProperty1 == null || tCProperty2 == null) + return str; + TCComponent[] arrayOfTCComponent = tCProperty1.getReferenceValueArray(); + String[] arrayOfString2 = tCProperty2.getStringValueArray(); + if (arrayOfTCComponent == null || arrayOfString2 == null) + return str; + int i = arrayOfTCComponent.length; + if (i != arrayOfString2.length) + return str; + byte b1 = -1; + for (byte b2 = 0; b2 < i; b2++) { + if (param1TCComponent == arrayOfTCComponent[b2]) { + b1 = b2; + break; + } + } + if (b1 != -1) + str = arrayOfString2[b1]; + } catch (TCException tCException) { + return ""; + } + return str; + } + } + + private static class RightTextRenderer extends DefaultTableCellRenderer { + public RightTextRenderer() { + setHorizontalAlignment(4); + } + + @Override + public Component getTableCellRendererComponent(JTable param1JTable, Object param1Object, boolean param1Boolean1, + boolean param1Boolean2, int param1Int1, int param1Int2) { + super.getTableCellRendererComponent(param1JTable, param1Object, param1Boolean1, param1Boolean2, param1Int1, + param1Int2); + if (param1Object != null) { + setText(param1Object.toString()); + } else { + setText(""); + } + return this; + } + } + + private class ToolSelectedDialog extends AbstractAIFDialog { + private JButton nextButton; + + private JList toolList; + + private DefaultListModel toolListModel; + + private String namedRef; + + public ToolSelectedDialog(Frame param1Frame, String param1String) { + super(param1Frame, true); + this.namedRef = param1String; + initializeDialog(); + } + + private void initializeDialog() { + setTitle(NamedReferencesDialog.this.appReg.getString("selectTool.TITLE")); + JPanel jPanel1 = new JPanel(new VerticalLayout(5, 2, 2, 2, 2)); + getContentPane().add(jPanel1); + this.toolListModel = new DefaultListModel(); + this.toolList = new JList(this.toolListModel); + this.toolList.setSelectionMode(0); + JScrollPane jScrollPane = new JScrollPane(this.toolList); + JPanel jPanel2 = new JPanel(new VerticalLayout(5, 2, 2, 2, 2)); + JLabel jLabel = new JLabel(NamedReferencesDialog.this.appReg.getString("userWizard")); + Font font = jLabel.getFont(); + font = new Font(font.getName(), 1, font.getSize()); + jLabel.setFont(font); + jPanel2.add("top.nobind.left.top", jLabel); + jPanel2.add("unbound.bind.center.center", jScrollPane); + JPanel jPanel3 = new JPanel(new HorizontalLayout(15, 2, 2, 2, 2)); + jPanel3.add("left.bind.left.center", new JLabel( + NamedReferencesDialog.this.appReg.getOverlayImageIcon("stepBackground.ICON", "newForm32.ICON", 1))); + jPanel3.add("unbound.bind.center.center", jPanel2); + JPanel jPanel4 = new JPanel(); + jPanel4.setLayout(new ButtonLayout(1, 3, 20)); + this.nextButton = new JButton(NamedReferencesDialog.this.appReg.getString("nextButton"), + NamedReferencesDialog.this.appReg.getImageIcon("next.ICON")); + this.nextButton.setHorizontalTextPosition(2); + this.nextButton.setMnemonic(NamedReferencesDialog.this.appReg.getString("next.MNEMONIC").charAt(0)); + this.nextButton.setEnabled(false); + this.nextButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent param2ActionEvent) { + NamedReferencesDialog.ToolSelectedDialog.this.doNextOperation(); + NamedReferencesDialog.ToolSelectedDialog.this.disposeDialog(); + } + }); + this.toolList.addListSelectionListener(new ListSelectionListener() { + @Override + public void valueChanged(ListSelectionEvent param2ListSelectionEvent) { + NamedReferencesDialog.ToolSelectedDialog.this.nextButton.requestFocusInWindow(); + } + }); + jPanel4.add(this.nextButton); + jPanel1.add("top.nobind.left.top", + new JLabel(NamedReferencesDialog.this.appReg.getImageIcon("Tool.ICON"), 0)); + jPanel1.add("top.bind.center.center", new Separator()); + jPanel1.add("unbound.bind.left.center", jPanel3); + jPanel1.add("bottom.bind.center.center", jPanel4); + jPanel1.add("bottom.bind.center.center", new Separator()); + loadTools(); + if (NamedReferencesDialog.this.toolComponents == null) + return; + if (NamedReferencesDialog.this.toolComponents.length == 1) { + NamedReferencesDialog.this.selectedToolComponent = NamedReferencesDialog.this.toolComponents[0]; + return; + } + this.toolList.setSelectedIndex(0); + this.nextButton.setEnabled(true); + setDefaultCloseOperation(0); + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent param2WindowEvent) { + NamedReferencesDialog.this.selectedToolComponent = null; + NamedReferencesDialog.ToolSelectedDialog.this.disposeDialog(); + } + }); + pack(); + centerToScreen(1.5D, 1.0D, 0.6D, 0.4D); + setVisible(true); + } + + private void loadTools() { + try { + NamedReferencesDialog.this.toolComponents = NamedReferencesDialog.this.datasetComponent + .getDatasetDefinitionComponent().getToolsForNamedRef(this.namedRef, 4); + } catch (TCException tCException) { + MessageBox.post(NamedReferencesDialog.this.parent, tCException); + return; + } + if (NamedReferencesDialog.this.toolComponents == null) + return; + TCComponent[] arrayOfTCComponent; + arrayOfTCComponent = NamedReferencesDialog.this.toolComponents; + int i = NamedReferencesDialog.this.toolComponents.length; + for (byte b = 0; b < i; b++) { + TCComponent tCComponent = arrayOfTCComponent[b]; + this.toolListModel.addElement(tCComponent); + } + this.toolList.revalidate(); + this.toolList.doLayout(); + this.toolList.repaint(); + } + + private void doNextOperation() { + NamedReferencesDialog.this.selectedToolComponent = (TCComponent) this.toolList.getSelectedValue(); + } + } +} + +/* + * Location: + * E:\work\plugins12_1\com.teamcenter.rac.common_12000.1.0.jar!/com/teamcenter/ + * rac/commands/namedreferences/NamedReferencesDialog.class Java compiler + * version: 8 (52.0) JD-Core Version: 1.0.7 + */ \ No newline at end of file diff --git a/com.connor.jd.plm/src/com/teamcenter/rac/commands/open/OpenCommand.java b/com.connor.jd.plm/src/com/teamcenter/rac/commands/open/OpenCommand.java new file mode 100644 index 0000000..116da93 --- /dev/null +++ b/com.connor.jd.plm/src/com/teamcenter/rac/commands/open/OpenCommand.java @@ -0,0 +1,871 @@ +package com.teamcenter.rac.commands.open; + +import java.awt.Dialog; +import java.awt.Frame; +import java.awt.Window; +import java.lang.reflect.InvocationTargetException; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import javax.swing.SwingUtilities; + +import org.apache.log4j.Logger; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IPerspectiveDescriptor; + +import com.teamcenter.rac.aif.AIFDesktop; +import com.teamcenter.rac.aif.AIFPortal; +import com.teamcenter.rac.aif.AbstractAIFCommand; +import com.teamcenter.rac.aif.AbstractAIFDialog; +import com.teamcenter.rac.aif.AbstractAIFOperation; +import com.teamcenter.rac.aif.ICommandListener; +import com.teamcenter.rac.aif.ICommandListenerEvent; +import com.teamcenter.rac.aif.IPerspectiveDef; +import com.teamcenter.rac.aif.IPerspectiveDefService; +import com.teamcenter.rac.aif.kernel.AIFComponentContext; +import com.teamcenter.rac.aif.kernel.AbstractAIFSession; +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; +import com.teamcenter.rac.aifrcp.AifrcpPlugin; +import com.teamcenter.rac.commands.newobjectlink.NewObjectLinkCommand; +import com.teamcenter.rac.commands.properties.PropertiesCommand; +import com.teamcenter.rac.common.Activator; +import com.teamcenter.rac.common.services.IOpenConfigurationService; +import com.teamcenter.rac.common.viewedit.IViewEditOperationListener; +import com.teamcenter.rac.common.viewedit.ViewEditHelper; +import com.teamcenter.rac.kernel.NamedReferenceContext; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentBOMView; +import com.teamcenter.rac.kernel.TCComponentBOMViewRevision; +import com.teamcenter.rac.kernel.TCComponentCfgAttachmentLine; +import com.teamcenter.rac.kernel.TCComponentDataset; +import com.teamcenter.rac.kernel.TCComponentDatasetDefinition; +import com.teamcenter.rac.kernel.TCComponentFnd0AbstractMarkupSpace; +import com.teamcenter.rac.kernel.TCComponentForm; +import com.teamcenter.rac.kernel.TCComponentItemRevision; +import com.teamcenter.rac.kernel.TCComponentReleaseStatus; +import com.teamcenter.rac.kernel.TCComponentStructureContext; +import com.teamcenter.rac.kernel.TCComponentTcFile; +import com.teamcenter.rac.kernel.TCComponentType; +import com.teamcenter.rac.kernel.TCComponentWolfObject; +import com.teamcenter.rac.kernel.TCComponentWorkContext; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCPreferenceService; +import com.teamcenter.rac.kernel.TCProperty; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.services.IOpenService; +import com.teamcenter.rac.util.ConfirmationDialog; +import com.teamcenter.rac.util.Instancer; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.rac.util.OSGIUtil; +import com.teamcenter.rac.util.PlatformHelper; +import com.teamcenter.rac.util.Registry; +import com.teamcenter.rac.util.SWTUIUtilities; +import com.teamcenter.rac.util.Utilities; +import com.teamcenter.rac.util.event.ClientEventDispatcher; +import com.teamcenter.rac.util.log.Debug; + +public class OpenCommand extends com.teamcenter.rac.aif.commands.open.OpenCommand { + private static final String[] SPECIAL_TYPES = new String[] { "Specification", "SpecElement", + "Specification Revision", "SpecElementRevision" }; + + private static final int TC_not_a_valid_operation_Tool = 9130; + + private static final int TC_asynchronous_upload_error = 0; + + protected AIFDesktop frame; + + private static final String[] MSOFILES = new String[] { ".doc", ".dot", ".xls", ".xlt", ".ppt", ".pot", ".docx", + ".dotx", ".xlsx", ".xltx", ".pptx", ".potx", ".docm", ".dotm", ".xlsm", ".xltm", ".pptm", ".potm", ".msg" }; + + public OpenCommand(AIFPortal paramAIFPortal, InterfaceAIFComponent paramInterfaceAIFComponent) { + super(paramAIFPortal, paramInterfaceAIFComponent); + } + + public OpenCommand(AIFPortal paramAIFPortal, InterfaceAIFComponent[] paramArrayOfInterfaceAIFComponent) { + super(paramAIFPortal, paramArrayOfInterfaceAIFComponent); + } + + public OpenCommand(AIFDesktop paramAIFDesktop, InterfaceAIFComponent paramInterfaceAIFComponent) { + super(paramAIFDesktop, paramInterfaceAIFComponent); + this.frame = paramAIFDesktop; + } + + public OpenCommand(AIFDesktop paramAIFDesktop, InterfaceAIFComponent[] paramArrayOfInterfaceAIFComponent) { + super(paramAIFDesktop, paramArrayOfInterfaceAIFComponent); + this.frame = paramAIFDesktop; + InterfaceAIFComponent interfaceAIFComponent = paramArrayOfInterfaceAIFComponent[0]; + if (interfaceAIFComponent instanceof TCComponentStructureContext) { + TCComponentStructureContext tCComponentStructureContext = (TCComponentStructureContext) interfaceAIFComponent; + TCComponentWorkContext tCComponentWorkContext = null; + TCSession tCSession = (TCSession) interfaceAIFComponent.getSession(); + try { + tCComponentWorkContext = (TCComponentWorkContext) tCComponentStructureContext + .getReferenceProperty("default_workcontext"); + if (tCComponentWorkContext != null && tCSession != null + && tCComponentWorkContext != tCSession.getCurrentWorkContext()) + tCSession.setCurrentWorkContext(tCComponentWorkContext); + } catch (Exception exception) { + } + } + } + + public OpenCommand(AIFDesktop paramAIFDesktop, Dialog paramDialog, + InterfaceAIFComponent paramInterfaceAIFComponent) { + super(paramAIFDesktop, paramDialog, paramInterfaceAIFComponent); + this.frame = paramAIFDesktop; + } + + public OpenCommand(AIFDesktop paramAIFDesktop, Dialog paramDialog, + InterfaceAIFComponent[] paramArrayOfInterfaceAIFComponent) { + super(paramAIFDesktop, paramDialog, paramArrayOfInterfaceAIFComponent); + this.frame = paramAIFDesktop; + } + + protected boolean checkReadOnly() { + return true; + } + + @Override + public int postReadOnlyConfirmation(String paramString) { + Registry registry = Registry.getRegistry(this); + return ConfirmationDialog.post(this.desktop, + String.valueOf(registry.getString("readOnly.TITLE")) + " " + paramString, + registry.getStringWithSubstitution("readOnly.MSG", new String[] { paramString }), + "FormReadOnlyConfirmation"); + } + + @Override + protected String resolveType(String[] paramArrayOfString, InterfaceAIFComponent paramInterfaceAIFComponent) + throws Exception { + String str1 = null; + TCComponent tCComponent = (TCComponent) paramInterfaceAIFComponent; + if (tCComponent.isTypeOf(SPECIAL_TYPES)) + return "Specification"; + if (tCComponent instanceof TCComponentBOMViewRevision) { + TCComponentBOMViewRevision tCComponentBOMViewRevision = (TCComponentBOMViewRevision) tCComponent; + TCComponent tCComponent1 = tCComponentBOMViewRevision.getRelatedComponent("bom_view"); + TCComponent tCComponent2 = tCComponent1.getRelatedComponent("parent_item"); + if (tCComponent2.isTypeOf(SPECIAL_TYPES)) + return "Specification"; + } + if (tCComponent instanceof TCComponentBOMView) { + TCComponentBOMView tCComponentBOMView = (TCComponentBOMView) tCComponent; + TCComponent tCComponent1 = tCComponentBOMView.getRelatedComponent("parent_item"); + if (tCComponent1.isTypeOf(SPECIAL_TYPES)) + return "Specification"; + } + List list = Arrays.asList(paramArrayOfString); + String str2 = tCComponent.getType(); + if (!(tCComponent instanceof com.teamcenter.rac.kernel.TCComponentPseudoFolder) && list.contains(str2)) { + str1 = str2; + } else { + (new String[1])[0] = "POM_object"; + String[] arrayOfString = (tCComponent instanceof com.teamcenter.rac.kernel.TCComponentPseudoFolder) + ? new String[1] + : tCComponent.getClassNameHierarchy(); + if (arrayOfString != null) { + String[] arrayOfString1; + int i = (arrayOfString1 = arrayOfString).length; + for (byte b = 0; b < i; b++) { + String str = arrayOfString1[b]; + if (list.contains(str)) { + str1 = str; + break; + } + } + } + } + return str1; + } + + @Override + protected String getRegisteredClass(InterfaceAIFComponent paramInterfaceAIFComponent, String paramString) + throws Exception { + if (paramString.equals("APPLICATION")) { + IOpenConfigurationService iOpenConfigurationService = (IOpenConfigurationService) OSGIUtil + .getService(Activator.getDefault(), IOpenConfigurationService.class); + String str = iOpenConfigurationService.getPerspectiveIdToOpenWith(paramInterfaceAIFComponent); + return (str != null && !str.isEmpty()) ? str : null; + } + return super.getRegisteredClass(paramInterfaceAIFComponent, paramString); + } + + @Override + protected boolean isReadOnly(InterfaceAIFComponent paramInterfaceAIFComponent) { + boolean bool = false; + if (paramInterfaceAIFComponent == null) + return bool; + if (this.session == null) + this.session = paramInterfaceAIFComponent.getSession(); + if (this.session == null || !(this.session instanceof TCSession) + || !(paramInterfaceAIFComponent instanceof TCComponent)) + return bool; + if (paramInterfaceAIFComponent instanceof TCComponentDataset + || paramInterfaceAIFComponent instanceof TCComponentForm) { + TCComponent tCComponent = (TCComponent) paramInterfaceAIFComponent; + try { + ArrayList arrayList = new ArrayList(); + arrayList.add(tCComponent); + TCComponentType.refresh(arrayList); + if (paramInterfaceAIFComponent instanceof TCComponentDataset) { + bool = ((TCComponentDataset) paramInterfaceAIFComponent).isEditable() ? false : true; + } else { + bool = tCComponent.okToModify() ? false : true; + } + } catch (Exception exception) { + Logger.getLogger(OpenCommand.class).error(exception.getLocalizedMessage(), exception); + } + } + return bool; + } + + @Override + protected boolean isUploading(InterfaceAIFComponent paramInterfaceAIFComponent) { + if (paramInterfaceAIFComponent == null || !(paramInterfaceAIFComponent instanceof TCComponentDataset)) + return false; + TCComponentDataset tCComponentDataset = (TCComponentDataset) paramInterfaceAIFComponent; + return tCComponentDataset.askUploadingFlag(); + } + + @Override + protected boolean openComponent(InterfaceAIFComponent paramInterfaceAIFComponent) throws Exception { + boolean bool1 = isSupportedComponent(paramInterfaceAIFComponent); + boolean bool2 = false; + if (bool1) + if (paramInterfaceAIFComponent.getType().equals("SimulationProcessStudio")) { + bool2 = openApplication(paramInterfaceAIFComponent); + } else if (((TCComponent) paramInterfaceAIFComponent).isTypeOf("Fnd0AbstractMarkupSpace")) { + bool2 = openMarkupSpaceInApplication((TCComponentFnd0AbstractMarkupSpace) paramInterfaceAIFComponent); + } else { + bool2 = super.openComponent(paramInterfaceAIFComponent); + } + return bool2; + } + + protected boolean isSupportedComponent(InterfaceAIFComponent paramInterfaceAIFComponent) throws TCException { + return true; + } + + @Override + protected boolean openByWindow(InterfaceAIFComponent paramInterfaceAIFComponent) throws Exception { + if (paramInterfaceAIFComponent instanceof TCComponentForm) { + if (((TCComponentForm) paramInterfaceAIFComponent).isTypeOf("Web Link")) { + TCComponentForm tCComponentForm = (TCComponentForm) paramInterfaceAIFComponent; + TCProperty[] arrayOfTCProperty = tCComponentForm.getFormTCProperties(); + TCProperty tCProperty = null; + if (arrayOfTCProperty != null) { + TCProperty[] arrayOfTCProperty1; + int i = (arrayOfTCProperty1 = arrayOfTCProperty).length; + for (byte b = 0; b < i; b++) { + TCProperty tCProperty1 = arrayOfTCProperty1[b]; + if (tCProperty1.getPropertyName().equals("url")) { + tCProperty = tCProperty1; + break; + } + } + } + if (tCProperty != null) + openWebLink(paramInterfaceAIFComponent.toString(), tCProperty.getStringValue()); + return true; + } + TCPreferenceService tCPreferenceService = ((TCComponent) paramInterfaceAIFComponent).getSession() + .getPreferenceService(); + String str = tCPreferenceService.getStringValue("Form_double_click"); + if (str != null && str.equalsIgnoreCase("edit")) { + openFormBasedOnPrefValue((TCComponentForm) paramInterfaceAIFComponent); + return true; + } + openFormByOpenWindowMethod((TCComponentForm) paramInterfaceAIFComponent); + return true; + } + if (paramInterfaceAIFComponent instanceof TCComponent + && ((TCComponent) paramInterfaceAIFComponent).isTypeOf("WolfObject")) { + String str = NewObjectLinkCommand.getObjCurrentUrl((TCComponentWolfObject) paramInterfaceAIFComponent, + (Frame) this.frame, (TCSession) this.session); + if (str != null) { + if (Debug.isOn("proxylink")) + Debug.println("Object URL: " + str); + openWebLink((String) null, str); + } else if (Debug.isOn("proxylink")) { + Debug.println("Object URL is NULL"); + } + return true; + } + return (paramInterfaceAIFComponent instanceof com.teamcenter.rac.kernel.TCComponentPseudoFolder) ? false + : super.openByWindow(paramInterfaceAIFComponent); + } + + private void openFormBasedOnPrefValue(final TCComponentForm formComp) { + final ViewEditHelper veHelper = new ViewEditHelper(formComp.getSession()); + Job job = new Job("") { + @Override + protected IStatus run(IProgressMonitor param1IProgressMonitor) { + param1IProgressMonitor.beginTask("Form Dialog..", -1); + try { + ViewEditHelper.CKO cKO = veHelper.getObjectState(formComp); + if (veHelper.isSWTPerspective()) { + OpenCommand.IC_PostReserveSWTListener iC_PostReserveSWTListener = new OpenCommand.IC_PostReserveSWTListener( + formComp); + if (ViewEditHelper.CKO.IMPLICITLY_CHECKOUTABLE.equals(cKO)) { + iC_PostReserveSWTListener.operationComplete(0); + } else { + veHelper.reserveSWTOperation(formComp, formComp.getSession(), iC_PostReserveSWTListener); + } + } else { + OpenCommand.IC_PostReserveCommandListener iC_PostReserveCommandListener = new OpenCommand.IC_PostReserveCommandListener( + formComp); + if (ViewEditHelper.CKO.IMPLICITLY_CHECKOUTABLE.equals(cKO)) { + iC_PostReserveCommandListener.commandDone(null); + } else { + veHelper.reserveOperation(formComp, iC_PostReserveCommandListener); + } + } + } catch (TCException tCException) { + Logger.getLogger(OpenCommand.class).error(tCException.getLocalizedMessage(), tCException); + } finally { + param1IProgressMonitor.done(); + } + return Status.OK_STATUS; + } + }; + job.setPriority(10); + job.schedule(); + } + + protected void openFormByOpenWindowMethod(TCComponentForm paramTCComponentForm) throws Exception { + IOpenService iOpenService = (IOpenService) OSGIUtil.getService(Activator.getDefault(), IOpenService.class, + "(objectType=" + paramTCComponentForm.getType() + ")"); + if (iOpenService != null) { + Logger.getLogger(OpenCommand.class).debug("Open service is found, use it to open the form."); + boolean bool1 = iOpenService.open(paramTCComponentForm); + if (bool1) { + Logger.getLogger(OpenCommand.class).debug("Form is opened by open service."); + return; + } + } else { + Logger.getLogger(OpenCommand.class).debug("No Open Service is found. Continue."); + } + String str = null; + TCPreferenceService tCPreferenceService = paramTCComponentForm.getSession().getPreferenceService(); + String[] arrayOfString = tCPreferenceService.getStringValues("defaultViewerConfig.VIEWERCONFIG"); + Boolean bool = tCPreferenceService.getLogicalValue("UsePropertyStylesheetPlatformRenderer"); + if (bool.booleanValue()) { + str = this.registry.getString("openFormDialog"); + } else if (arrayOfString != null && arrayOfString.length != 0) { + String str1 = String.valueOf(paramTCComponentForm.getType()) + ".FormViewer"; + if (Utilities.contains(str1, arrayOfString) || Utilities.contains("Form.FormViewer", arrayOfString)) + str = this.registry.getString("openFormDialog"); + } + openByWindow(paramTCComponentForm, str); + } + + @Override + protected boolean openByOpenMethod(InterfaceAIFComponent paramInterfaceAIFComponent) throws Exception { + if (paramInterfaceAIFComponent instanceof TCComponentDataset) { + if (paramInterfaceAIFComponent.getType().equals("FullText")) { + openFullText((TCComponentDataset) paramInterfaceAIFComponent); + } else if (paramInterfaceAIFComponent.getType().equals("ProgramView")) { + openProgramView((TCComponentDataset) paramInterfaceAIFComponent); + } else if (paramInterfaceAIFComponent.getType().equals("SnapShotViewData")) { + openProgramView((TCComponentDataset) paramInterfaceAIFComponent); + } else { + TCComponentDataset tCComponentDataset = (TCComponentDataset) paramInterfaceAIFComponent; + boolean bool = false; + TCComponentTcFile[] arrayOfTCComponentTcFile = tCComponentDataset.getTcFiles(); + if (arrayOfTCComponentTcFile != null && arrayOfTCComponentTcFile.length > 0) { + bool = validFileForMSOIntegration(arrayOfTCComponentTcFile[0]); + } else { + String[] arrayOfString = null; + TCComponentDatasetDefinition tCComponentDatasetDefinition = tCComponentDataset + .getDatasetDefinitionComponent(); + NamedReferenceContext[] arrayOfNamedReferenceContext = tCComponentDatasetDefinition + .getNamedReferenceContexts(); + if (arrayOfNamedReferenceContext != null) { + arrayOfString = new String[arrayOfNamedReferenceContext.length]; + for (byte b = 0; b < arrayOfNamedReferenceContext.length; b++) { + arrayOfString[b] = arrayOfNamedReferenceContext[b].getFileTemplate(); + if (arrayOfString[b] != null && arrayOfString[b].indexOf('.') > 0) { + String str = arrayOfString[b].substring(arrayOfString[b].lastIndexOf('.')); + String[] arrayOfString1; + int i = (arrayOfString1 = MSOFILES).length; + for (byte b1 = 0; b1 < i; b1++) { + String str1 = arrayOfString1[b1]; + if (str.equalsIgnoreCase(str1)) { + bool = true; + break; + } + } + } + if (bool) + break; + } + } + } + if (bool) + tCComponentDataset.setOfficeType(bool); + openDataset(tCComponentDataset); + } + return true; + } + return super.openByOpenMethod(paramInterfaceAIFComponent); + } + + private boolean openMarkupSpaceInApplication( + TCComponentFnd0AbstractMarkupSpace paramTCComponentFnd0AbstractMarkupSpace) throws Exception { + boolean bool = false; + TCComponent[] arrayOfTCComponent = paramTCComponentFnd0AbstractMarkupSpace + .getReferenceListProperty("fnd0ReferenceObjects"); + if (arrayOfTCComponent != null && arrayOfTCComponent.length == 1) { + TCComponent tCComponent = arrayOfTCComponent[0]; + String str = getRegisteredClass(tCComponent, "APPLICATION"); + if (str != null) { + IPerspectiveDescriptor iPerspectiveDescriptor = PlatformHelper.getCurrentPerspective(); + IPerspectiveDefService iPerspectiveDefService = (IPerspectiveDefService) OSGIUtil + .getService(AifrcpPlugin.getDefault(), IPerspectiveDefService.class); + IPerspectiveDef iPerspectiveDef = iPerspectiveDefService.findByLegacyAppId(str); + if (iPerspectiveDef != null) { + IPerspectiveDef iPerspectiveDef1 = iPerspectiveDefService.findByPerspective(iPerspectiveDescriptor); + if (iPerspectiveDef1 != null) { + String str1 = iPerspectiveDef1.getLegacyAppId(); + final InterfaceAIFComponent[] arrayOfInterfaceAIFComponent = new InterfaceAIFComponent[2]; + arrayOfInterfaceAIFComponent[0] = tCComponent; + arrayOfInterfaceAIFComponent[1] = paramTCComponentFnd0AbstractMarkupSpace; + if (!iPerspectiveDefService.isTypeOfLegacyApp(str, str1)) { + final String perspectiveId = iPerspectiveDef.getId(); + SWTUIUtilities.asyncExec(new Runnable() { + @Override + public void run() { + AifrcpPlugin.getDefault().openPerspective(perspectiveId); + AifrcpPlugin.getDefault().openComponents(perspectiveId, + arrayOfInterfaceAIFComponent); + } + }); + bool = true; + } else { + final IOpenService openService = iPerspectiveDef1.getOpenService(); + if (openService != null) { + Job job = new Job(Registry.getRegistry(this).getString("openComponent.MESSAGE")) { + @Override + protected IStatus run(IProgressMonitor param1IProgressMonitor) { + boolean bool = openService.open(arrayOfInterfaceAIFComponent); + return bool ? Status.OK_STATUS : Status.CANCEL_STATUS; + } + }; + job.schedule(); + bool = true; + } + } + } + } + } + } else { + bool = openApplication(paramTCComponentFnd0AbstractMarkupSpace); + } + return bool; + } + + public void openDataset(TCComponentDataset paramTCComponentDataset) throws Exception { + boolean bool = true; + boolean bool1 = isReadOnly(paramTCComponentDataset); + if (!bool1) + try { + paramTCComponentDataset.openForEdit(); + } catch (TCException | java.io.IOException tCException) { + if (tCException instanceof TCException) { + if (((TCException) tCException).getErrorCode() == 9130) { + MessageBox.post(tCException); + return; + } + if (((TCException) tCException).getErrorCode() == 0) + throw tCException; + } + int i = postReadOnlyConfirmation(paramTCComponentDataset.toString()); + if (i != 2) + return; + bool = false; + } catch (Exception exception) { + throw exception; + } + if (bool1 || !bool) + try { + paramTCComponentDataset.openForView(); + } catch (Exception exception) { + throw exception; + } + } + + public void openFullText(TCComponentDataset paramTCComponentDataset) { + boolean bool = isReadOnly(paramTCComponentDataset) ? false : true; + try { + AbstractAIFOperation abstractAIFOperation = (AbstractAIFOperation) Instancer.newInstanceEx( + "com.teamcenter.rac.requirementsmanager.commands.viewedit.ViewEditOperation", + new Object[] { paramTCComponentDataset, Boolean.valueOf(bool) }); + abstractAIFOperation.executeModeless(); + } catch (Exception exception) { + Logger.getLogger(OpenCommand.class).error(exception.getLocalizedMessage(), exception); + } + } + + public void openProgramView(TCComponentDataset paramTCComponentDataset) { + try { + openApplication(paramTCComponentDataset); + } catch (Exception exception) { + Logger.getLogger(OpenCommand.class).error(exception.getLocalizedMessage(), exception); + } + } + + @Override + protected boolean isReleased(List paramList) { + final AbstractAIFDialog effDia; + try { + if (!((TCSession) this.session).isInV7Mode()) + return true; + } catch (Exception exception) { + MessageBox.post(exception); + } + TCComponentReleaseStatus[] arrayOfTCComponentReleaseStatus = new TCComponentReleaseStatus[paramList.size()]; + for (byte b = 0; b < arrayOfTCComponentReleaseStatus.length; b++) + arrayOfTCComponentReleaseStatus[b] = (TCComponentReleaseStatus) paramList.get(b); + try { + effDia = (AbstractAIFDialog) Instancer.newInstance( + "com.teamcenter.rac.effectivity.ReleaseStatusEffectivityDialog", + new Object[] { arrayOfTCComponentReleaseStatus, this.frame }); + } catch (Exception exception) { + MessageBox.post(exception, true); + return true; + } + Runnable runnable = new Runnable() { + @Override + public void run() { + effDia.run(); + } + }; + SwingUtilities.invokeLater(runnable); + return true; + } + + @Override + protected boolean isArchived(InterfaceAIFComponent paramInterfaceAIFComponent) { + boolean bool = false; + if (paramInterfaceAIFComponent == null) + return bool; + if (this.session == null) + this.session = paramInterfaceAIFComponent.getSession(); + if (this.session == null || !(this.session instanceof TCSession) + || !(paramInterfaceAIFComponent instanceof TCComponent)) + return bool; + if (paramInterfaceAIFComponent instanceof TCComponentDataset + || paramInterfaceAIFComponent instanceof TCComponentForm) { + TCComponent tCComponent = (TCComponent) paramInterfaceAIFComponent; + try { + String str = tCComponent.getProperty("archive_date"); + if (str != null && str.length() > 0) + bool = true; + } catch (Exception exception) { + Logger.getLogger(OpenCommand.class).error(exception.getLocalizedMessage(), exception); + } + } + return bool; + } + + @Override + protected void executeCommand() throws Exception { + final Registry commandRegistry = Registry.getRegistry(this); + TCPreferenceService tCPreferenceService = (TCPreferenceService) OSGIUtil.getService(Activator.getDefault(), + TCPreferenceService.class); + final Integer prefValue = tCPreferenceService.getIntegerValue("TCMaxOpenViewsLimit"); + InterfaceAIFComponent[] arrayOfInterfaceAIFComponent = new InterfaceAIFComponent[prefValue.intValue()]; + if (this.components.length > prefValue.intValue()) { + for (byte b = 0; b < prefValue.intValue(); b++) + arrayOfInterfaceAIFComponent[b] = this.components[b]; + this.components = arrayOfInterfaceAIFComponent; + final Display display = PlatformHelper.getCurrentDisplay(); + display.asyncExec(new Runnable() { + @Override + public void run() { + MessageDialog messageDialog = new MessageDialog(display.getActiveShell(), + commandRegistry.getString("tooManyViews.TITLE"), null, + MessageFormat.format(commandRegistry.getString("tooManyViewsError.MSG"), + new Object[] { prefValue }), + 4, new String[] { commandRegistry.getString("openViewDialog_buttonOK"), + commandRegistry.getString("openViewDialog_buttonCancel") }, + 0); + if (messageDialog.open() != 0) + return; + OpenCommand.this.openComponents(); + } + }); + } else { + openComponents(); + } + } + + private void openComponents() { + this.session.queueOperation(new AbstractAIFOperation(Registry.getRegistry(this).getString("opening")) { + @Override + public final void executeOperation() throws Exception { + Registry registry = Registry.getRegistry(this); + Vector vector = new Vector(); + InterfaceAIFComponent[] arrayOfInterfaceAIFComponent; + int i = (arrayOfInterfaceAIFComponent = OpenCommand.this.components).length; + for (byte b = 0; b < i; b++) { + InterfaceAIFComponent interfaceAIFComponent1 = arrayOfInterfaceAIFComponent[b]; + InterfaceAIFComponent interfaceAIFComponent2 = interfaceAIFComponent1; + System.out.println(interfaceAIFComponent2); + // jd + if (interfaceAIFComponent2 instanceof TCComponentDataset) { + + try { + TCSession tcSession = (TCSession) interfaceAIFComponent2.getSession(); + TCPreferenceService service = tcSession.getPreferenceService(); + String[] pref = service.getStringValues("jd_dataset_download"); + String[] pref2 = service.getStringValues("jd_wl_type_classify"); + Map> typeClassify = new HashMap>(); + List list = new ArrayList(); + if (pref != null && pref.length > 0) { + System.out.println("ѡ===>" + Arrays.toString(pref)); + list = Arrays.asList(pref); + } + if (pref2 != null && pref2.length > 0) { + System.out.println("ѡ2===>" + Arrays.toString(pref2)); + for (String str : pref2) { + String[] row = str.split(":"); + typeClassify.put(row[0], Arrays.asList(row[1].split(","))); + } + } + TCComponentDataset dataset = (TCComponentDataset) interfaceAIFComponent2; + System.out.println(dataset.getProperty("object_string")); + System.out.println(dataset.getType()); + if (list.contains(dataset.getType())) { + boolean flag = false; + String currentUser = tcSession.getUser().getProperty("object_string"); + String owningUser = dataset.getProperty("owning_user"); + System.out.println("currentUser===>" + currentUser + ",owningUser===>" + owningUser); + if (currentUser.equals(owningUser)) { + System.out.println(""); + flag = true; + } + String loginGroup = tcSession.getUser().getProperty("login_group"); + System.out.println("loginGroup===>" + loginGroup); + if (loginGroup.contains("dba")) { + System.out.println("dba"); + flag = true; + } + if (!flag) { + AIFComponentContext[] revs = dataset.whereReferenced(); + for (AIFComponentContext aif1 : revs) { + if (aif1.getComponent() != null + && (aif1.getComponent() instanceof TCComponentItemRevision)) { + String type = aif1.getComponent().getType(); + System.out.println("===>" + type); + if ((loginGroup.contains("зһ") && typeClassify.get("GT") != null + && typeClassify.get("GT").contains(type)) + || (loginGroup.contains("з") && typeClassify.get("BL") != null + && typeClassify.get("BL").contains(type)) + || (loginGroup.contains("з岿") && typeClassify.get("BX") != null + && typeClassify.get("BX").contains(type))) { + System.out.println(""); + flag = true; + break; + } + } + } + } + if (!flag) { + MessageBox.post("", "ʾ", MessageBox.WARNING); + return; + } + } + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + interfaceAIFComponent2 = OpenCommand.this.getOpeningComponent(interfaceAIFComponent2); + if (interfaceAIFComponent2 instanceof TCComponentReleaseStatus) { + vector.addElement(interfaceAIFComponent2); + continue; + } + if (OpenCommand.this.isArchived(interfaceAIFComponent2)) { + MessageBox.post(OpenCommand.this.desktop, + String.valueOf(interfaceAIFComponent2.toString()) + " " + + registry.getString("archivedObject.MSG"), + registry.getString("archivedObject.TITLE"), 4); + continue; + } + if (OpenCommand.this.checkReadOnly() && OpenCommand.this.isReadOnly(interfaceAIFComponent2)) { + TCComponent tCComponent = null; + if (interfaceAIFComponent2 instanceof TCComponent) { + tCComponent = (TCComponent) interfaceAIFComponent2; + tCComponent.clearCache("checked_out_user"); + } + String str2 = ""; + int j = 0; + String str1 = interfaceAIFComponent2.getProperty("checked_out_user").trim(); + if (!str1.equals("")) { + Registry registry1 = Registry.getRegistry(this); + str2 = MessageFormat.format(registry1.getString("checkedOut.MSG"), new Object[] { str1 }); + j = ConfirmationDialog.post(OpenCommand.this.desktop, + String.valueOf(registry1.getString("checkedOut.TITLE")) + " " + + interfaceAIFComponent2.toString(), + String.valueOf(interfaceAIFComponent2.toString()) + " " + str2, + "FormReadOnlyConfirmation"); + } else { + j = OpenCommand.this.postReadOnlyConfirmation(interfaceAIFComponent2.toString()); + } + if (j != 2) + continue; + } + if (OpenCommand.this.isUploading(interfaceAIFComponent2)) { + int j = OpenCommand.this.postUploadingConfirmation(interfaceAIFComponent2.toString()); + if (j != 2) + continue; + } + AbstractAIFSession abstractAIFSession = interfaceAIFComponent2.getSession(); + try { + setStatus(interfaceAIFComponent2.toString()); + OpenCommand.this.processOpen(interfaceAIFComponent2); + } catch (InvocationTargetException invocationTargetException) { + MessageBox messageBox = new MessageBox(OpenCommand.this.desktop, + invocationTargetException.getTargetException().getCause().toString(), + registry.getString("unableToOpen"), 1); + messageBox.setModal(true); + messageBox.setVisible(true); + } catch (Exception exception) { + Logger.getLogger(OpenCommand.class).error(exception.getLocalizedMessage(), exception); + String str = String.valueOf(registry.getString("unableToOpen", "Unable to open ")) + " " + + interfaceAIFComponent2.toString(); + abstractAIFSession.setStatus(str); + MessageBox messageBox = new MessageBox(OpenCommand.this.desktop, str, + exception.getLocalizedMessage(), registry.getString("unableToOpen"), 1); + messageBox.setModal(true); + messageBox.setVisible(true); + } + continue; + } + if (!vector.isEmpty()) + OpenCommand.this.isReleased(vector); + } + }); + } + + @Override + protected InterfaceAIFComponent getOpeningComponent(InterfaceAIFComponent paramInterfaceAIFComponent) + throws Exception { + TCComponent tCComponent = (TCComponent) paramInterfaceAIFComponent; + InterfaceAIFComponent interfaceAIFComponent = paramInterfaceAIFComponent; + if (paramInterfaceAIFComponent instanceof TCComponentCfgAttachmentLine) + tCComponent = ((TCComponentCfgAttachmentLine) paramInterfaceAIFComponent).getUnderlyingComponent(); + return tCComponent; + } + + public static void openWebLink(String paramString1, String paramString2) { + ClientEventDispatcher.fireEventNow(OpenCommand.class, "com/teamcenter/rac/aifrcp/browser/launchRequest", + new Object[] { "com/teamcenter/rac/aifrcp/browser/urlToOpen", paramString2, + "com/teamcenter/rac/aifrcp/browser/title", paramString1 }); + } + + @Override + protected boolean openProperties(InterfaceAIFComponent paramInterfaceAIFComponent) throws Exception { + if (paramInterfaceAIFComponent instanceof TCComponent) { + TCComponent[] arrayOfTCComponent = { (TCComponent) paramInterfaceAIFComponent }; + Window window = (this.parentWindow != null) ? this.parentWindow : this.desktop; + PropertiesCommand propertiesCommand = new PropertiesCommand(arrayOfTCComponent, window); + propertiesCommand.executeModeless(); + return true; + } + return false; + } + + private boolean validFileForMSOIntegration(TCComponentTcFile paramTCComponentTcFile) throws Exception { + boolean bool = false; + if (paramTCComponentTcFile != null) { + String str = paramTCComponentTcFile.getProperty("original_file_name"); + if (str != null && str.indexOf('.') > 0) { + String str1 = str.substring(str.lastIndexOf('.')); + String[] arrayOfString; + int i = (arrayOfString = MSOFILES).length; + for (byte b = 0; b < i; b++) { + String str2 = arrayOfString[b]; + if (str1.equalsIgnoreCase(str2)) { + bool = true; + break; + } + } + } + } + return bool; + } + + private void openForm(final TCComponent component) { + Runnable runnable = new Runnable() { + @Override + public void run() { + try { + OpenCommand.this.openFormByOpenWindowMethod((TCComponentForm) component); + } catch (Exception exception) { + Logger.getLogger(OpenCommand.class).error(exception.getLocalizedMessage(), exception); + } + } + }; + SwingUtilities.invokeLater(runnable); + } + + private class IC_PostReserveCommandListener implements ICommandListener { + private final TCComponent m_component; + + public IC_PostReserveCommandListener(TCComponent param1TCComponent) { + this.m_component = param1TCComponent; + } + + @Override + public void commandDone(ICommandListenerEvent param1ICommandListenerEvent) { + AbstractAIFCommand abstractAIFCommand = (param1ICommandListenerEvent != null) + ? param1ICommandListenerEvent.getCommand() + : null; + OpenCommand.this.openForm(this.m_component); + if (abstractAIFCommand != null) + param1ICommandListenerEvent.getCommand().removeCommandListener(this); + } + + @Override + public void commandStarting(ICommandListenerEvent param1ICommandListenerEvent) { + } + } + + private class IC_PostReserveSWTListener implements IViewEditOperationListener { + private final TCComponent m_component; + + public IC_PostReserveSWTListener(TCComponentForm param1TCComponentForm) { + this.m_component = param1TCComponentForm; + } + + @Override + public void operationComplete(int param1Int) { + OpenCommand.this.openForm(this.m_component); + } + + @Override + public void operationError(TCException param1TCException) { + Logger.getLogger(OpenCommand.class).error(param1TCException.getLocalizedMessage(), param1TCException); + } + } +} + +/* + * Location: + * C:\Users\5rKB5bPlusD\Desktop\com.teamcenter.rac.common_12000.2.0.jar!\com\ + * teamcenter\rac\commands\open\OpenCommand.class Java compiler version: 8 + * (52.0) JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/com.connor.jd.plm/src/com/teamcenter/rac/kernel/DatasetDisable.java b/com.connor.jd.plm/src/com/teamcenter/rac/kernel/DatasetDisable.java deleted file mode 100644 index c13a2c2..0000000 --- a/com.connor.jd.plm/src/com/teamcenter/rac/kernel/DatasetDisable.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.teamcenter.rac.kernel; - -import com.teamcenter.rac.aif.kernel.AIFComponentContext; - -public class DatasetDisable implements InterfaceDatasetAction { - - @Override - public int preProcess(TCComponentDataset paramTCComponentDataset, AEShell paramAEShell, int paramInt) { - // TODO Auto-generated method stub - System.out.println("DatasetDisable"); - TCSession session = paramTCComponentDataset.getSession(); - try { - String currentUser = session.getUser().getProperty("object_string"); - String owningUser = paramTCComponentDataset.getTCProperty("owning_user").getTCComponent() - .getProperty("object_string"); - if (currentUser.equals(owningUser)) { - System.out.println(""); - return 0; - } - String loginGroup = session.getUser().getTCProperty("login_group").getTCComponent() - .getProperty("full_name"); - System.out.println("loginGroup===>" + loginGroup); - AIFComponentContext[] parents = paramTCComponentDataset.whereReferenced(); - for (AIFComponentContext aif : parents) { - System.out.println("===>" + aif.getComponent().getType()); - if (aif.getComponent() != null && (aif.getComponent() instanceof TCComponentItemRevision)) { - String itemId = aif.getComponent().getProperty("item_id"); - System.out.println("itemId===>" + itemId); - if ((itemId.startsWith("GT") && "зһ".contentEquals(loginGroup)) - || (itemId.startsWith("BL") && "з".contentEquals(loginGroup)) - || itemId.startsWith("BX") && "з岿".contentEquals(loginGroup)) { - System.out.println(""); - return 0; - } - } - } - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return -1; - } - - @Override - public boolean postProcess(TCComponentDataset paramTCComponentDataset, String paramString, int paramInt) { - // TODO Auto-generated method stub - return false; - } -} diff --git a/com.connor.jd.plm/src/com/teamcenter/rac/kernel/kernel_user.properties b/com.connor.jd.plm/src/com/teamcenter/rac/kernel/kernel_user.properties deleted file mode 100644 index 00f69d4..0000000 --- a/com.connor.jd.plm/src/com/teamcenter/rac/kernel/kernel_user.properties +++ /dev/null @@ -1,2 +0,0 @@ -UGPART.ACTION_OBJECT=com.teamcenter.rac.kernel.DatasetDisable -UGMASTER.ACTION_OBJECT=com.teamcenter.rac.kernel.DatasetDisable \ No newline at end of file diff --git a/com.connor.jd.plm/src/config/db.setting b/com.connor.jd.plm/src/config/db.setting index 6ad0551..c668ca1 100644 --- a/com.connor.jd.plm/src/config/db.setting +++ b/com.connor.jd.plm/src/config/db.setting @@ -1,7 +1,7 @@ ## db.settingļ -#url = jdbc:oracle:thin:@localhost:1521:TC -url = jdbc:oracle:thin:@10.20.4.75:1521:TC12 +url = jdbc:oracle:thin:@localhost:1521:TC +#url = jdbc:oracle:thin:@10.20.4.75:1521:TC12 user = infodba pass = infodba