mapper.DataStrukture
Class ValueTable

java.lang.Object
  extended by mapper.DataStrukture.ValueTable

public class ValueTable
extends java.lang.Object

Speichert alle Relevanten Daten über das Szenario ab, darunter die MovementFields, die Nodes und merkt sich ob markierungen von Objekten vorliegen.

Author:
Emanuel Eden

Field Summary
private  int _marked
           
private  java.lang.Object _markedKey
           
private  MovementField _markedMovementField
           
private  Node _markedNode
           
private  Position _markedPolygonNode
           
private  java.util.HashMap _movementFieldList
           
private  java.util.HashSet _nodeList
           
private  int _numberOfMovementFields
           
private  int _numberOfNodes
           
private  ValueNew _valueNew
           
 
Constructor Summary
ValueTable()
           
 
Method Summary
 MovementField finishRectangle(Position position, double zrx, double zry)
          Wenn das Rectangle positioniert wurde, wird es beim Finishing in die _movemenFields eingetragen und ist damit als Rectangle auf der Paintingarea sichtbar.
 java.lang.Object getCopy()
          Diese Methode Copiert das Markierte Objekt.
 Position getInitialRectangle()
          Liefert die gespeicherte Position der letzten Markierung zurück.
 java.lang.Object getKey()
          Liefert den Key des Objektes zurück.
 java.lang.Object getMarked()
          Liefert das momentan markierte Objekt zurück.
 java.util.HashMap getMovementFieldList()
          Liefert ein HashMap mit allen Movementfields zurück
 java.util.HashSet getNodes()
          Liefert das HashSet mit allen Nodes zurück.
 ValueNew getValueNew()
          Liefert die Basis-Informationen über das Szenario zurück.
 void identify(Position position, double zrx, double zry)
          Identifiziert, ein Node oder den Knoten eines Polygons und wenn sich eines dieser Elemente an Position befindet, wird es als markiert deklariert.
 void initialRectangle(Position position)
          Speichert die Position, an der die letzte Markierung vorgenommen wurde.
 boolean isElementAt(Position position)
          Kontrolliert ob sich unter der Cursorposition ein Beliebiges Element befindet.
 boolean isInMovementList(Position position)
          Übergibt die Position des Cursors.
 int isMarked()
          Erfragt ob momentan ein markiertes Objekt existiert.
 void moveMovementField(Position position)
          Bewegt das komplette MovementField mit allen seinen Nodes an die übergebene Position.
 boolean moveNode(Position position)
          Rückt das markierte Node an die angegebene Position
 void movePolygonNode(Position position)
          Rückt das markierte MovementField an die angegebene Position
 java.lang.Object remove(java.lang.Object key)
          Löscht das markierte Objekt aus seiner Liste.
 java.util.HashSet setElement(java.util.HashSet nodeList)
          Fügt ein HashSet von Node-Element in die _nodes Liste ein. und erhält eine inkremetelle Laufnummer, über den das Element identifiziert werden kann.
 MovementField setElement(MovementField movementField)
          Fügt ein MovementField Element in die _movementField Liste und erhält eine inkremetelle Laufnummer, über den das Element identifiziert werden kann.
 java.util.HashSet setElement(Node node)
          Zum Einfügen eines einzigen Nodes in die HashSet Liste _nodes.
private  void setMarked(MovementField marked, java.lang.Object key)
          Setzt ein MovementField als markiertes Objekt ein.
private  void setMarked(Node marked, java.lang.Object key)
          Setzt ein Node als markiertes Objekt ein.
 void setMarkedToDefault()
          Setzt alle Markierten werte wieder zurück auf die Default-Werte.
 void setValueNew(ValueNew valueNew)
          Gibt eine neues Szenario an das ValueTable.
 void unmark()
          Löscht die Markierung eines Objektes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_valueNew

private ValueNew _valueNew

_movementFieldList

private java.util.HashMap _movementFieldList

_nodeList

