mapper.GUIComponents
Class PaintingArea

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by mapper.GUIComponents.PaintingArea
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class PaintingArea
extends javax.swing.JComponent

Klasse auf dem die graphischen Darstellung der Szenariokarte erstellt wird.

Author:
Emanuel Eden
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  double _currentZoom
           
private  boolean _hidePictureInPaintingArea
           
protected  java.awt.image.BufferedImage _image
           
private  boolean _mapInPaintingArea
           
private  boolean _marked
           
private  MovementField _movementField
           
private  Node _node
           
private  boolean _paintingAreaIsDefind
           
private  boolean _paintPath
           
private  boolean _paintRectangle
           
private  PathLine _pline
           
protected  java.awt.image.BufferedImage _transImage
           
private  ValueTable _valueTable
           
private  double _zoom
           
(package private)  java.awt.Color black
           
(package private)  java.awt.Color blue
           
(package private)  java.awt.Color dblue
           
(package private)  java.awt.Color red
           
(package private)  java.awt.Color white
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PaintingArea()
          Initialisierung der PaintingArea
 
Method Summary
private  double computeZRX()
          Berechnet die tatsächlichen Ausmaße eines Objektes mittels des Zoom Faktors und der Differenz zwischen Karte und Szenario Dimensionen.
private  double computeZRY()
          Berechnet die tatsächlichen Ausmaße eines Objektes mittels des Zoom Faktors und der Differenz zwischen Karte und Szenario Dimensionen.
private  void drawMarkedNode(java.awt.Graphics g)
          Zeichnet ein markiertes Node in der Farbe rot.
private  void drawMarkedPolygon(java.awt.Graphics g)
          Zeichnet ein Markiertes MovementField Objekt in der Farbe rot.
private  void drawMovementField(java.awt.Graphics g)
          Zeichnet alle MovementFields in die PaintingArea
private  void drawMovementFieldCreation(java.awt.Graphics g)
          Zeichnet ein unfertiges MovementField Objekt.
private  void drawNodes(java.awt.Graphics g)
          Zeichnet alle Nodes in der PaintingArea.
private  void drawPaintingArea(java.awt.Graphics g)
          Zeinet die Ausmaße der PaintingArea in der definierten Grösse des Szenarios in der Farbe weiß.
private  void drawPath(java.awt.Graphics g)
          Zeichnet den Path eines Nodes oder MovementFields.
private  void drawRectangle(java.awt.Graphics g)
          Zeichnet das unfertige Rectangle eines MovementFields.
 void finishPath()
          Beendet die Eingabe für dem Path eines TimeSchedulers TimeSlots und setzt alle Werte auf default Werte.
 void finishRectangle()
          Beendet das Zeichnen eines Rectangles und setzt alle Werte auf default.
private static void flush(java.awt.Image image)
          Löscht das Image (Bereinigt das Image-Objekt).
static java.awt.GraphicsConfiguration getDefaultConfiguration()
          Liefert immer die Grafikkonfiguration der BasisConfiguration zurück.
 java.awt.Dimension getPreferredSize()
          Liefert die momentane Dimension zurück, damit z.B die Ausmaße für die JScroll richtig eingefügt werden können.
 Position getRelationship()
          Liefert die Differenz zwischen Karte und Szenario Dimension
 void hideImage()
          Versteckt das Kartenimage
private  java.awt.image.BufferedImage loadImage(java.io.File image)
          Läd das Image aus der Datei in den Objektpuffer.
protected  void paintComponent(java.awt.Graphics g)
          PaintingArea Ausgabe.
private  java.awt.image.BufferedImage resize(java.awt.image.BufferedImage src, double zoom)
          Ändert die Dimensionen des Images, sofern der Zoomfaktor verändert wurde.
 void setDimension(ValueNew valueNew)
          Legt die Dimension der PaintingArea fest.
 void setImageFile(java.io.File file)
          Legt die Karte für die PaintingArea fest und berechnet die Differenz zwischen PaintingArea und des momentanen Map-Pictures.
