package com.vci.client.ui.swing.components.table; import java.util.LinkedList; import javax.swing.table.AbstractTableModel; /** * *

Title:

*

Description:

*

Copyright: Copyright (c) 2012

*

Company: VCI

* @author xchao * @time 2012-5-10 * @version 1.0 */ public class VCIJTableModel extends AbstractTableModel { /** * */ private static final long serialVersionUID = 5334923802148748989L; private String[] columns = null; private Class[] classes = null; private VCIJTablePanel tablePanel = null; private LinkedList> list = new LinkedList>(); public VCIJTableModel(VCIJTablePanel 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 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 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){ 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> getList() { return list; } public void setList(LinkedList> list) { this.list = list; } }