Package | Class | Use | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## theater
Class Performance

    java.lang.Object
      theater.Performance

    public class Performance

extends java.lang.Object

Die Klasse Performance definiert Methoden zur Steuerung und Verwaltung der Ausführung von Theater-Programmen(stop, suspend, setSpeed, freeze, unfreeze).

Weiterhin werden Methoden definiert, die unmittelbar nach entsprechenden Steuerungsaktionen aufgerufen werden, und zwar auch, wenn die Aktionen durch die Steuerungsbuttons des Simulators ausgelöst wurden(started, stopped, speedChanged). Möchte ein Programmierer zusätzliche Aktionen mit den entsprechenden Steuerungsaktionen einhergehen lassen, kann er eine Unterklasse der Klasse Performance definieren und hierin die entsprechende Methode überschreiben.

Zusätzlich stellt die Klasse Performance eine Methode playSound zur Verfügung, mit der eine Audio-Datei abgespielt werden kann. Die Datei muss sich im Unterverzeichnis "sounds" des entsprechenden Theraterstücks befinden. Unterstützt werden die Formate wav, au und aiff.

Über die Methode setActiveStage ist es möglich, die aktuell aktive Bühne gegen eine andere Bühne auszutauschen, d.h. das Bühnenbild zu wechseln. Unter Umständen aktive Akteure der alten Bühne werden dabei nicht automatisch gestoppt. Die Methode getActiveStage liefert die gerade aktive Bühne.

Das während einer Aufführung aktuelle Performance-Objekt kann mit Hilfe der statischen Methode getPerformance ermittelt werden. Ein Wechsel des Performance-Objektes ist während einer Aufführung nicht möglich.

Version:
  1.0 (03.11.2009)
Author:
  Dietrich Boles, Universität Oldenburg, Germany

Field Summary
`static int` | `DEF_SPEED` Default-Geschwindigkeit
`static int` | `MAX_SPEED` Maximale Geschwindigkeit
`static int` | `MIN_SPEED` Minimale Geschwindigkeit

Constructor Summary
`Performance()` Default-Konstruktor zur Initialisierung eines Performance-Objektes.

Method Summary
`void` | `freeze()` Der Aufruf dieser Methode führt dazu, dass die Ansicht der Bühne "eingeforen" wird, d.h. es werden keinerlei Zustandsänderungen mehr sichtbar, bevor nicht die Methode unfreeze aufgerufen worden ist.
`Stage` | `getActiveStage()` Liefert die aktuell dargestellte Bühne
`static Performance` | `getPerformance()` Liefert das aktuell gesetzte Performance-Objekte
`int` | `getSpeed()` Liefert die aktuelle Ausführungsgeschwindigkeit der Performance.
`void` | `lock()` Setzt eine systeminterne Sperre.
`void` | `playSound(java.lang.String soundFile)` Spielt einen Sound ab, der aus einer Datei geladen wird.
`void` | `resumed()` Diese Methode wird unmittelbar nach dem Fortsetzen eines angehaltenen Theaterstücks aufgerufen.
`void` | `setActiveStage(Stage stage)` Wechselt die Bühne.
`void` | `setSpeed(int newSpeed)` Ändert die aktuell eingestellte Ausführungsgeschwindigkeit.
`void` | `speedChanged(int newSpeed)` Diese Methode wird aufgerufen, wenn sich die Geschwindigkeit des Theaterstücks ändert.
`void` | `started()` Diese Methode wird unmittelbar nach dem Starten bzw.
`void` | `stop()` Stopped eine Performance und setzt sie in den Zustand STOPPED.
`void` | `stopped()` Diese Methode wird unmittelbar nach dem Stoppen eines Theaterstücks aufgerufen.
`void` | `suspend()` Pausiert eine Performance und setzt sie in den Zustand PAUSED.
`void` | `suspended()` Diese Methode wird unmittelbar nach dem Anhalten/Pausieren eines Theaterstücks aufgerufen.
`void` | `unfreeze()` Bei Aufruf dieser Methode wird der Eingefroren-Zustand wieder verlassen.
`void` | `unlock()` Gibt die mittels der Methode lock gesetzte Sperre wieder frei.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEF_SPEED

    public static int DEF_SPEED

  Default-Geschwindigkeit

### MAX_SPEED

    public static int MAX_SPEED

  Maximale Geschwindigkeit

### MIN_SPEED

    public static int MIN_SPEED

  Minimale Geschwindigkeit

Constructor Detail

### Performance

    public Performance()

  Default-Konstruktor zur Initialisierung eines Performance-Objektes. Der Zustand des Performance-Objektes wird auf STOPPED gesetzt, die Geschwindigkeit auf DEF_SPEED.

Method Detail

### freeze

    public void freeze()

  Der Aufruf dieser Methode führt dazu, dass die Ansicht der Bühne "eingeforen" wird, d.h. es werden keinerlei Zustandsänderungen mehr sichtbar, bevor nicht die Methode unfreeze aufgerufen worden ist.

### getActiveStage

    public Stage getActiveStage()

  Liefert die aktuell dargestellte Bühne

  Returns:
    die aktuell dargestellte Bühne