private  void setImageToPaintingArea(java.io.File file)
          Gibt das Image auf der PaintingArea aus oder genauer erlaubt der PaintingArea es zu zeichnen
 void setMarked(boolean marked)
          Setzt die Markierung eines Objektes in der PaintingArea ein.
 void setMovementField(MovementField movementField)
          Übergibt ein unfertiges MovementField, damit bei seiner Generierung die Polygonknoten in der PaintingArea angezeigt werden können oder, damit es als markiert angezeigt werden kann.
 void setNode(Node node)
          Setzt ein neues Node, als markiertes Node ein.
 void setPath(PathLine pline)
          Setzt eine Linie in die PaintingArea.
 void setRectangle(Position position1, Position position2)
          Zeichnet ein Rectangle in der Phase in der es noch nicht seine endgültige Position bekommen hat.
 void setValueTable(ValueTable valueTable)
          Setzt ein neues Value Table in die PaintingArea
 void zoom(double zoom)
          Berechnet den Zoom neu und übergigt sie ans _transImage.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_image

protected java.awt.image.BufferedImage _image

_transImage

protected java.awt.image.BufferedImage _transImage

_valueTable

private ValueTable _valueTable

_movementField

private MovementField _movementField

_node

private Node _node

_pline

private PathLine _pline

_paintingAreaIsDefind

private boolean _paintingAreaIsDefind

_mapInPaintingArea

private boolean _mapInPaintingArea

_hidePictureInPaintingArea

private boolean _hidePictureInPaintingArea

_marked

private boolean _marked

_paintRectangle

private boolean _paintRectangle

_paintPath

private boolean _paintPath

_currentZoom

private double _currentZoom

_zoom

private double _zoom

blue

java.awt.Color blue

dblue

java.awt.Color dblue

red

java.awt.Color red

black

java.awt.Color black

white

java.awt.Color white
Constructor Detail

PaintingArea

public PaintingArea()
Initialisierung der PaintingArea

Method Detail

getDefaultConfiguration

public static java.awt.GraphicsConfiguration getDefaultConfiguration()
Liefert immer die Grafikkonfiguration der BasisConfiguration zurück.


setDimension

public void setDimension(ValueNew valueNew)
Legt die Dimension der PaintingArea fest.

Parameters:
valueNew - Informationen über das Szenario

setImageFile

public void setImageFile(java.io.File file)
Legt die Karte für die PaintingArea fest und berechnet die Differenz zwischen PaintingArea und des momentanen Map-Pictures.

Parameters:
file - Imagefile auf dem die Karte gezeichnet ist.

zoom

public void zoom(double zoom)
Berechnet den Zoom neu und übergigt sie ans _transImage.

Parameters:
zoom - Zoomfaktor

hideImage

public void hideImage()
Versteckt das Kartenimage


setMovementField

public void setMovementField(MovementField movementField)
Übergibt ein unfertiges MovementField, damit bei seiner Generierung die Polygonknoten in der PaintingArea angezeigt werden können oder, damit es als markiert angezeigt werden kann.

Parameters:
movementField - Übergibt ein neu zu generierendes MovementField. Das MovementField wird erst in die PaintingArea gezeichnet, wenn setMarked auf true gesetzt wird.

setNode

public void setNode(Node node)
Setzt ein neues Node, als markiertes Node ein. Das Node wird erst in die PaintingArea gezeichnet, wenn setMarked auf true gesetzt wird.

Parameters:
node - zu markierendesNode

setMarked

public void setMarked(boolean marked)
Setzt die Markierung eines Objektes in der PaintingArea ein. Falls ein true eingesetzt wird, befindet sich ein Objekt in der PaintingArea. Ein neues markiertes Objekt kann mit setMovementField oder mit setNode eingesetzt werden.

Parameters:
marked - Kennzeichnet ein belibiges Objekt als markiert

getPreferredSize

public java.awt.Dimension getPreferredSize()
Liefert die momentane Dimension zurück, damit z.B die Ausmaße für die JScroll richtig eingefügt werden können.

Overrides:
getPreferredSize in class javax.swing.JComponent
Returns:
Dimension Ausmaße der PaintingArea

setValueTable

public void setValueTable(ValueTable valueTable)
Setzt ein neues Value Table in die PaintingArea

Parameters:
valueTable - neues ValueTable

getRelationship

public Position getRelationship()
Liefert die Differenz zwischen Karte und Szenario Dimension

Returns:
Position der RelationShip Differenz

setPath

public void setPath(PathLine pline)
Setzt eine Linie in die PaintingArea. Dies wird verwendet um den letzten Abschnitt eines Paths zwischen markiertem Objekt (Stoppunkt des letzten TimeSlots im TimeScheduler) des markierten Objektes und dem Cursor zu setzten.

