package com.vci.client.portal.UI; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import com.vci.client.LogonApplication; import com.vci.client.common.PinyinCommon; import com.vci.client.portal.utility.UITools; import com.vci.client.ui.swing.VCIOptionPane; import com.vci.client.ui.table.TableCheckboxManager; import com.vci.client.ui.table.VCIBaseTableModel; import com.vci.client.ui.table.VCIBaseTableNode; import com.vci.common.utility.ObjectUtility; import com.vci.corba.common.VCIError; import com.vci.corba.portal.data.PLAction; import com.vci.corba.portal.data.PLCommandParameter; import com.vci.corba.portal.data.PLPageDefination; import com.vci.corba.portal.data.PLUILayout; import com.vci.corba.portal.data.PLTabButton; public class ButtonDialog extends JDialog { private final JPanel contentPanel = new JPanel(); private JButton addButton; private JButton editButton; private JLabel label; private JTextField pllabel; private JLabel label_2; private JTextField plseq; private JLabel label_3; private JScrollPane scrollPane; private JTable parTable; private VCIBaseTableModel parTableModel; private JButton addParBtn; private JButton delParBtn; private JLabel label_4; private JScrollPane scrollPane_1; private JTable btnTable; private VCIBaseTableModel btnTableModel; private JButton delBtn; private JLabel lblAction; private JComboBox plactionoid; private JLabel label_5; private JScrollPane scrollPane_2; private JTextArea pldesc; private Map actionMap = new HashMap(); String[] columnHeaders = new String[] { "编号", "名称"}; Class types[] = new Class[] { String.class, String.class}; String[] parcolumnHeaders = new String[] { "参数", "值"}; Class partypes[] = new Class[] { String.class, String.class}; TableCheckboxManager tcm ; // private PLTabPage pltabpage; private PLUILayout plpagelayoutdefination; private JButton closeBtn; private JLabel label_1; private JTextField plkey; private JLabel label_6; private JTextField plvalue; private JButton editPatBtn; private String buttonArea; private PLPageDefination plPageDefination; public ButtonDialog(PLPageDefination plPageDefination,PLUILayout plpagelayoutdefination,String buttonArea) { super(LogonApplication.frame,true); setTitle("按钮设计窗口"); this.plPageDefination = plPageDefination; this.plpagelayoutdefination = plpagelayoutdefination; this.buttonArea = buttonArea; init(); plactionoList(); actionListener(); initParData(""); initData(); this.setLocationRelativeTo(null); this.setVisible(true); } private void init() { setBounds(100, 100, 637, 573); getContentPane().setLayout(new BorderLayout()); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel, BorderLayout.CENTER); GridBagLayout gbl_contentPanel = new GridBagLayout(); gbl_contentPanel.columnWidths = new int[]{0, 0, 0, 0, 0, 0, 129, 0}; gbl_contentPanel.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0}; gbl_contentPanel.columnWeights = new double[]{0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, Double.MIN_VALUE}; gbl_contentPanel.rowWeights = new double[]{0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, Double.MIN_VALUE}; contentPanel.setLayout(gbl_contentPanel); { label = new JLabel("名称"); GridBagConstraints gbc_label = new GridBagConstraints(); gbc_label.insets = new Insets(0, 0, 5, 5); gbc_label.gridx = 1; gbc_label.gridy = 0; contentPanel.add(label, gbc_label); } { pllabel = new JTextField(); GridBagConstraints gbc_textField = new GridBagConstraints(); gbc_textField.gridwidth = 2; gbc_textField.insets = new Insets(0, 0, 5, 5); gbc_textField.fill = GridBagConstraints.HORIZONTAL; gbc_textField.gridx = 2; gbc_textField.gridy = 0; contentPanel.add(pllabel, gbc_textField); pllabel.setColumns(10); } { label_2 = new JLabel("编号"); GridBagConstraints gbc_label_2 = new GridBagConstraints(); gbc_label_2.anchor = GridBagConstraints.EAST; gbc_label_2.insets = new Insets(0, 0, 5, 5); gbc_label_2.gridx = 5; gbc_label_2.gridy = 0; contentPanel.add(label_2, gbc_label_2); } { plseq = new JTextField(); GridBagConstraints gbc_textField_2 = new GridBagConstraints(); gbc_textField_2.insets = new Insets(0, 0, 5, 0); gbc_textField_2.fill = GridBagConstraints.HORIZONTAL; gbc_textField_2.gridx = 6; gbc_textField_2.gridy = 0; contentPanel.add(plseq, gbc_textField_2); plseq.setColumns(10); } { lblAction = new JLabel("Action"); GridBagConstraints gbc_lblAction = new GridBagConstraints(); gbc_lblAction.insets = new Insets(0, 0, 5, 5); gbc_lblAction.gridx = 1; gbc_lblAction.gridy = 1; contentPanel.add(lblAction, gbc_lblAction); } { plactionoid = new JComboBox(); GridBagConstraints gbc_comboBox = new GridBagConstraints(); gbc_comboBox.gridwidth = 5; gbc_comboBox.insets = new Insets(0, 0, 5, 0); gbc_comboBox.fill = GridBagConstraints.HORIZONTAL; gbc_comboBox.gridx = 2; gbc_comboBox.gridy = 1; contentPanel.add(plactionoid, gbc_comboBox); } { label_5 = new JLabel("描述"); GridBagConstraints gbc_label_5 = new GridBagConstraints(); gbc_label_5.insets = new Insets(0, 0, 5, 5); gbc_label_5.gridx = 1; gbc_label_5.gridy = 2; contentPanel.add(label_5, gbc_label_5); } { scrollPane_2 = new JScrollPane(); GridBagConstraints gbc_scrollPane_2 = new GridBagConstraints(); gbc_scrollPane_2.gridwidth = 5; gbc_scrollPane_2.insets = new Insets(0, 0, 5, 0); gbc_scrollPane_2.fill = GridBagConstraints.BOTH; gbc_scrollPane_2.gridx = 2; gbc_scrollPane_2.gridy = 2; contentPanel.add(scrollPane_2, gbc_scrollPane_2); { pldesc = new JTextArea(); scrollPane_2.setViewportView(pldesc); } } { label_4 = new JLabel("按钮列表"); GridBagConstraints gbc_label_4 = new GridBagConstraints(); gbc_label_4.insets = new Insets(0, 0, 5, 5); gbc_label_4.gridx = 1; gbc_label_4.gridy = 3; contentPanel.add(label_4, gbc_label_4); } { addButton = new JButton("增加"); GridBagConstraints gbc_addButton = new GridBagConstraints(); gbc_addButton.insets = new Insets(0, 0, 5, 5); gbc_addButton.gridx = 3; gbc_addButton.gridy = 3; contentPanel.add(addButton, gbc_addButton); } { editButton = new JButton("修改"); GridBagConstraints gbc_editButton = new GridBagConstraints(); gbc_editButton.insets = new Insets(0, 0, 5, 5); gbc_editButton.gridx = 4; gbc_editButton.gridy = 3; contentPanel.add(editButton, gbc_editButton); } { delBtn = new JButton("删除"); GridBagConstraints gbc_delBtn = new GridBagConstraints(); gbc_delBtn.insets = new Insets(0, 0, 5, 5); gbc_delBtn.gridx = 5; gbc_delBtn.gridy = 3; contentPanel.add(delBtn, gbc_delBtn); } { scrollPane = new JScrollPane(); GridBagConstraints gbc_scrollPane = new GridBagConstraints(); gbc_scrollPane.gridwidth = 6; gbc_scrollPane.insets = new Insets(0, 0, 5, 0); gbc_scrollPane.fill = GridBagConstraints.BOTH; gbc_scrollPane.gridx = 1; gbc_scrollPane.gridy = 4; contentPanel.add(scrollPane, gbc_scrollPane); { btnTable = new JTable(); btnTableModel = new VCIBaseTableModel(columnHeaders, types); btnTable.setModel(btnTableModel); scrollPane.setViewportView(btnTable); } } { label_3 = new JLabel("参数列表"); GridBagConstraints gbc_label_3 = new GridBagConstraints(); gbc_label_3.insets = new Insets(0, 0, 5, 5); gbc_label_3.gridx = 1; gbc_label_3.gridy = 5; contentPanel.add(label_3, gbc_label_3); } { label_1 = new JLabel("参数名称"); GridBagConstraints gbc_label_1 = new GridBagConstraints(); gbc_label_1.insets = new Insets(0, 0, 5, 5); gbc_label_1.gridx = 2; gbc_label_1.gridy = 5; contentPanel.add(label_1, gbc_label_1); } { plkey = new JTextField(); GridBagConstraints gbc_textField = new GridBagConstraints(); gbc_textField.insets = new Insets(0, 0, 5, 5); gbc_textField.fill = GridBagConstraints.HORIZONTAL; gbc_textField.gridx = 3; gbc_textField.gridy = 5; gbc_textField.weightx = 5.0; contentPanel.add(plkey, gbc_textField); plkey.setColumns(10); } { label_6 = new JLabel("值"); GridBagConstraints gbc_label_6 = new GridBagConstraints(); gbc_label_6.insets = new Insets(0, 0, 5, 5); gbc_label_6.gridx = 4; gbc_label_6.gridy = 5; contentPanel.add(label_6, gbc_label_6); } { plvalue = new JTextField(); GridBagConstraints gbc_textField_1 = new GridBagConstraints(); gbc_textField_1.insets = new Insets(0, 0, 5, 5); gbc_textField_1.fill = GridBagConstraints.HORIZONTAL; gbc_textField_1.gridx = 5; gbc_textField_1.gridy = 5; gbc_textField_1.gridwidth = 2; gbc_textField_1.weightx = 10.0; contentPanel.add(plvalue, gbc_textField_1); plvalue.setColumns(10); } { addParBtn = new JButton("增加"); GridBagConstraints gbc_addParBtn = new GridBagConstraints(); gbc_addParBtn.insets = new Insets(0, 0, 5, 5); gbc_addParBtn.gridx = 3; gbc_addParBtn.gridy = 6; contentPanel.add(addParBtn, gbc_addParBtn); } { editPatBtn = new JButton("修改"); GridBagConstraints gbc_editPatBtn = new GridBagConstraints(); gbc_editPatBtn.insets = new Insets(0, 0, 5, 5); gbc_editPatBtn.gridx = 4; gbc_editPatBtn.gridy = 6; contentPanel.add(editPatBtn, gbc_editPatBtn); } { delParBtn = new JButton("删除"); GridBagConstraints gbc_delParBtn = new GridBagConstraints(); gbc_delParBtn.insets = new Insets(0, 0, 5, 5); gbc_delParBtn.gridx = 5; gbc_delParBtn.gridy = 6; contentPanel.add(delParBtn, gbc_delParBtn); } scrollPane_1 = new JScrollPane(); GridBagConstraints gbc_scrollPane_1 = new GridBagConstraints(); gbc_scrollPane_1.insets = new Insets(0, 0, 0, 5); gbc_scrollPane_1.gridwidth = 6; gbc_scrollPane_1.fill = GridBagConstraints.BOTH; gbc_scrollPane_1.gridx = 1; gbc_scrollPane_1.gridy = 7; contentPanel.add(scrollPane_1, gbc_scrollPane_1); parTableModel = new VCIBaseTableModel(parcolumnHeaders, partypes); parTable = new JTable(); parTable.setModel(parTableModel); scrollPane_1.setViewportView(parTable); { JPanel buttonPane = new JPanel(); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { closeBtn = new JButton("关闭"); buttonPane.add(closeBtn); } } } private void actionListener(){ addParBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { btnTableModel= (VCIBaseTableModel) btnTable.getModel(); int selectedRowCount = btnTable.getSelectedRowCount(); if(selectedRowCount==0){ VCIOptionPane.showMessage(LogonApplication.frame, "请先创建按钮!"); return; } VCIBaseTableNode valueAt = btnTableModel.getValueAt(btnTable.getSelectedRow()); PLTabButton obj = (PLTabButton) valueAt.getObj(); PLCommandParameter plCommandParameter = new PLCommandParameter(); plCommandParameter.plOId = ObjectUtility.getNewObjectID36(); plCommandParameter.plCommandOId = obj.plOId; plCommandParameter.plKey = plkey.getText(); plCommandParameter.plValue = plvalue.getText(); plCommandParameter.plCreateUser = LogonApplication.getUserEntityObject().getUserName(); plCommandParameter.plModifyUser = LogonApplication.getUserEntityObject().getUserName(); try { boolean flag = UITools.getService().savePLCommandParameter(plCommandParameter); } catch (VCIError e) { e.printStackTrace(); } initParData(obj.plOId); } }); editPatBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int selectedRow = parTable.getSelectedRow(); int selectedRowCount = parTable.getSelectedRowCount(); if(selectedRowCount==0){ VCIOptionPane.showMessage(LogonApplication.frame, "请选择数据!"); return ; } VCIBaseTableNode valueAt = parTableModel.getValueAt(selectedRow); PLCommandParameter plcommandparameter = (PLCommandParameter) valueAt.getObj(); PLCommandParameter plCommandParameter = new PLCommandParameter(); plCommandParameter.plOId = plcommandparameter.plOId; plCommandParameter.plCommandOId = plcommandparameter.plCommandOId; plCommandParameter.plKey = plkey.getText(); plCommandParameter.plValue = plvalue.getText(); plCommandParameter.plCreateUser = plcommandparameter.plCreateUser; plCommandParameter.plModifyUser = LogonApplication.getUserEntityObject().getUserName(); try { boolean flag = UITools.getService().updatePLCommandParameter(plCommandParameter); } catch (VCIError e) { e.printStackTrace(); } initParData(plcommandparameter.plCommandOId); } }); delParBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int selectedRow = parTable.getSelectedRow(); int[] selectedRowCount = parTable.getSelectedRows(); if(selectedRowCount.length==0){ VCIOptionPane.showMessage(LogonApplication.frame, "请选择数据!"); return ; } VCIBaseTableNode valueAt = parTableModel.getValueAt(selectedRow); PLCommandParameter plcommandparameter = (PLCommandParameter) valueAt.getObj(); try { boolean flag = UITools.getService().deletePLCommandParameter(plcommandparameter); // VCIOptionPane.showMessage(LogonApplication.frame, "删除成功"); } catch (VCIError e) { e.printStackTrace(); // VCIOptionPane.showMessage(LogonApplication.frame, "删除失败"); } VCIBaseTableNode btnTabNode = btnTableModel.getValueAt(btnTable.getSelectedRow()); PLTabButton obj = (PLTabButton) btnTabNode.getObj(); initParData(obj.plOId); } }); parTable.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { int selectedRow = parTable.getSelectedRow(); VCIBaseTableNode valueAt = parTableModel.getValueAt(selectedRow); PLCommandParameter plcommandparameter = (PLCommandParameter) valueAt.getObj(); plkey.setText(plcommandparameter.plKey); plvalue.setText(String.valueOf(plcommandparameter.plValue)); } }); btnTable.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { int selectedRow = btnTable.getSelectedRow(); VCIBaseTableNode valueAt = btnTableModel.getValueAt(selectedRow); PLTabButton pltabbutton = (PLTabButton) valueAt.getObj(); pllabel.setText(pltabbutton.plLabel); plseq.setText(String.valueOf(pltabbutton.plSeq)); plactionoid.setSelectedItem(actionMap.get(pltabbutton.plActionOId)); pldesc.setText(pltabbutton.plDesc); initParData(pltabbutton.plOId); } }); addButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { if(checkEdit("")){ return; } PLTabButton plTabButton = new PLTabButton(); plTabButton.plOId = ObjectUtility.getNewObjectID36(); String pageId = ""; if(plPageDefination!=null){ pageId = plPageDefination.plOId; }else{ pageId = plpagelayoutdefination.plOId; } plTabButton.plTableOId = pageId; plTabButton.plActionOId = getPlactionValue(); plTabButton.plLabel = pllabel.getText().trim(); plTabButton.plDesc = pldesc.getText(); plTabButton.plSeq = Short.valueOf(plseq.getText()); plTabButton.plCreateUser = LogonApplication.getUserEntityObject().getUserName(); plTabButton.plModifyUser = LogonApplication.getUserEntityObject().getUserName(); plTabButton.plAreaType = buttonArea; try { boolean flag = UITools.getService().savePLTabButton(plTabButton); } catch (VCIError e) { e.printStackTrace(); } initData(); } }); editButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { int selectedRow = btnTable.getSelectedRow(); int selectedRowCount = btnTable.getSelectedRowCount(); if(selectedRowCount==0){ VCIOptionPane.showMessage(LogonApplication.frame, "请选择数据!"); return ; } VCIBaseTableNode valueAt = btnTableModel.getValueAt(selectedRow); PLTabButton pltabbutton = (PLTabButton) valueAt.getObj(); PLTabButton plTabButton = new PLTabButton(); String plOId = pltabbutton.plOId; if(checkEdit(plOId)){ return; } plTabButton.plOId = plOId; String pageId = ""; if(plPageDefination!=null){ pageId = plPageDefination.plOId; }else{ pageId = plpagelayoutdefination.plOId; } plTabButton.plTableOId = pageId; plTabButton.plActionOId = getPlactionValue(); plTabButton.plLabel = pllabel.getText().trim(); plTabButton.plDesc = pldesc.getText(); plTabButton.plSeq = Short.valueOf(plseq.getText()); plTabButton.plCreateUser = pltabbutton.plCreateUser; plTabButton.plModifyUser = LogonApplication.getUserEntityObject().getUserName(); try { boolean flag = UITools.getService().updatePLTabButton(plTabButton); } catch (VCIError e) { e.printStackTrace(); } initData(); } }); delBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { int selectedRow = btnTable.getSelectedRow(); int[] selectedRowCount = btnTable.getSelectedRows(); if(selectedRowCount.length==0){ VCIOptionPane.showMessage(LogonApplication.frame, "请选择数据!"); return ; } try { for(int i=0;i keySet = actionMap.keySet(); Iterator iterator = keySet.iterator(); String value = ""; while(iterator.hasNext()){ value = iterator.next(); if(selectedItem.equals(actionMap.get(value))){ break; } } return value; } private void plactionoList(){ try { PLAction[] obj = UITools.getService().getAllPLAction(); obj = getSortedPLAction(obj); for(int i=0;i list = btnTableModel.list; for(int i=0;i PLAction_Comparator = new Comparator() { @Override public int compare(PLAction o1, PLAction o2) { return PinyinCommon.getPingYin(o1.plName).compareTo(PinyinCommon.getPingYin(o2.plName)); } }; private PLTabButton[] getSortedPLTabButton(PLTabButton[] btns){ Arrays.sort(btns, PLTabButton_Comparator); return btns; } private Comparator PLTabButton_Comparator = new Comparator() { @Override public int compare(PLTabButton o1, PLTabButton o2) { return PinyinCommon.getPingYin(o1.plLabel).compareTo(PinyinCommon.getPingYin(o2.plLabel)); } }; private PLCommandParameter[] getSortedPLCommandParameter(PLCommandParameter[] cps){ Arrays.sort(cps, PLCommandParameter_Comparator); return cps; } private Comparator PLCommandParameter_Comparator = new Comparator() { @Override public int compare(PLCommandParameter o1, PLCommandParameter o2) { return PinyinCommon.getPingYin(o1.plKey).compareTo(PinyinCommon.getPingYin(o2.plKey)); } }; }