Hot-Spot-Plugin

Mouse-aktive Bereiche beliebiger Form

Hot-Spot-Plugin
Für jtap soll ein Plug-In erstellt werden, mit dem sich aktive Bereiche (Hot-Spots) festlegen lassen. Ein aktiver Bereich ist ein Bereich, innerhalb dessen GUI-Ereignisse ausgelöst werden. Z.B. wird ein mouseOver-Ereignis ausgelöst, sobald die Maus in den Hot-Spot-Bereich bewegt wird. Das Hot-Spot-Element soll nun die Möglichkeit bieten, diese aktiven Bereiche nicht nur kastenförmig (wie bei normalen Komponenten) festzulegen, sondern für beliebige Formen. Hierzu muss es möglich sein, innerhalb des Elementes geometrische Formen (Rechtecke, Ellipsen, Polygone, "Pixel" bzw. Miniquadrate) einzuzeichnen. Die ausgefüllten Formen sind nur zur Editierzeit sichtbar und werden zur Laufzeit nicht mehr gezeichnet. Wird der Mauszeiger nun zur Laufzeit in die Komponente des Elements bewegt, so muss das Element prüfen, ob sich der Mauszeiger auch innerhalb des aktiven Bereiches befindet. Ist dies der Fall, dann wird das dazugehörige Ereignisskript ausgeführt. Bewegt sich der Mauszeiger nicht im aktiven Bereich, so soll das Hot-Spot-Element das Ereignis ignorieren und an die übergeordnete Swing-Komponente weiterleiten.

Ein Hot-Spot-Element soll optional einem anderen jtap-Element auf der Tafel zugeordnet werden können. Das Hot-Spot-Element übernimmt dann Größe und Position dieses Elementes. Verschiebt man das Hot-Spot-Element, dann soll sich auch die Position des verwalteten Elements verändern. Tritt zur Laufzeit eines jtap-Kurses ein Ereignis innerhalb des aktiven Bereiches ein, so wird geprüft, ob das verwaltete Element eine Eigenschaft mit einem passenden Ereignisskript besitzt. Wenn dies der Fall ist, so kann dieses Skript ausgeführt werden.

Folgende Eigenschaften muss das Hot-Spot-Element mindestens besitzen:

  • Ereignisskripte für alle Swing-Mausereignisse
  • Ereignisskripte für Tastatur-Ereignisse
  • Verwaltetes Element (Name und Subname eines anderen Elementes)
  • Auswahlkriterium des Ereignisskriptes, wenn ein weiteres Element verwaltet wird:
    1. Skripte des verwalteten Elements werden ignoriert
    2. Enthält das verwaltete Element ein geeignetes Ereignisskript, so wird nur dieses ausgeführt
    3. Enthält das verwaltete Element ein geeignetes Ereignisskript, so wird dieses ausgeführt, danach wird zusätzlich das Skript des Hot-Spot-Elements ausgeführt
    4. Als erstes wird das Skript des Hot-Spot-Elements ausgeführt, enthält das verwaltete Element ein geeignetes Ereignisskript so wird dieses zusätzlich ausgeführt

Die Definition der Hot-Spot-Bereiche eines Elements, bestehend aus einer Liste von Geometriebeschreibungen, müssen beim Speichern und Laden des Elements berücksichtigt werden.

Umgebung
jtap
Ansprechpartner
Christian Kohls

Hauptnavigation