Class GraphPanel.AutomatenGraph

java.lang.Object
  |
  +--Graph
        |
        +--GraphPanel.AutomatenGraph

class GraphPanel.AutomatenGraph
extends Graph
implements java.awt.event.MouseMotionListener, java.awt.event.MouseListener

Erweiterung der Klasse Graph zur speziellen Darstellung von Zustandsübergangsgraphen in endlichen Automaten


Inner classes inherited from class Graph
Graph.Kante, Graph.Knoten, Graph.XKnotenNichtVorhanden
 
Field Summary
private  boolean animated
          Status der Animation während der Simulation
(package private)  java.awt.Dimension dimension
          momentane Größe des Graphen
private  java.awt.Graphics offgraphics
          Hilfsgrafik zur Unterstützung von Drag-n-Drop
private  java.awt.Image offscreen
          Hilfsgrafik zur Unterstützung von Drag-n-Drop
private  java.awt.Dimension offscreensize
          Hilfsvariable zur Unterstützung von Drag-n-Drop
private  Graph.Knoten selected
          momentan ausgewählter Knoten
 
Fields inherited from class Graph
kanten, knoten
 
Constructor Summary
GraphPanel.AutomatenGraph()
           
GraphPanel.AutomatenGraph(java.awt.Dimension dimension)
          richtet einen leeren Graphen mit gegebener Dimenstion ein
GraphPanel.AutomatenGraph(Graph graph, java.awt.Dimension dimension)
          richtet einen Graphen mit gegebener Dimenstion ein
 
Method Summary
private  java.awt.Point calcMidPos(java.awt.Point vonpos, java.awt.Point bispos, int lenratio)
          berechnet einen Punkt auf einer Linie zwischen zwei anderen Punkteb entsprechend eines Teilerverhältnisses
private  int dist(java.awt.Point p, java.awt.Point q)
          berechnet den Abstand zwischen zwei Punkten
protected  void doCircLayout()
          führt die Ausrichtung im Kreis durch
 void doCircLayout(boolean dorepaint)
          Layout-Algorithmus: Ausrichtung der Knoten im Kreis
 void doLayout()
          richtet den Graphen aus
 void doLayout(boolean dorepaint)
          richtet den Graphen aus
private  java.awt.Point getCircPosition(int i, int n)
          liefert die Koordinaten eines Knotens bei CircLayout
 java.awt.Dimension getSize()
          liefert die Größe des Graphen
 boolean isAnimated()
          liefert den Animationsstatus
 void mouseClicked(java.awt.event.MouseEvent e)
           
 void mouseDragged(java.awt.event.MouseEvent e)
          wir verschieben den Knoten
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mouseMoved(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
          Aufruf, wenn Maus gedrueckt wird
 void mouseReleased(java.awt.event.MouseEvent e)
          Wenn der Mouse-Button losgelassen wird
 void paint(java.awt.Graphics g)
          zeichnet den Graphen
private  void paintKante(java.awt.Graphics g, Graph.Kante kante)
          zeichnet eine Kante des Graphen
private  void paintKantenBeschriftung(java.awt.Graphics g, java.awt.Point pos, java.lang.String text, boolean hervorgehoben)
          Zeichnet die Beschriftung einer Kante
 void repaint()
          zeichnet den Graphen neu (wird von Simulation ausgerufen)
 void setAnimated(boolean animated)
          ändert den Animationsstatus
 void setDimension(java.awt.Dimension dimension)
          ändert die Größe
 void update(java.awt.Graphics g)
          wir sorgen dafuer, dass es nicht flimmert
 
Methods inherited from class Graph
addKante, addKnoten, clone, getKante, getKnoten, kanteHervorheben, kanteHervorheben, knotenHervorheben, knotenHervorheben, reset, toString
 
Methods inherited from class java.lang.Object
, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

dimension

java.awt.Dimension dimension
momentane Größe des Graphen

offscreen

private java.awt.Image offscreen
Hilfsgrafik zur Unterstützung von Drag-n-Drop

offgraphics

private java.awt.Graphics offgraphics
Hilfsgrafik zur Unterstützung von Drag-n-Drop

offscreensize

private java.awt.Dimension offscreensize
Hilfsvariable zur Unterstützung von Drag-n-Drop

selected

private Graph.Knoten selected
momentan ausgewählter Knoten

animated

private boolean animated
Status der Animation während der Simulation
Constructor Detail

GraphPanel.AutomatenGraph

public GraphPanel.AutomatenGraph(java.awt.Dimension dimension)
richtet einen leeren Graphen mit gegebener Dimenstion ein

GraphPanel.AutomatenGraph

public GraphPanel.AutomatenGraph(Graph graph,
                                 java.awt.Dimension dimension)
richtet einen Graphen mit gegebener Dimenstion ein

GraphPanel.AutomatenGraph

public GraphPanel.AutomatenGraph()
Method Detail

getSize

public java.awt.Dimension getSize()
liefert die Größe des Graphen

setDimension

public void setDimension(java.awt.Dimension dimension)
ändert die Größe

setAnimated

public void setAnimated(boolean animated)
ändert den Animationsstatus

isAnimated

public boolean isAnimated()
liefert den Animationsstatus

doLayout

public void doLayout(boolean dorepaint)
richtet den Graphen aus
Parameters:
dorepaint - Neuzeichnen veranlassen

doLayout

public void doLayout()
richtet den Graphen aus

doCircLayout

public void doCircLayout(boolean dorepaint)
Layout-Algorithmus: Ausrichtung der Knoten im Kreis

getCircPosition

private java.awt.Point getCircPosition(int i,
                                       int n)
liefert die Koordinaten eines Knotens bei CircLayout
Parameters:
i - Index des Knoten 0..n-1
n - Anzahl der Knoten

doCircLayout

protected void doCircLayout()
führt die Ausrichtung im Kreis durch

paintKantenBeschriftung

private void paintKantenBeschriftung(java.awt.Graphics g,
                                     java.awt.Point pos,
                                     java.lang.String text,
                                     boolean hervorgehoben)
Zeichnet die Beschriftung einer Kante
Parameters:
g - Zeichenobjekt
pos - Textursprung
text - darzustellender Text
hervorgehoben - Kante hervorheben

calcMidPos

private java.awt.Point calcMidPos(java.awt.Point vonpos,
                                  java.awt.Point bispos,
                                  int lenratio)
berechnet einen Punkt auf einer Linie zwischen zwei anderen Punkteb entsprechend eines Teilerverhältnisses
Parameters:
vonpos - Startpunkt der Linie
bispos - Endpunkt der Linie
lenration - Teilerverhältnis

paintKante

private void paintKante(java.awt.Graphics g,
                        Graph.Kante kante)
zeichnet eine Kante des Graphen

paint

public void paint(java.awt.Graphics g)
zeichnet den Graphen

update

public void update(java.awt.Graphics g)
wir sorgen dafuer, dass es nicht flimmert

repaint

public void repaint()
zeichnet den Graphen neu (wird von Simulation ausgerufen)
Overrides:
repaint in class Graph

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
wir verschieben den Knoten
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener

mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Wenn der Mouse-Button losgelassen wird
Specified by:
mouseReleased in interface java.awt.event.MouseListener

dist

private int dist(java.awt.Point p,
                 java.awt.Point q)
berechnet den Abstand zwischen zwei Punkten
Parameters:
p - Punkt 1
p - Punkt 2
Returns:
das Quadrat des Abstands

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Aufruf, wenn Maus gedrueckt wird
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface java.awt.event.MouseListener