vips.model
Class IfAnweisung

java.lang.Object
  extended by vips.model.UIElement
      extended by vips.model.Anweisung
          extended by vips.model.IfAnweisung
All Implemented Interfaces:
BedingungsAnweisung, Beobachtbar

public class IfAnweisung
extends Anweisung
implements BedingungsAnweisung

Diese Anweisung implementiert eine Bedingte Anweisung, dh eine If-Anweisung mit einem Ja- und einem Nein-Zweig.

Events:
-Wenn sich was an der Bedingung tut
-Wenn sich wsa in einem der Zweige ändert


Field Summary
 
Fields inherited from class vips.model.Anweisung
listeners, weiterleitung
 
Fields inherited from class vips.model.UIElement
RAND
 
Constructor Summary
IfAnweisung(AnweisungsContainer vater, int index, Ausdruck bedingung)
          Erzeugt eine neue If-Anweisung mit der gegebenen Bedingung
IfAnweisung(org.jdom.Element e)
          Erzeugt Anweisung ausm XML-Element
 
Method Summary
(package private)  void ausfuehren(java.lang.Object einzelschrittLock)
          Führt einen der Zweige, in abhängigkeit von der Bedingung, aus.
(package private)  org.eclipse.swt.graphics.Point berechneBevorzugteGroesse(org.eclipse.swt.graphics.GC gc)
          Berechnet beste Größe.
(package private)  Anweisung getAnweisungAnPos(org.eclipse.swt.graphics.Point pos)
          Gibt die Anweisung zurück, die sich an der Position pos befindet (relativ zur oberen linken Ecke des Struktogamms)
 Ausdruck getBedingung()
          Gibt die Bedingung zurück
static java.lang.String getXMLTagName()
          Gibt "if_anweisung" zurück.
 AnweisungsContainer getZweig(boolean bedingungsWert)
          Gibt einen Zweig der If-Anweisung zurück, je nach wert von bedingungsWert ist es der Ja- oder der Nein-Zweig.
(package private)  void hintergrundZuruecksetzen()
          Setzt die Hintergrundfarbe von sich und allen Zweigen auf null.
(package private)  void pruefen(java.util.Collection fehler, BenamterWertSammlung variablen)
          Prüft beide Zweige und folgende Punkte: Ist die Bedingung korrekt formuliert?
 void setBedingung(Ausdruck neueBedingung)
          Setzt die Bedingung neu.
 org.jdom.Element toXMLElement()
          Wandelt diese Anweisung in ein entsprechendes XML-Tag um.
(package private)  void zeichne(org.eclipse.swt.graphics.GC gc)
          Zeichnet die Anweisung auf den übergebenen GC.
 
Methods inherited from class vips.model.Anweisung
changeListenerEntfernen, changeListenerHinzufuegen, createFromXMLElement, getContainer, getProjekt, getStruktogramm, setContainer
 
Methods inherited from class vips.model.UIElement
getBreite, getGroesse, getHintergrund, getHoehe, getPos, getX, getY, hoeheAnpassen, setBreite, setGroesse, setHintergrund, setHoehe, setPos
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IfAnweisung

public IfAnweisung(AnweisungsContainer vater,
                   int index,
                   Ausdruck bedingung)
Erzeugt eine neue If-Anweisung mit der gegebenen Bedingung

Throws:
java.lang.IllegalArgumentException - Wenn bedingung null ist

IfAnweisung

public IfAnweisung(org.jdom.Element e)
            throws FalschesDateiFormatException
Erzeugt Anweisung ausm XML-Element

Throws:
FalschesDateiFormatException
Method Detail

ausfuehren

void ausfuehren(java.lang.Object einzelschrittLock)
          throws BreakException,
                 ContinueException,
                 LaufzeitException,
                 TerminateException
Führt einen der Zweige, in abhängigkeit von der Bedingung, aus.

Overrides:
ausfuehren in class Anweisung
Parameters:
einzelschrittLock - Wenn ungleich null, ruft die Anweisung am Anfang auf dieses Objekt einzelschrittLock.wait auf.
Throws:
LaufzeitException - Wenn die Bedingung fehlerhaft oder nicht vom Typ Boolean ist.
BreakException - Wird von einer BreakAnweisung geworfen, um die umgebende Schleife zu beenden.
ContinueException - Wird von einer ContinueAnweisung geworfen, um zum Anfang eines Schleifenrumpfs zu springen.
TerminateException - Wenn der Ausführungsthread unterbrochen wurde.

pruefen

void pruefen(java.util.Collection fehler,
             BenamterWertSammlung variablen)
Prüft beide Zweige und folgende Punkte:
  1. Ist die Bedingung korrekt formuliert?
  2. Ist sie vom Typ Boolean?

Overrides:
pruefen in class Anweisung

getZweig

public AnweisungsContainer getZweig(boolean bedingungsWert)
Gibt einen Zweig der If-Anweisung zurück, je nach wert von bedingungsWert ist es der Ja- oder der Nein-Zweig.


setBedingung

public void setBedingung(Ausdruck neueBedingung)
Setzt die Bedingung neu.
Die Bedingung muss vom Typ Boolean sein.

Specified by:
setBedingung in interface BedingungsAnweisung
Throws:
java.lang.IllegalArgumentException - wenn neueBedingung null ist

getBedingung

public Ausdruck getBedingung()
Gibt die Bedingung zurück

Specified by:
getBedingung in interface BedingungsAnweisung

toXMLElement

public org.jdom.Element toXMLElement()
Description copied from class: Anweisung
Wandelt diese Anweisung in ein entsprechendes XML-Tag um.
Implementierende Klassen dürfen auch null zurückgeben, damit zeigen sie an, dass sie nicht geschrieben werden sollen/brauchen, z.B. die LeereAnweisung.

Specified by:
toXMLElement in class Anweisung

getXMLTagName

public static java.lang.String getXMLTagName()
Gibt "if_anweisung" zurück.


hintergrundZuruecksetzen

void hintergrundZuruecksetzen()
Setzt die Hintergrundfarbe von sich und allen Zweigen auf null.

Overrides:
hintergrundZuruecksetzen in class UIElement

getAnweisungAnPos

Anweisung getAnweisungAnPos(org.eclipse.swt.graphics.Point pos)
Gibt die Anweisung zurück, die sich an der Position pos befindet (relativ zur oberen linken Ecke des Struktogamms)

Overrides:
getAnweisungAnPos in class Anweisung
Returns:
Die Anweisung an dieser Stelle oder null, wenn pos nicht im Client-Bereich des Elements liegt.

berechneBevorzugteGroesse

org.eclipse.swt.graphics.Point berechneBevorzugteGroesse(org.eclipse.swt.graphics.GC gc)
Berechnet beste Größe.

Specified by:
berechneBevorzugteGroesse in class UIElement
Parameters:
gc - Der GC, auf den das Element gezeichnet werden würde

zeichne

void zeichne(org.eclipse.swt.graphics.GC gc)
Zeichnet die Anweisung auf den übergebenen GC.

Specified by:
zeichne in class UIElement