package com.vci.client.workflow.editor.ui; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import com.vci.client.LogonApplication; import com.vci.client.ui.swing.components.VCIJDialog; import com.vci.client.workflow.commom.ClientHelper; import com.vci.corba.workflow.data.CustomInfo; import com.vci.corba.workflow.data.PropertyInfo; public class CustomClassEditDialog extends VCIJDialog { private static final long serialVersionUID = 1300418480939892949L; private JTable customTable; private JButton addBtn; private JButton deleteBtn; private JButton okBtn; private JButton cancelBtn; private EventPanel eventPanel; public CustomClassEditDialog(EventPanel eventPanel) { super(LogonApplication.frame,true); this.eventPanel = eventPanel; this.setTitle("自定义事件页面"); initUI(); addListener(); this.setSize(600, 400); dispalyCenter(); } private void dispalyCenter(){ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = this.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); } private void addListener() { addBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { CustomClassTableModel model = (CustomClassTableModel)customTable.getModel(); model.addRow(); } }); deleteBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int[] selectedRows = customTable.getSelectedRows(); CustomClassTableModel model = (CustomClassTableModel)customTable.getModel(); model.deleteRow(selectedRows); } }); okBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { // eventPanel.setCustomInfos(getCustomUserInfos()); dispose(); } }); cancelBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // eventPanel.setCustomInfos(new CustomInfo[0]); dispose(); } }); } private void initUI() { setLayout(new BorderLayout()); add(new JScrollPane(getCustomProperty()), BorderLayout.CENTER); JPanel BtnPanel = new JPanel(); add(BtnPanel, BorderLayout.EAST); BtnPanel.setLayout(new BoxLayout(BtnPanel, BoxLayout.Y_AXIS)); addBtn = new JButton("添加"); BtnPanel.add(addBtn); deleteBtn = new JButton("删除"); BtnPanel.add(deleteBtn); okBtn = new JButton("确定"); cancelBtn = new JButton("取消"); JPanel botmPanel = new JPanel(); botmPanel.add(okBtn); botmPanel.add(cancelBtn); add(botmPanel, BorderLayout.SOUTH); } private JTable getCustomProperty() { if(customTable == null) { customTable = new JTable(new CustomClassTableModel()); customTable.setRowHeight(20); Dimension size = customTable.getTableHeader().getPreferredSize(); size.height = 22; customTable.getTableHeader().setPreferredSize(size); } return customTable; } public CustomInfo[] getCustomUserInfos(){ List result = new ArrayList(); CustomClassTableModel model = (CustomClassTableModel)customTable.getModel(); List data = model.getData(); if(data != null && data.size() > 0){ for (PropertyInfo customInfo : data) { if(customInfo.property.trim().length() > 0 // && customInfo.value.trim().length() > 0 ){ result.add(customInfo); } } } return result.toArray(new CustomInfo[0]); } public void setData(List data){ CustomClassTableModel model = (CustomClassTableModel)customTable.getModel(); model.setData(data); } private String getI18nString(String spCode) { return ClientHelper.getI18nStringForWorkflow(this.getClass().getName() + "." + spCode, this.getLocale()); } }