package com.vci.client.ui.swing.components.table;
|
|
import java.util.LinkedList;
|
|
import javax.swing.table.AbstractTableModel;
|
|
/**
|
*
|
* <p>Title: </p>
|
* <p>Description: </p>
|
* <p>Copyright: Copyright (c) 2012</p>
|
* <p>Company: VCI</p>
|
* @author xchao
|
* @time 2012-5-10
|
* @version 1.0
|
*/
|
public class VCIJTableModel<T> extends AbstractTableModel {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 5334923802148748989L;
|
|
private String[] columns = null;
|
private Class<?>[] classes = null;
|
private VCIJTablePanel<T> tablePanel = null;
|
private LinkedList<VCIJTableNode<T>> list = new LinkedList<VCIJTableNode<T>>();
|
|
public VCIJTableModel(VCIJTablePanel<T> tablePanel, String[] columns, Class<?>[] classes){
|
this.tablePanel = tablePanel;
|
this.columns = columns;
|
this.classes = classes;
|
}
|
|
public int getRowCount() {
|
return list.size();
|
}
|
|
public int getColumnCount() {
|
return columns.length;
|
}
|
|
public String getColumnName(int column) {
|
if(column < 0 || column >= columns.length) return "";
|
return columns[column];
|
}
|
|
public Class<?> getColumnClass(int columnIndex) {
|
return classes[columnIndex];
|
}
|
|
public Object getValueAt(int rowIndex, int columnIndex) {
|
if(rowIndex < 0 || rowIndex >= list.size()) return "";
|
VCIJTableNode<T> rowNode = list.get(rowIndex);
|
String name = getColumnName(columnIndex);
|
if(name == null || "".equals(name)) return "";
|
Object value = rowNode.getPropertyValue(name);
|
if(value == null || "".equals(value)) return "";
|
return value;
|
}
|
|
public void setValueAt(Object value, int rowIndex, int columnIndex) {
|
VCIJTableNode<T> rowNode = list.get(rowIndex);
|
String name = getColumnName(columnIndex);
|
rowNode.setPropertyValue(name, value);
|
}
|
|
public boolean isCellEditable(int rowIndex, int columnIndex) {
|
boolean res = false;
|
if(tablePanel.isCellEditable() &&
|
tablePanel.getEdiableColumnList().contains(columnIndex)){
|
res = true;
|
}
|
return res;
|
}
|
|
public void addRow(VCIJTableNode<T> t){
|
list.add(t);
|
}
|
|
public void clear(){
|
list.clear();
|
}
|
|
public String[] getColumns() {
|
return columns;
|
}
|
|
public void setColumns(String[] columns) {
|
this.columns = columns;
|
}
|
|
public Class<?>[] getClasses() {
|
return classes;
|
}
|
|
public void setClasses(Class<?>[] classes) {
|
this.classes = classes;
|
}
|
|
public LinkedList<VCIJTableNode<T>> getList() {
|
return list;
|
}
|
|
public void setList(LinkedList<VCIJTableNode<T>> list) {
|
this.list = list;
|
}
|
}
|