All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class edu.tucz.via.ViACanvas

java.lang.Object
   |
   +----java.awt.Component
           |
           +----java.awt.Canvas
                   |
                   +----edu.tucz.via.ViACanvas

public class ViACanvas
extends Canvas
Diese Klasse ist das Canvas, das zum Anzeigen der Grafik-Elemente verwendet wird.

Version:
1.04
Author:
Chris Hübsch

Constructor Index

 o ViACanvas()
Default Kontruktor

Method Index

 o addComposite(CompositeGraphical)
Fügt ein CompositeGraphical zum Canvas hinzu.
 o addItem(GraphicalObject)
Fügt ein GraphicalObject zum Canvas hinzu.
 o delAll()
Entfernt alle Elemente aus dem Canvas.
 o delItem(GraphicalObject)
Entfernt ein GraphicalObject vom Canvas.
 o getZoom()
Liefert die Zoomstufe zurück.
 o layoutAndRepaint()
Diese Methode zeichnet das Canvas nach einem Layout-Vorgang neu.
 o layoutObjects()
Diese Methode führt das Layout über alle GraphicalObjects des Canvas aus.
 o moveObject(CompositeGraphical, Knoten, Location, int)
Diese Methode bewegt einen Knoten in Form einer Animation.
 o moveObject(Knoten, Location, int)
Diese Methode bewegt einen Knoten in Form einer Animation.
 o paint(Graphics)
Zeichnet das Canvas neu.
 o putItem(GraphicalObject)
Fügt ein GraficalObject zum Canvas hinzu.
 o removeAll()
Entfernt alle Elemente aus dem Canvas.
 o removeItem(GraphicalObject)
Entfernt ein GraphicalObject vom Canvas.
 o repaint(Rectangle)
Zeichnet das Canvas innerhalb des angegebenen Rechtecks neu.
 o update(Graphics)
 o zoomIn()
Zoomt das Fenster um den Faktor 2.
 o zoomOut()
Zoomt das Fenster um den Faktor 2.

Constructors

 o ViACanvas
  public ViACanvas()
Default Kontruktor

Methods

 o addItem
  public void addItem(GraphicalObject o)
Fügt ein GraphicalObject zum Canvas hinzu. Nachdem das Objekt hinzugefügt wurde, wird layout für dieses Objekt aufgerufen. Im Anschluß wird das Canvas neu gezeichnet.

Parameters:
o - das hinzuzufügende Objekt
 o addComposite
  public void addComposite(CompositeGraphical o)
Fügt ein CompositeGraphical zum Canvas hinzu. Nachdem die Komposition hinzugefügt wurde, wird es mit exactLayout - dem Layout entsprechend - neu geordnet. Danach wird das Grafikfenster neu gezeichnet.

Parameters:
o - Das CompositeGraphical, das hinzugefügt werden soll
 o removeItem
  public void removeItem(GraphicalObject o)
Entfernt ein GraphicalObject vom Canvas. Danach wird das Canvas neu gezeichnet.

Parameters:
o - das zu entfernende Objekt
 o removeAll
  public void removeAll()
Entfernt alle Elemente aus dem Canvas. Danach wird das Canvas neu gezeichnet.

 o putItem
  public void putItem(GraphicalObject o)
Fügt ein GraficalObject zum Canvas hinzu. Danach wird weder layout aufgerufen noch neu gezeichnet.

Parameters:
o - das hinzuzufügende Objekt
 o delItem
  public void delItem(GraphicalObject o)
Entfernt ein GraphicalObject vom Canvas. Danach wird das Canvas nicht neu gezeichnet.

Parameters:
o - das zu entfernende Objekt
 o delAll
  public void delAll()
Entfernt alle Elemente aus dem Canvas. Es wird jedoch nicht neu gezeichnet.

 o moveObject
  public void moveObject(Knoten o,
                         Location to,
                         int steps)