Parameters:
pline - Line zwischen TimeSlot Endpunkt und Cursor

finishPath

public void finishPath()
Beendet die Eingabe für dem Path eines TimeSchedulers TimeSlots und setzt alle Werte auf default Werte.


setRectangle

public void setRectangle(Position position1,
                         Position position2)
Zeichnet ein Rectangle in der Phase in der es noch nicht seine endgültige Position bekommen hat. (Themporäres Rectangle)

Parameters:
position1 - Anfangsposition
position2 - momentane Cursorposition

finishRectangle

public void finishRectangle()
Beendet das Zeichnen eines Rectangles und setzt alle Werte auf default.


loadImage

private java.awt.image.BufferedImage loadImage(java.io.File image)
Läd das Image aus der Datei in den Objektpuffer. Bei dem Image handelt es sich um die definierte Hintergrundkarte des Szenarios.

Parameters:
image - Location und Name des zu landenden Images
Returns:
BufferedImage Liefert das geladene Image zurück.

resize

private java.awt.image.BufferedImage resize(java.awt.image.BufferedImage src,
                                            double zoom)
Ändert die Dimensionen des Images, sofern der Zoomfaktor verändert wurde.

Parameters:
src - Image dessen Zoomfaktor geändert werden soll
zoom - Zoomfaktor der auf das Image angewendet werden soll
Returns:
BufferedImage Liefert das neu berechnete Image zurück.

setImageToPaintingArea

private void setImageToPaintingArea(java.io.File file)
Gibt das Image auf der PaintingArea aus oder genauer erlaubt der PaintingArea es zu zeichnen

Parameters:
file - Location der Karte

flush

private static void flush(java.awt.Image image)
Löscht das Image (Bereinigt das Image-Objekt). Wird vor der Neuberechnung ausgeführt.

Parameters:
image - Das Image das bereinigt werden soll

paintComponent

protected void paintComponent(java.awt.Graphics g)
PaintingArea Ausgabe. Zeichnen der Komponenten.

Overrides:
paintComponent in class javax.swing.JComponent

drawPaintingArea

private void drawPaintingArea(java.awt.Graphics g)
Zeinet die Ausmaße der PaintingArea in der definierten Grösse des Szenarios in der Farbe weiß.

Parameters:
g - Grafik-Kontext

drawPath

private void drawPath(java.awt.Graphics g)
Zeichnet den Path eines Nodes oder MovementFields.

Parameters:
g - Grafik-Kontexte

drawRectangle

private void drawRectangle(java.awt.Graphics g)
Zeichnet das unfertige Rectangle eines MovementFields.

Parameters:
g - Grafik-Kontexte

drawNodes

private void drawNodes(java.awt.Graphics g)
Zeichnet alle Nodes in der PaintingArea.

Parameters:
g - Grafik-Kontexte

drawMovementField

private void drawMovementField(java.awt.Graphics g)
Zeichnet alle MovementFields in die PaintingArea

Parameters:
g - Grafik-Kontexte

drawMovementFieldCreation

private void drawMovementFieldCreation(java.awt.Graphics g)
Zeichnet ein unfertiges MovementField Objekt. Alle bereits definierten Knoten und die Zuordnung zueinander werden gezeichnet.

Parameters:
g - Grafik-Kontexte

drawMarkedPolygon

private void drawMarkedPolygon(java.awt.Graphics g)
Zeichnet ein Markiertes MovementField Objekt in der Farbe rot.

Parameters:
g - Grafik-Kontexte

drawMarkedNode

private void drawMarkedNode(java.awt.Graphics g)
Zeichnet ein markiertes Node in der Farbe rot.

Parameters:
g - Grafik-Kontexte

computeZRX

private double computeZRX()
Berechnet die tatsächlichen Ausmaße eines Objektes mittels des Zoom Faktors und der Differenz zwischen Karte und Szenario Dimensionen.

Returns:
X-Koordinate des Zoomfaktors

computeZRY

private double computeZRY()
Berechnet die tatsächlichen Ausmaße eines Objektes mittels des Zoom Faktors und der Differenz zwischen Karte und Szenario Dimensionen.

Returns:
Y-Koordinate des Zoomfaktors