You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
com.px.plm/bin/com/connor/jd/plm/dialogs/BOMManagementFrame20200826改...

2146 lines
80 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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[] { "ѡ<><D1A1>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD>", "<22><>λ", "<22><><EFBFBD><EFBFBD>", "״̬" };
private String[] colDisplayNames2 = new String[] { "<22><><EFBFBD><EFBFBD>", "<22>޸<EFBFBD><DEB8>û<EFBFBD>", "<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" };
private JPanel root;
private Map<String, BOMManageTableBean> tableDataMap = new HashMap<String, BOMManageTableBean>();
private BOMManagementFrame $this;
private List<Entity> logDataList;
private Map<String, TCComponentBOMWindow> winMap = new HashMap<String, TCComponentBOMWindow>();
private TCComponentItemRevision targetRev;
private TCComponentItemRevision targetRev2;
private boolean isLogcreated = false;
private int doIndex = 0;
private boolean complate = false;
private List<String> checkItemType = new ArrayList<String>();
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<String, int[]> uiSize = new HashMap<>();
private JPanel p1;
private JPanel p2;
private JPanel p3;
private JPanel p4;
private JPanel p5;
private Set<TCComponentItemRevision> 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<4F><4D><EFBFBD><EFBFBD>");
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<CheckBoxPo> unitVector = new Vector<CheckBoxPo>();
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();
}
// ͷ<><CDB7>
JPanel topBtnPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
topBtns = new JButton[5];
topBtns[0] = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD>滻");
topBtns[1] = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
topBtns[2] = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
topBtns[3] = new JButton("<22><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>");
topBtns[4] = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־");
// topBtns[5] = new JButton("<22><><EFBFBD>԰<EFBFBD>ť");
topBtns[0].setSelected(true);
for (JButton btn : topBtns) {
topBtnPanel.add(btn);
btn.addActionListener(panelSwitch());
}
container.add(topBtnPanel, BorderLayout.NORTH);
// root
root = new JPanel(rootSwitch);
// <20><><EFBFBD><EFBFBD><EFBFBD>
p1 = new JPanel();
p1.setLayout(null);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB><EFBFBD><EFBFBD>
p1Left = new JPanel();
p1Left.setLayout(null);
p1Left.setBounds(0, 0, 800, 800);
p1Left.setBorder(BorderFactory.createEtchedBorder());
p1TargetLabel = new JLabel("Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>");
p1TargetLabel.setBounds(20, 20, 100, 25);
p1TargetBtn = new JButton();
p1TargetBtn.setBounds(130, 20, 400, 25);
p1ReplaceLabel = new JLabel("<22><EFBFBD><E6BBBB><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>");
p1ReplaceLabel.setBounds(20, 60, 100, 25);
p1ReplaceBtn = new JButton();
p1ReplaceBtn.setBounds(130, 60, 400, 25);
p1UnitLabel = new JLabel("<22><>λ");
p1UnitLabel.setBounds(560, 60, 50, 25);
p1UnitCombo = new KeyValComboBox(unitVector);
p1UnitCombo.setBounds(610, 60, 50, 25);
p1NumLabel = new JLabel("<22><><EFBFBD><EFBFBD>");
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<DefaultTableModel> p1sorter = new TableRowSorter<DefaultTableModel>(p1model);
p1Table.setRowSorter(p1sorter);
p1jsp = new JScrollPane(p1Table);
p1jsp.setBounds(20, 130, 760, 500);
p1BottomBtn1 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p1BottomBtn1.setBounds(80, 650, 100, 25);
p1BottomBtn2 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD>滻");
p1BottomBtn2.setBounds(260, 650, 100, 25);
p1BottomBtn3 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p1BottomBtn3.setBounds(440, 650, 100, 25);
p1BottomBtn4 = new JButton("ȡ<><C8A1>");
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);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD>
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);
// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
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);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
p2 = new JPanel();
p2.setLayout(null);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
p2Left = new JPanel();
p2Left.setLayout(null);
p2Left.setBounds(0, 0, 800, 800);
p2Left.setBorder(BorderFactory.createEtchedBorder());
p2TargetLabel = new JLabel("Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>");
p2TargetLabel.setBounds(20, 20, 100, 25);
p2TargetBtn = new JButton();
p2TargetBtn.setBounds(130, 20, 400, 25);
p2ChangeNumLabel = new JLabel("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
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<DefaultTableModel> p2sorter = new TableRowSorter<DefaultTableModel>(p2model);
p2Table.setRowSorter(p2sorter);
p2jsp = new JScrollPane(p2Table);
p2jsp.setBounds(20, 130, 760, 500);
p2BottomBtn1 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p2BottomBtn1.setBounds(80, 650, 100, 25);
p2BottomBtn2 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p2BottomBtn2.setBounds(260, 650, 100, 25);
p2BottomBtn3 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p2BottomBtn3.setBounds(440, 650, 100, 25);
p2BottomBtn4 = new JButton("ȡ<><C8A1>");
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);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD>
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);
// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
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);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
p3 = new JPanel();
p3.setLayout(null);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
p3Left = new JPanel();
p3Left.setLayout(null);
p3Left.setBounds(0, 0, 800, 800);
p3Left.setBorder(BorderFactory.createEtchedBorder());
p3TargetLabel = new JLabel("<22>ο<EFBFBD><CEBF><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>");
p3TargetLabel.setBounds(20, 20, 100, 25);
p3TargetBtn = new JButton();
p3TargetBtn.setBounds(130, 20, 400, 25);
p3AddLabel = new JLabel("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>");
p3AddLabel.setBounds(20, 60, 100, 25);
p3AddBtn = new JButton();
p3AddBtn.setBounds(130, 60, 400, 25);
p3UnitLabel = new JLabel("<22><>λ");
p3UnitLabel.setBounds(560, 60, 50, 25);
p3UnitCombo = new KeyValComboBox(unitVector);
p3UnitCombo.setBounds(610, 60, 50, 25);
p3NumLabel = new JLabel("<22><><EFBFBD><EFBFBD>");
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<DefaultTableModel> p3sorter = new TableRowSorter<DefaultTableModel>(p3model);
p3Table.setRowSorter(p3sorter);
p3jsp = new JScrollPane(p3Table);
p3jsp.setBounds(20, 130, 760, 500);
p3BottomBtn1 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p3BottomBtn1.setBounds(80, 650, 100, 25);
p3BottomBtn2 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p3BottomBtn2.setBounds(260, 650, 100, 25);
p3BottomBtn3 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p3BottomBtn3.setBounds(440, 650, 100, 25);
p3BottomBtn4 = new JButton("ȡ<><C8A1>");
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);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD>
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);
// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
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);
// <20><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>
p4 = new JPanel();
p4.setLayout(null);
// <20><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
p4Left = new JPanel();
p4Left.setLayout(null);
p4Left.setBounds(0, 0, 800, 800);
p4Left.setBorder(BorderFactory.createEtchedBorder());
p4TargetLabel = new JLabel("Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>");
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<DefaultTableModel> p4sorter = new TableRowSorter<DefaultTableModel>(p4model);
p4Table.setRowSorter(p4sorter);
p4jsp = new JScrollPane(p4Table);
p4jsp.setBounds(20, 130, 760, 500);
p4BottomBtn1 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p4BottomBtn1.setBounds(80, 650, 100, 25);
p4BottomBtn2 = new JButton("<22><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>");
p4BottomBtn2.setBounds(260, 650, 100, 25);
p4BottomBtn3 = new JButton("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
p4BottomBtn3.setBounds(440, 650, 100, 25);
p4BottomBtn4 = new JButton("ȡ<><C8A1>");
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);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ұ<EFBFBD>
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);
// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
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);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
p5 = new JPanel();
p5.setLayout(null);
p5UserLabel = new JLabel("<22>޸<EFBFBD><DEB8>û<EFBFBD>");
p5UserLabel.setBounds(20, 40, 70, 25);
p5UserText = new JTextField();
p5UserText.setBounds(100, 40, 150, 25);
p5TimeLabel = new JLabel("<22>޸<EFBFBD>ʱ<EFBFBD><CAB1>");
p5TimeLabel.setBounds(300, 40, 70, 25);
p5TimeStartText = DatePickerUtil.getDatePicker(null);
p5TimeStartText.setBounds(380, 40, 100, 25);
toLabel = new JLabel("<22><>");
toLabel.setBounds(490, 40, 20, 25);
p5TimeEndText = DatePickerUtil.getDatePicker(null);
p5TimeEndText.setBounds(520, 40, 100, 25);
p5ContentLabel = new JLabel("<22>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>");
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("<22><><EFBFBD><EFBFBD>");
p5Search.setBounds(1000, 40, 60, 25);
p5Download = new JButton("<22><>־<EFBFBD><D6BE><EFBFBD><EFBFBD>");
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<DefaultTableModel> p5sorter = new TableRowSorter<DefaultTableModel>(p5model);
p5Table.setRowSorter(p5sorter);
p5jsp = new JScrollPane(p5Table);
p5jsp.setBounds(20, 130, 1160, 580);
// <20><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
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 "<22><><EFBFBD><EFBFBD><EFBFBD>滻":
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 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>":
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 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>":
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 "<22><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>":
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 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־":
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<Object[]> tableDataList = new ArrayList<Object[]>();
try {
String revString = targetRev.getProperty("object_string");
TCComponent[] usedComps = targetRev.whereUsed((short) 0);
System.out.println("װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>======>" + usedComps.length);
tableDataMap.clear();
// Map<String, TCComponentItemRevision> usedMap = usedFilter(usedComps);
// for (Entry<String, TCComponentItemRevision> 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 <20><><EFBFBD><EFBFBD>bom<6F><6D><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>child<6C><64><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><DCBB><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
break;
}
}
}
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (tableDataList == null || tableDataList.size() == 0) {
JOptionPane.showMessageDialog($this, "<22>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>󣬵<EFBFBD><F3A3ACB5>ö<EFBFBD><C3B6><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>°汾<C2B0><E6B1BE><EFBFBD><EFBFBD>ȷ<EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ", "<22><>ʾ",
JOptionPane.WARNING_MESSAGE);
return;
}
for (Object[] rowData : tableDataList) {
model.addRow(rowData);
}
table.revalidate();
table.repaint();
System.out.println("װ<><D7B0><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD>ʱ" + (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<CustomLovBean> 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<BOMManageTableBean> selectedRowList = getselectedRow(table);
if (selectedRowList.size() == 0) {
return;
}
if (!checkAccess(selectedRowList).isRes()) {
return;
}
List<String[]> msgData = new ArrayList<String[]>();
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"), "<22>ɹ<EFBFBD>" });
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
JOptionPane.showMessageDialog($this, e1.getMessage(), "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
return;
}
}
// showWhereUesd(table, selectAll);
updateSelectedRow(table, selectedRowList);
JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "<22><><EFBFBD><EFBFBD>", "<22><EFBFBD><E6B1BE><EFBFBD><EFBFBD>(<28><>ǰ)", "<22><EFBFBD><E6B1BE><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)", "<22><><EFBFBD><EFBFBD>" },
msgData).panel;
JOptionPane.showMessageDialog($this, jsp, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", JOptionPane.PLAIN_MESSAGE);
}
};
}
private List<TCComponentItemRevision> usedFilter(TCComponent[] comps) throws TCException {
// Map<String, TCComponentItemRevision> sameParentUsedMap = new HashMap<String, TCComponentItemRevision>();
List<TCComponentItemRevision> 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<Entity> 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, "<22><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>jd2_db_settings", "<22><><EFBFBD><EFBFBD>", 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 = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BOM<4F><4D>־-" + new SimpleDateFormat("yyyyMMddHHmm").format(new Date()) + ".txt";
try {
fileWriter = new FileWriter(folder.getPath() + File.separator + fileName);// <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>ļ<EFBFBD>
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, "<22><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>\r\n·<6E><C2B7><EFBFBD><EFBFBD>" + folder + File.separator + fileName, "<22><>ʾ",
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, "<22><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>д<EFBFBD><D0B4><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д", "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
return;
}
List<BOMManageTableBean> selectedRowList = getselectedRow(p1Table);
if (selectedRowList.size() == 0) {
return;
}
if (!checkTargetAndSelect(targetRev, selectedRowList)) {
return;
}
long startTime = System.currentTimeMillis();
updateTitleShowProgress(selectedRowList);
List<String[]> msgData = new ArrayList<String[]>();
List<BOMLogBean> logData = new ArrayList<BOMLogBean>();
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, "ʧ<>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>Ӽ<EFBFBD>" });
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, "<22>ɹ<EFBFBD>" });
BOMLogBean logBean = new BOMLogBean(bean.getChildString(),
targetRev2.getProperty("object_string"), bean.getParentString(), "<22>滻", 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(), "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
complate = true;
return;
}
}
try {
saveWin();
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
JOptionPane.showMessageDialog($this, e1.getMessage(), "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
return;
} finally {
complate = true;
}
long endTime = System.currentTimeMillis();
System.out.println("<22><><EFBFBD><EFBFBD><EFBFBD>滻ִ<E6BBBB><D6B4><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>ʱ" + (endTime - startTime) + "ms");
doLog("<22>滻", logData);
JScrollPane jsp = DialogUtil
.createTableMsg(new String[] { "<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "ԭ<>Ӽ<EFBFBD>", "<22><EFBFBD>Ӽ<EFBFBD>", "<22><>λ", "<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>" }, msgData).panel;
JOptionPane
.showMessageDialog(
$this, jsp, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BBBB><EFBFBD><EFBFBD> <20>ɹ<EFBFBD>(" + getResultNum(msgData, true) + ") ʧ<><CAA7>("
+ getResultNum(msgData, false) + ") <20><>ʱ<EFBFBD><CAB1>" + (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<BOMManageTableBean> selectedRowList = getselectedRow(p2Table);
if (selectedRowList.size() == 0) {
return;
}
if (!checkTargetAndSelect(targetRev, selectedRowList)) {
return;
}
long startTime = System.currentTimeMillis();
updateTitleShowProgress(selectedRowList);
List<String[]> msgData = new ArrayList<String[]>();
List<BOMLogBean> 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, "<22>ɹ<EFBFBD>" });
BOMLogBean logBean = new BOMLogBean(bean.getChildString(),
targetRev2.getProperty("object_string"), bean.getParentString(), "<22><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>", "", oldNumStr,
numStr);
logData.add(logBean);
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
JOptionPane.showMessageDialog($this, e1.getMessage(), "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
complate = true;
return;
}
}
try {
saveWin();
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
JOptionPane.showMessageDialog($this, e1.getMessage(), "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
return;
} finally {
complate = true;
}
long endTime = System.currentTimeMillis();
System.out.println("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>ʱ" + (endTime - startTime) + "ms");
doLog("<22><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>", logData);
JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22>Ӽ<EFBFBD>", "ԭ<><D4AD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>" },
msgData).panel;
JOptionPane
.showMessageDialog(
$this, jsp, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD> <20>ɹ<EFBFBD>(" + getResultNum(msgData, true) + ") ʧ<><CAA7>("
+ getResultNum(msgData, false) + ") <20><>ʱ<EFBFBD><CAB1>" + (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, "<22><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>д<EFBFBD><D0B4><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д", "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
return;
}
List<BOMManageTableBean> selectedRowList = getselectedRow(p3Table);
if (selectedRowList.size() == 0) {
return;
}
if (!checkTargetAndSelect(targetRev, selectedRowList)) {
return;
}
long startTime = System.currentTimeMillis();
updateTitleShowProgress(selectedRowList);
List<String[]> msgData = new ArrayList<String[]>();
List<BOMLogBean> 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,
<>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>Ӽ<EFBFBD>" });
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, "<22>ɹ<EFBFBD>" });
BOMLogBean logBean = new BOMLogBean(bean.getChildString(),
targetRev2.getProperty("object_string"), bean.getParentString(), "<22><><EFBFBD><EFBFBD>", value.toString(),
"", numStr);
logData.add(logBean);
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
JOptionPane.showMessageDialog($this, e1.getMessage(), "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
complate = true;
return;
}
}
try {
saveWin();
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
JOptionPane.showMessageDialog($this, e1.getMessage(), "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
return;
} finally {
complate = true;
}
long endTime = System.currentTimeMillis();
System.out.println("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>ʱ" + (endTime - startTime) + "ms");
doLog("<22><><EFBFBD><EFBFBD>", logData);
JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD>", "<22><>λ", "<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD>" },
msgData).panel;
JOptionPane
.showMessageDialog(
$this, jsp, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ɹ<EFBFBD>(" + getResultNum(msgData, true) + ") ʧ<><CAA7>("
+ getResultNum(msgData, false) + ") <20><>ʱ<EFBFBD><CAB1>" + (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<BOMManageTableBean> selectedRowList = getselectedRow(p4Table);
if (selectedRowList.size() == 0) {
return;
}
if (!checkTargetAndSelect(targetRev, selectedRowList)) {
return;
}
long startTime = System.currentTimeMillis();
updateTitleShowProgress(selectedRowList);
List<String[]> msgData = new ArrayList<String[]>();
List<BOMLogBean> 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<6E><65><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>ɹ<EFBFBD>ɾ<EFBFBD><C9BE>" });
} else {
bean.getParentLine().remove("", bean.getChildLine());
msgData.add(new String[] { msgData.size() + 1 + "", bean.getParentString(),
bean.getChildString(), "<22>ɹ<EFBFBD>" });
BOMLogBean logBean = new BOMLogBean(bean.getChildString(),
targetRev2.getProperty("object_string"), bean.getParentString(), "ɾ<><C9BE>", "", "", "");
logData.add(logBean);
}
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
JOptionPane.showMessageDialog($this, e1.getMessage(), "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
complate = true;
return;
}
}
try {
saveWin();
} catch (TCException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
JOptionPane.showMessageDialog($this, e1.getMessage(), "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
return;
} finally {
complate = true;
}
long endTime = System.currentTimeMillis();
System.out.println("<22><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>ʱ" + (endTime - startTime) + "ms");
doLog("ɾ<><C9BE>", logData);
JScrollPane jsp = DialogUtil.createTableMsg(new String[] { "<22><><EFBFBD><EFBFBD>", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "ɾ<><C9BE><EFBFBD>Ӽ<EFBFBD>", "<22><><EFBFBD><EFBFBD>" }, msgData).panel;
JOptionPane
.showMessageDialog(
$this, jsp, "<22><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ɹ<EFBFBD>(" + getResultNum(msgData, true) + ") ʧ<><CAA7>("
+ getResultNum(msgData, false) + ") <20><>ʱ<EFBFBD><CAB1>" + (endTime - startTime) + "ms",
JOptionPane.PLAIN_MESSAGE);
// removeSelectRow(p4Table);
updateSelectedRow3(p4Table, selectedRowList);
}
};
}
private List<BOMManageTableBean> getselectedRow(JTable table) {
List<BOMManageTableBean> selectedList = new ArrayList<BOMManageTableBean>();
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<BOMManageTableBean> 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<BOMManageTableBean> 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<BOMManageTableBean> 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<String, TCComponentBOMWindow> entry : winMap.entrySet()) {
if (entry.getValue() != null) {
entry.getValue().save();
}
}
}
private void closeWin() throws TCException {
saveWin();
for (Entry<String, TCComponentBOMWindow> entry : winMap.entrySet()) {
entry.getValue().close();
}
winMap.clear();
}
private void doLog(String operation, List<BOMLogBean> 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<String> sqls = new ArrayList<String>();
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 ("<22>滻".equals(operation)) {
String temp = String.format("<22><><EFBFBD><EFBFBD>%s<><73><EFBFBD>Ӽ<EFBFBD>%s<>滻Ϊ%s;%s;%s", bean.getParent(), bean.getTarget1(),
bean.getTarget2(), bean.getUnit(), bean.getNum());
builder.append(temp + "','");
} else if ("<22><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>".equals(operation)) {
String temp = String.format("<22><><EFBFBD><EFBFBD>%s<><73><EFBFBD>Ӽ<EFBFBD>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s<><73>Ϊ%s", bean.getParent(), bean.getTarget1(), bean.getOldNum(),
bean.getNum());
builder.append(temp + "','");
} else if ("<22><><EFBFBD><EFBFBD>".equals(operation)) {
String temp = String.format("<22><><EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD>%s;%s;%s", bean.getParent(), bean.getTarget2(), bean.getUnit(),
bean.getNum());
builder.append(temp + "','");
} else if ("ɾ<><C9BE>".equals(operation)) {
String temp = String.format("<22><><EFBFBD><EFBFBD>%sɾ<73><C9BE><EFBFBD>Ӽ<EFBFBD>%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<BOMManageTableBean> list) {
new Thread(new Runnable() {
@Override
public void run() {
int num = 1;
String temp;
doIndex = 0;
while (!complate) {
$this.setTitle("<22><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>" + (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<4F><4D><EFBFBD><EFBFBD>");
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<BOMManageTableBean> 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, "<22><>ǰ<EFBFBD>û<EFBFBD>û<EFBFBD>ж<EFBFBD>" + bean.getParentLine().getProperty("object_string") + "<22><>дȨ<D0B4><C8A8>",
bean.getParentLine());
} catch (TCException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return new ResultData(true, "", null);
}
private boolean checkTargetAndSelect(TCComponentItemRevision rev, List<BOMManageTableBean> data) {
if (!checkReleaseStatus(rev)) {
JOptionPane.showMessageDialog($this, "Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4>ڶ<EFBFBD><DAB6><EFBFBD>״̬<D7B4><CCAC><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>BOM", "<22><>ʾ", JOptionPane.WARNING_MESSAGE);
return false;
}
ResultData res = checkAccess(data);
if (!res.isRes()) {
JOptionPane.showMessageDialog($this, res.getMessage(), "<22><>ʾ", 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<BOMManageTableBean> select = getselectedRow(table);
List<TCComponentItemRevision> 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<String[]> msgData, boolean success) {
int num = 0;
String str = success ? "<22>ɹ<EFBFBD>" : "ʧ<><CAA7>";
for (String[] row : msgData) {
if (row[row.length - 1].contains(str)) {
num++;
}
}
return num;
}
}