Diese Methode bewegt einen Knoten in Form einer Animation. Der übergebene Knoten wird in steps Schritten auf die neue Position to bewegt. Dabei wird nach jedem Schritt der Knoten neu gezeichnet. Um die Geschwindigkeit zu steigern, wurde eine ClippingRegion verwendet. Deren Größe wird vom Knoten in der Methode getBoundingRect geliefert. Verbundene Objekte, wie z.B. Pfeile werden nicht mit bewegt.

Parameters:
o - der zu bewegende Knoten
to - die neue Position des Knotens
steps - die Anzahl der Schritte (1..50)
See Also:
getBoundingRect
 o moveObject
  public void moveObject(CompositeGraphical aggregate,
                         Knoten o,
                         Location to,
                         int steps)
Diese Methode bewegt einen Knoten in Form einer Animation. Der übergebene Knoten wird in steps Schritten auf die neue Position to bewegt. Alle vom Konten abhänigigen Objekte (z.B. Pfeile) werden auch neu gezeichnet, nachdem sie an die neue Position des Knotens angepaßt wurden. Die abhängigen Objekte werden vom Layout ermittelt. Dazu wird die Methode getAllEffected des Layouts verwendet. Nach jedem Schritt werden der Knoten und alle verbundenen Objekte neu gezeichnet. Um die Geschwindigkeit zu steigern, wurde eine ClippingRegion verwendet. Deren Größe mit Hilfe der Methoden getBoundingRect ermittelt. Die ClippingRegion ist die Zusammenfassung aller dieser Einzelrechtecke.

Parameters:
aggregate - der Layoutmanger, in dem der Knoten ist
o - der zu bewegende Knoten
to - die neue Position des Knotens
steps - die Anzahl der Schritte (1..50)
See Also:
getBoundingRect, getAllEffected
 o layoutAndRepaint
  public void layoutAndRepaint()
Diese Methode zeichnet das Canvas nach einem Layout-Vorgang neu. Es wird die einfache Methode layout verwendet. Das bedeutet, daß CompositeGraphicals nicht nach den Layout-Regeln angeordnet werden.

 o update
  public void update(Graphics g)
Overrides:
update in class Component
 o paint
  public void paint(Graphics g)
Zeichnet das Canvas neu. Wenn sich die Größe des Fensters geändert hat, dann wird Layout neu aufgerufen. Es wird die einfache Methode layout verwendet. Das bedeutet, daß CompositeGraphicals nicht nach den Layout-Regeln angeordnet werden.

Parameters:
g - ein GraphicContext auf den gezeichnet wird
Overrides:
paint in class Canvas
 o zoomIn
  public void zoomIn()
Zoomt das Fenster um den Faktor 2. Alle Objekte (außer den Indicator-Pfeilen) werden kleiner. Nach dem Zoom ist die ursprüngliche Region in der linken-oberen Ecke. Es wird nicht neu gezeichnet! Und es wird auch kein Layouting gemacht.

 o zoomOut
  public void zoomOut()
Zoomt das Fenster um den Faktor 2. Es wird nicht neu gezeichnet! Alle Objekte (außer den Indicator-Pfeilen) werden größer.

 o getZoom
  public double getZoom()
Liefert die Zoomstufe zurück.

Returns:
die Stufe des Zooms.
 o layoutObjects
  public void layoutObjects()
Diese Methode führt das Layout über alle GraphicalObjects des Canvas aus. Entsprechend des Zoomlevels wird die virtuelle Breite und Höhe des Fensters angepaßt. Standardmäßig ist die Breite des Canvas' immer 1000 virtuelle Punkte. Ein Zoom ändert die Zahl entsprechend. Die Höhe ist nicht vorhersagbar. Sie wird so eingestellt, daß eine virtuelle Breiteneinheit auf dem Bildschirm die gleiche Länge hat, wie eine virtuelle Höheneinheit. Es kann also nicht zu "elliptischen" Kreisen kommen.

 o repaint
  public void repaint(Rectangle r)
Zeichnet das Canvas innerhalb des angegebenen Rechtecks neu.

Parameters:
r - Das Rechteck, daß neu zu zeichnen ist.

All Packages  Class Hierarchy  This Package  Previous  Next  Index