### getPerformance

    public static Performance getPerformance()

  Liefert das aktuell gesetzte Performance-Objekte

  Returns:
    das aktuell gesetzte Performance-Objekt

### getSpeed

    public int getSpeed()

  Liefert die aktuelle Ausführungsgeschwindigkeit der Performance.

  Returns:
    die aktuelle Ausführungsgeschwindigkeit der Performance

### lock

    public void lock()

  Setzt eine systeminterne Sperre. Während die Sperre gesetzt ist, sind keine Benutzeraktionen (auch kein pause, stop) wirksam. Diese werden erst nach einem anschließenden Aufruf der Methode unlock ausgeführt. Die Methode sollte genutzt werden, um das Ändern von internen Attributen und entsprechende Auswirkungen auf die Bühne als atomare Aktionen durchzuführen.

  Bei der Sperre handelt es sich um einen Reentrant-Lock! D.h. es können durchaus mehrere lock-Aufrufe verschachtelt werden, für jeden lock-Aufruf ist jedoch für eine Entsperrung ein entsprechender unlock-Aufruf notwendig!

### playSound

    public void playSound(java.lang.String soundFile)
                   throws java.lang.IllegalArgumentException

  Spielt einen Sound ab, der aus einer Datei geladen wird. Erlaubt sind die Formate au, aiff und wav.

  Parameters:
    `soundFile` - Name der Sounddatei; die Datei muss sich im Unterverzeichnis sounds des Theaterstück-Verzeichnisses befinden
  Throws:
    `java.lang.IllegalArgumentException` - wird geworfen, wenn die angegebene Datei keine gültige lesbare Sounddatei ist

### resumed

    public void resumed()

  Diese Methode wird unmittelbar nach dem Fortsetzen eines angehaltenen Theaterstücks aufgerufen.

  Sollen mit dem Fortsetzen eines Theater-Programms weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.

### setActiveStage

    public void setActiveStage(Stage stage)

  Wechselt die Bühne. Achtung: Ist in Solist nicht implementiert!

  Parameters:
    `stage` - die neue Bühne

### setSpeed

    public void setSpeed(int newSpeed)

  Ändert die aktuell eingestellte Ausführungsgeschwindigkeit. Die minimale Geschwindigkeit kann über die Konstante MIN_SPEED, die maximale Geschwindigkeit über die Konstante MAX_SPEED abgefragt werden. Wird als gewünschte Geschwindigkeit ein kleinerer bzw. größerer Wert als die entsprechende Konstante übergeben, wird die Geschwindigkeit automatisch auf MIN_SPEED bzw. MAX-SPEED gesetzt.

  Die Methode kann aus einem Programm heraus aufgerufen werden. Sie wird auch aufgerufen, wenn der Nutzer im Theater-Simulator den Geschwindigkeitsregler benutzt.

  Parameters:
    `newSpeed` - die neue Ausführungsgeschwindigkeit, die zwischen MIN_SPEED und MAX_SPEED liegen sollte

### speedChanged

    public void speedChanged(int newSpeed)

  Diese Methode wird aufgerufen, wenn sich die Geschwindigkeit des Theaterstücks ändert.

  Sollen mit einer Geschwindigkeitsänderung weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.

  Parameters:
    `newSpeed` - die neue Geschwindigkeit

### started

    public void started()

  Diese Methode wird unmittelbar nach dem Starten bzw. Fortsetzen eines Theaterstücks aufgerufen.

  Sollen mit dem Start eines Theaterstücks weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.

### stop

    public final void stop()

  Stopped eine Performance und setzt sie in den Zustand STOPPED. Wenn sich die Performance bereits im Zustand STOPPED befindet, passiert nichts.

  Die Methode kann aus einem Programm heraus aufgerufen werden. Sie wird in Solist NICHT aufgerufen, wenn der Nutzer im Theater-Simulator den Stopp-Button anklickt.

### stopped

    public void stopped()

  Diese Methode wird unmittelbar nach dem Stoppen eines Theaterstücks aufgerufen.

  Sollen mit dem Stoppen eines Theater-Programms weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.

### suspend

    public final void suspend()

  Pausiert eine Performance und setzt sie in den Zustand PAUSED. Die Ausführung dieser Methode bewirkt nur dann etwas, wenn sich die Performance im Zustand RUNNING befindet.

  Die Methode kann aus einem Programm heraus aufgerufen werden. Sie wird in Solist NICHT aufgerufen, wenn der Nutzer im Theater-Simulator den Pause-Button anklickt.

### suspended

    public void suspended()

  Diese Methode wird unmittelbar nach dem Anhalten/Pausieren eines Theaterstücks aufgerufen.

  Sollen mit dem Anhalten eines Theater-Programms weitere Aktionen einhergehen, muss der Programmierer eine Klasse von der Klasse Performance ableiten und diese Methode entsprechend überschreiben.

### unfreeze

    public void unfreeze()

  Bei Aufruf dieser Methode wird der Eingefroren-Zustand wieder verlassen. Dabei gilt: Zu jedem Aufruf von freeze muss es einen Aufruf von unfreeze geben. Zusätzliche Aufrufe von unfreeze sind wirkungslos.

### unlock

    public void unlock()

  Gibt die mittels der Methode lock gesetzte Sperre wieder frei.

Package | Class | Use | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD