EdgeTable.java

/*
 *     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(150200));
    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();    
  }

  
}
Java2html