Appendix I

Top  Previous  Next

 

Source code for a ListTableModel implementation that extends javax.swing.table.DefaultTableModel

 

import javax.swing.table.*;

import java.util.*;

 

import com.sciapp.table.ListTableModel;

 

public class DefaultListTableModel extends DefaultTableModel implements ListTableModel {

       public DefaultListTableModel() {

               super();

       }

       public DefaultListTableModel(java.lang.Object[][] data, java.lang.Object[] columnNames) {

               super(data, columnNames);

       }

       public DefaultListTableModel(java.lang.Object[] columnNames, int numRows) {

               super(columnNames, numRows);

       }

       public DefaultListTableModel(int numRows, int numColumns) {

               super(numRows, numColumns);

       }

       public DefaultListTableModel(java.util.Vector columnNames, int numRows) {

               super(columnNames, numRows);

       }

       public DefaultListTableModel(java.util.Vector data, java.util.Vector columnNames) {

               super(data, columnNames);

       }

       public void addRow(java.lang.Object row) {

               if (row instanceof Vector)

                       addRow((Vector) row);

               else

                       addRow((Object[]) row);

       }

       public void addRows(java.util.List addedRows) {

               for (int i = 0; i < addedRows.size(); i++) {

                       addRow(addedRows.get(i));

               }

       }

       public void clear() {

               int prevsize = dataVector.size();

               dataVector.clear();

 

               //notify

               fireTableRowsDeleted(0, prevsize);

       }

       public Object getCellValue(Object o, int index) {

               return ((Vector) o).get(index);

       }

       public List getRows() {

               return dataVector;

       }

       public void removeRows(int[] deletedRows) {

               int len = deletedRows.length;

               int min = deletedRows[0];

               int max = deletedRows[len - 1];

               while (len-- > 0) {

                       dataVector.removeElementAt(deletedRows[len]);

               }

 

               //notify

               fireTableRowsDeleted(min, max);

       }

}