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
-
ViACanvas()
- Default Kontruktor
-
addComposite(CompositeGraphical)
- Fügt ein CompositeGraphical zum Canvas hinzu.
-
addItem(GraphicalObject)
- Fügt ein GraphicalObject zum Canvas hinzu.
-
delAll()
- Entfernt alle Elemente aus dem Canvas.
-
delItem(GraphicalObject)
- Entfernt ein GraphicalObject vom Canvas.
-
getZoom()
- Liefert die Zoomstufe zurück.
-
layoutAndRepaint()
- Diese Methode zeichnet das Canvas nach einem Layout-Vorgang neu.
-
layoutObjects()
- Diese Methode führt das Layout über alle GraphicalObjects des Canvas aus.
-
moveObject(CompositeGraphical, Knoten, Location, int)
- Diese Methode bewegt einen Knoten in Form einer Animation.
-
moveObject(Knoten, Location, int)
- Diese Methode bewegt einen Knoten in Form einer Animation.
-
paint(Graphics)
- Zeichnet das Canvas neu.
-
putItem(GraphicalObject)
- Fügt ein GraficalObject zum Canvas hinzu.
-
removeAll()
- Entfernt alle Elemente aus dem Canvas.
-
removeItem(GraphicalObject)
- Entfernt ein GraphicalObject vom Canvas.
-
repaint(Rectangle)
- Zeichnet das Canvas innerhalb des angegebenen Rechtecks neu.
-
update(Graphics)
-
-
zoomIn()
- Zoomt das Fenster um den Faktor 2.
-
zoomOut()
- Zoomt das Fenster um den Faktor 2.
ViACanvas
public ViACanvas()
- Default Kontruktor
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
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
removeItem
public void removeItem(GraphicalObject o)
- Entfernt ein GraphicalObject vom Canvas.
Danach wird das Canvas neu gezeichnet.
- Parameters:
- o - das zu entfernende Objekt
removeAll
public void removeAll()
- Entfernt alle Elemente aus dem Canvas.
Danach wird das Canvas neu gezeichnet.
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
delItem
public void delItem(GraphicalObject o)
- Entfernt ein GraphicalObject vom Canvas.
Danach wird das Canvas nicht neu gezeichnet.
- Parameters:
- o - das zu entfernende Objekt
delAll
public void delAll()
- Entfernt alle Elemente aus dem Canvas.
Es wird jedoch nicht neu gezeichnet.
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
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
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.
update
public void update(Graphics g)
- Overrides:
- update in class Component
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
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.
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.
getZoom
public double getZoom()
- Liefert die Zoomstufe zurück.
- Returns:
- die Stufe des Zooms.
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.
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