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<PropertyInfo> result = new ArrayList<PropertyInfo>();
|
CustomClassTableModel model = (CustomClassTableModel)customTable.getModel();
|
List<PropertyInfo> 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<PropertyInfo> data){
|
CustomClassTableModel model = (CustomClassTableModel)customTable.getModel();
|
model.setData(data);
|
}
|
|
private String getI18nString(String spCode) {
|
return ClientHelper.getI18nStringForWorkflow(this.getClass().getName() + "." + spCode, this.getLocale());
|
}
|
|
}
|