package com.vci.client.workflow.editor.user; import java.util.ArrayList; import java.util.List; import java.util.Locale; import javax.swing.table.AbstractTableModel; import com.vci.client.workflow.commom.ClientHelper; import com.vci.corba.workflow.data.CustomInfo; public class CustomTableModel extends AbstractTableModel { private static final long serialVersionUID = -655431475234368469L; private String[] columns = {"类名称", "参数值"}; private List data; public CustomTableModel() { data = new ArrayList(); } public void setData(List data) { this.data = data; fireTableDataChanged(); } public void addRow() { if(data.size()==0){ data = new ArrayList(); } data.add(new CustomInfo()); fireTableDataChanged(); } public void addRow(CustomInfo info) { data.add(info); fireTableDataChanged(); } public void deleteRow(int[] selectedRows) { for (int i = selectedRows.length - 1; i >= 0 ; i--) { data.remove(selectedRows[i]); } fireTableDataChanged(); } public int getRowCount() { if(data == null) { return 0; } return data.size(); } public int getColumnCount() { return columns.length; } public Object getValueAt(int rowIndex, int columnIndex) { if(data == null) { return null; } CustomInfo customInfo = data.get(rowIndex); if(columnIndex == 0) { return customInfo.className; }else{ return customInfo.value; } } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { CustomInfo customInfo = data.get(rowIndex); switch (columnIndex) { case 0: customInfo.className = (String)aValue; break; default: customInfo.value = (String)aValue; break; } } @Override public Class getColumnClass(int columnIndex) { return String.class; } @Override public String getColumnName(int column) { return columns[column]; } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } public List getData() { return data; } private String getI18nString(String code){ return ClientHelper.getI18nStringForWorkflow(this.getClass().getName() + "." + code, Locale.getDefault()); } }