private java.util.HashSet _nodeList

_markedMovementField

private MovementField _markedMovementField

_markedNode

private Node _markedNode

_markedPolygonNode

private Position _markedPolygonNode

_markedKey

private java.lang.Object _markedKey

_marked

private int _marked

_numberOfMovementFields

private int _numberOfMovementFields

_numberOfNodes

private int _numberOfNodes
Constructor Detail

ValueTable

public ValueTable()
Method Detail

setElement

public MovementField setElement(MovementField movementField)
Fügt ein MovementField Element in die _movementField Liste und erhält eine inkremetelle Laufnummer, über den das Element identifiziert werden kann. Die Laufnummer ist der Key der HashMap und das movementField ist der Value-Wert. Das soeben eingefügte MovementField wird mit der soeben zugeordneten Laufnummer zurückgegeben, damit es an den ChoiceTree weiter gegeben werden kann.

Parameters:
movementField - MovmentField, das in die _movementField Liste eingefügt wird.
Returns:
Key, über den das Movementfield gehasht wird.

setElement

public java.util.HashSet setElement(java.util.HashSet nodeList)
Fügt ein HashSet von Node-Element in die _nodes Liste ein. und erhält eine inkremetelle Laufnummer, über den das Element identifiziert werden kann. Als Rückgabe wird das HashSet mit den neuen Laufnummern zurückgegen, damit es in den ChoiceTree eingetragen werden kann.

Parameters:
nodeList - Liste von Nodes die in die _nodes List eingefügt werden
Returns:
HashSet von aktualisierten Nodes.

setElement

public java.util.HashSet setElement(Node node)
Zum Einfügen eines einzigen Nodes in die HashSet Liste _nodes. Eine inkrementelle Laufnummer wird dem Node zugeordnet. Das Node wird als HashSet zurückgegeben, da es so ohne Probleme an den ChoiceTree weiter- gegeben werden kann.

Parameters:
node - Einzelnes node Element, das in _nodesReturns:
Hash Set mit dem neu hinzugefügten Node

getNodes

public java.util.HashSet getNodes()
Liefert das HashSet mit allen Nodes zurück.

Returns:
HashSet mit Nodes.

getMovementFieldList

public java.util.HashMap getMovementFieldList()
Liefert ein HashMap mit allen Movementfields zurück

Returns:
HashMap mit allen MovementFields.

setValueNew

public void setValueNew(ValueNew valueNew)
Gibt eine neues Szenario an das ValueTable.

Parameters:
valueNew - Übergibt neue Basis-Informationen an das Value Table

getValueNew

public ValueNew getValueNew()
Liefert die Basis-Informationen über das Szenario zurück.

Returns:
Gibt die Basisinformationen des Szenarios zurück.

getMarked

public java.lang.Object getMarked()
Liefert das momentan markierte Objekt zurück. Das Objekt kann von der Form Node oder MovementField sein.

Returns:
Gibt ein momentan markierte Objekt zurück.

getKey

public java.lang.Object getKey()
Liefert den Key des Objektes zurück. Bei einem Node ist es das Node Objekt selbst und bei einem MovementField ist es der HashMap Wert des Keys.

Returns:
Liefert den Key des markierten Objektes zurück.

remove

public java.lang.Object remove(java.lang.Object key)
Löscht das markierte Objekt aus seiner Liste. Bei einem Node wird das Node Objekt gelöscht und bei einem MovementField wird das MovementField gelöscht. Das gelöschte Objekt wird zurückgeliefert, damit es auch aus dem ChoiceTree gelöscht werden kann.

Parameters:
key - Der Key, mit dem das Objekt identifiziert wird.
Returns:
Liefert das gelöschte Objekt zurück

isMarked

public int isMarked()
Erfragt ob momentan ein markiertes Objekt existiert.

Returns:
Liefert -1 zurück, wenn kein markiertes Objekt vorliegt.

unmark

public void unmark()
Löscht die Markierung eines Objektes


