/*
* 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
*
*
* @(#)EdgeTable.java 1.0 04/03/09
*/
import javax.swing.*;
import java.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import java.util.Enumeration;
import java.lang.Math;
import java.util.Collections;
import java.awt.geom.*;
import javax.swing.table.AbstractTableModel;
/** Klasse die die Kantenliste in einem JTable abbildet, damit sie für
* den Anwender in einer graphischen Oberfläche sichtbar gemacht werden kann.
*/
class EdgeTable
extends JTable
implements KeyListener {
/** Konstruktor, der das übergebene TableModel setzt und Voreinstellungen
* vornimmt.
*/
public EdgeTable(AbstractTableModel atm) {
super();
setModel(atm);
setPreferences();
}
/** Konstruktor, der ein EdgeTableModel erzeugt und Voreinstellungen
* vornimmt.
*/
public EdgeTable() {
super();
setModel(new EdgeTableModel());
setPreferences();
}
/** Setzen von initialen Werten.
*/
public void setPreferences() {
setPreferredScrollableViewportSize(new Dimension(150, 200));
getTableHeader().setReorderingAllowed(false);
setShowGrid(true);
setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//0);
addKeyListener(this);
setColumnSelectionInterval(2,2);
}
/** Eventhandling, wenn eine Taste gedrückt wurde.
*/
public void keyPressed(KeyEvent e) {
setColumnSelectionInterval(2,2);
repaint();
}
/** Eventhandling, wenn eine Taste losgelassen wurde.
*/
public void keyReleased(KeyEvent e) {
setColumnSelectionInterval(2,2);
repaint();
}
/** Wurde eine Taste gedrückt, dann soll ein repaint ausgeführt werden.
*/
public void keyTyped(KeyEvent e) {
setColumnSelectionInterval(2,2);
repaint();
}
/** Löschen der selektierten Kante.
*/
public void removeRow() {
int index = getSelectedRow();
removeRow(index);
}
/** Löschen der Kante mit dem Index i.
*/
public void removeRow(int index) {
if (index>=0) {
((EdgeTableModel)getModel()).removeRow(index);
}
repaint();
}
}
|