package com.vci.client.workflow.editor.ui;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
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.ui.locale.LocaleDisplay;
|
import com.vci.client.workflow.commom.ClientHelper;
|
import com.vci.client.workflow.delegate.EventConfClientDelegate;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.workflow.data.PropertyInfo;
|
|
public class ProcessPropertyEditPanel extends JPanel {
|
private static final long serialVersionUID = 1300418480939892949L;
|
|
private JTable propertyTable;
|
private JButton addBtn;
|
private JButton deleteBtn;
|
public ProcessPropertyEditPanel() {
|
initUI();
|
addListener();
|
}
|
|
private void addListener() {
|
addBtn.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
VariableTableModel model = (VariableTableModel)propertyTable.getModel();
|
model.addRow();
|
}
|
});
|
|
deleteBtn.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
int[] selectedRows = propertyTable.getSelectedRows();
|
VariableTableModel model = (VariableTableModel)propertyTable.getModel();
|
model.deleteRow(selectedRows);
|
}
|
});
|
}
|
|
private void initUI() {
|
setLayout(new BorderLayout());
|
add(new JScrollPane(getPropertyTable()), 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);
|
}
|
|
private JTable getPropertyTable() {
|
if(propertyTable == null) {
|
propertyTable = new JTable(new VariableTableModel());
|
propertyTable.setRowHeight(20);
|
|
Dimension size = propertyTable.getTableHeader().getPreferredSize();
|
size.height = 22;
|
propertyTable.getTableHeader().setPreferredSize(size);
|
|
// JComboBox c = new JComboBox(getParamTypes(""));//在下拉列表中选择phase
|
// propertyTable.getColumnModel().getColumn(0).setCellEditor(new DblclickCellEditor(c,propertyTable));
|
|
// JComboBox cType = new JComboBox();//在下拉列表中选择类型
|
// cType.addItem("");
|
// cType.addItem("String");
|
// cType.addItem("Map");
|
// propertyTable.getColumnModel().getColumn(1).setCellEditor(new DblclickCellEditor(cType,propertyTable));
|
}
|
return propertyTable;
|
}
|
|
/**
|
* 参数列表
|
* @param param
|
* @return
|
*/
|
private PropertyObject[] getParamTypes(String param) {
|
/*String[] types = EventProperties.getStringProperty("workflow.event.type").split(",");*/
|
//add by caill start 2016.4.8 通过corba连接服务端
|
String[] types = null;
|
try {
|
types = new EventConfClientDelegate().getStringProperty("workflow.event.type").split(",");
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
//add by caill end
|
List<PropertyObject> taskTypes = new ArrayList<PropertyObject>();
|
taskTypes.add(new PropertyObject("", ""));
|
for (int i = 0; i < types.length; i++) {
|
/*taskTypes.add(new PropertyObject(types[i],
|
EventProperties.getStringProperty("workflow.event.type." + types[i]+".field")));*/
|
//add by caill start 2016.4.8 通过corba连接服务端
|
try {
|
taskTypes.add(new PropertyObject(types[i],
|
new EventConfClientDelegate().getStringProperty("workflow.event.type." + types[i]+".field")));
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
//add by caill end
|
}
|
return taskTypes.toArray(new PropertyObject[0]);
|
}
|
private String getI18nForEvent(String key) {
|
return LocaleDisplay.getI18nString(key, "RMIPWorkflow", getLocale());
|
}
|
public PropertyInfo[] getPropertyInfos(){
|
List<PropertyInfo> result = new ArrayList<PropertyInfo>();
|
VariableTableModel model = (VariableTableModel)propertyTable.getModel();
|
List<PropertyInfo> data = model.getData();
|
if(data != null && data.size() > 0){
|
for (PropertyInfo propertyInfo : data) {
|
if(propertyInfo.property.trim().length() > 0
|
&& propertyInfo.value.trim().length() > 0){
|
result.add(propertyInfo);
|
}
|
}
|
}
|
return result.toArray(new PropertyInfo[0]);
|
}
|
|
public void setData(List<PropertyInfo> data){
|
VariableTableModel model = (VariableTableModel)propertyTable.getModel();
|
model.setData(data);
|
}
|
|
private String getI18nString(String spCode) {
|
return ClientHelper.getI18nStringForWorkflow(this.getClass().getName() + "." + spCode, this.getLocale());
|
}
|
/**
|
* 直接取得table中cell的值
|
* @param table
|
*/
|
public void cursorLeave(JTable table) {
|
try {
|
if (table == null) {
|
return;
|
}
|
if (table.isEditing()) {
|
table.getCellEditor(table.getEditingRow(), table.getEditingColumn()).stopCellEditing();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|