isInMovementList

public boolean isInMovementList(Position position)
Übergibt die Position des Cursors. Danach wird die Liste aller _movementFields abgesucht, ob sich die Cursor Position innerhalb des Polygons eines MovementFields befindet. Falls sich der Cursor darin befindet, wird ein true zurückgeliefert.

Parameters:
position - Position des Cursors
Returns:
boolean Liefert true zurück wenn Cursor auf einem MovementField steht.

isElementAt

public boolean isElementAt(Position position)
Kontrolliert ob sich unter der Cursorposition ein Beliebiges Element befindet. Ein Element kann von der Form MovementField oder Node sein. Wenn sich ein Objekt unter dem Cursor befindet, wird true zurückgeliefert.

Parameters:
position - des Cursors
Returns:
boolean wenn sich der Cursor über einem Objekt befindet.

identify

public void identify(Position position,
                     double zrx,
                     double zry)
Identifiziert, ein Node oder den Knoten eines Polygons und wenn sich eines dieser Elemente an Position befindet, wird es als markiert deklariert.

Parameters:
position - Position die Abgefragt werden soll
zrx - Zoomfaktor der X-Koordinate
zry - Zoomfaktor der Y-Koordinate

movePolygonNode

public void movePolygonNode(Position position)
Rückt das markierte MovementField an die angegebene Position

Parameters:
position - Position an den das MovementField gerückt werden soll.

moveNode

public boolean moveNode(Position position)
Rückt das markierte Node an die angegebene Position

Parameters:
position - Position an den die das Node gerückt werden soll.
Returns:
False, falls das Node nicht in der NodeList steht.

setMarkedToDefault

public void setMarkedToDefault()
Setzt alle Markierten werte wieder zurück auf die Default-Werte.


initialRectangle

public void initialRectangle(Position position)
Speichert die Position, an der die letzte Markierung vorgenommen wurde.

Parameters:
position - Position der zu speichernden Markierung

getInitialRectangle

public Position getInitialRectangle()
Liefert die gespeicherte Position der letzten Markierung zurück.

Returns:
Position der letzten Markierung

finishRectangle

public MovementField finishRectangle(Position position,
                                     double zrx,
                                     double zry)
Wenn das Rectangle positioniert wurde, wird es beim Finishing in die _movemenFields eingetragen und ist damit als Rectangle auf der Paintingarea sichtbar. Das neue Rectangle wird zrückgeliefert, damit es in den ChoiceTree eingetragen werden kann.

Parameters:
position - mit der das Rectangle seine endgültige Positionierung bekommt
zrx - Zoomfaktor der X-Koordinate
zry - Zoomfaktor der Y-Koordinate
Returns:
MovementField um es an den Choicetree weitergeben zu können.

moveMovementField

public void moveMovementField(Position position)
Bewegt das komplette MovementField mit allen seinen Nodes an die übergebene Position.

Parameters:
position - Bewegt das markierte MovementField an die angegebene Position.

getCopy

public java.lang.Object getCopy()
Diese Methode Copiert das Markierte Objekt. Da bei einer Kopie ein komplett neues Objekt erstellt werden muss, wird vom markierte Node oder MovementField eine Tiefenkopie erstellt, da ein normal kopiertes Objekt die Referenzen zu ihrem Original beibehalten.

Returns:
Object gibt die Kopie eines Elementes zurück, ansonsten null

setMarked

private void setMarked(MovementField marked,
                       java.lang.Object key)
Setzt ein MovementField als markiertes Objekt ein.

Parameters:
marked - Zu markierendes Objekt
key - Key des zu markierenden Objekts

setMarked

private void setMarked(Node marked,
                       java.lang.Object key)
Setzt ein Node als markiertes Objekt ein. Da ein HashSet keinen Key besitzt, ist hier das markierte Objekt und der Key das selbe Objekt.

Parameters:
marked - Zu markierendes Objekt
key - Key des zu markierenden Objekts