/*
* YAV (Yet another Visualiser)
* (c) 2004 by Robin Quast
* Version 1.0 (04.03.2004)
*
* erstellt im Rahmen der Diplomarbeit
* "Theorie und Java- Realisierung
* ausgewählter Algorithmen zur
* Bestimmung kürzester Wege in Graphen"
*
* betreut durch Prof. Dr. Lenze
* an der Fachhochschule Dortmund
* im SS 2003/ WS 2003/2004
*
* @(#)PredecessorTableModel.java 1.0 04/03/09
*/
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import java.util.Vector;
import java.util.Collections;
class PredecessorTableModel
extends AbstractTableModel {
/** Spaltenüberschriften festlegen.
*/
final String[] columnNames = {"Knoten",
"Vorgänger"
};
/** Der Vector data hält die Knoten mit den Vorgängern der Tabelle.
* Diese werden als Kante in dem Vector gehalten, wobei die Kosten
* nicht angezeigt werden und auch für die Anzeige nicht wichtig sind.
*/
int [] data = {};
/** Anzahl der Spalten ermitteln.
*/
public int getColumnCount() {
return columnNames.length;
}
/** Anzahl der Zeilen ermitteln.
*/
public int getRowCount() {
//return data.size();
return data.length;
}
/** Spaltenname für Spalte <i>col</I> zurückgeben.
*/
public String getColumnName(int col) {
return columnNames[col];
}
/** Wert an Zeile <I>row</I> und Spalte <I>col</I> zurückgeben.
*/
public Object getValueAt(int row, int col) {
switch (col)
{
case 0: return (Object) new Integer(row);
case 1:
if (!(data[row]==-1)) return (Object) new Integer(data[row]);
else return (Object) new String("-");
}
return null;
}
/** Alle Datenzeilen löschen. Alle Elemente des Vectors data werden
* gelöscht und die Größe des Vectors wird auf 0 gesetzt.
*/
public void removeRows() {
int elements = data.length;
data = new int[0];
fireTableRowsDeleted(0,elements);
}
/** Keine Zelle ist editierbar.
*/
public boolean isCellEditable(int row, int col) {
return false;
}
/** Alle Zeilen werden gelöscht und die Zeilen aus dem übergebenen Array
* übernommen.
*/
public void setRows(int[] pred) {
removeRows();
data = new int [pred.length];
System.arraycopy(pred,0,data,0,pred.length);
fireTableRowsInserted(0,data.length-1);
}
}
|