Package hoverball

Class Hovlet

java.lang.Object
hoverball.Hovlet
Direct Known Subclasses:
Controller, Session, Team, Unit

public abstract class Hovlet
extends java.lang.Object
Die Klasse Hovlet (= "kleines Hoverball-Programm") stellt die Basis-Klasse für alle Programm-Elemente dar, die sich mit dem Simulator verbinden können.

Hovlets sind rekursiv verschachtelbar. Jedes Hovlet besitzt ein Super-Hovlet parent und eine Liste von Sub-Hovlets hovlets, die mit der Methode add(...) an das Hovlet angeknüpft werden können. Dabei lässt sich die Verknüpfbarkeit eines Hovlets nach oben und nach unten im Konstruktor definieren. Ein Hovlet ohne Super-Hovlet heißt Root-Hovlet.

Die so entstehenden Hovlet-Bäume werden in sogenannten Browsern angezeigt, die je nach Auswahl die einzelnen Hovlets des Baumes in den Vordergrund bringen. Mit der Methode show() wird für den ganzen Hovlet-Baum, sofern dies nicht schon geschehen ist, ein neuer Browser geöffnet, der anfänglich das aufrufende Hovlet anzeigt. (Die Erscheinung des Browsers kann dabei vom Root-Hovlet mit der Methode browse(...) bestimmt werden.) Andernfalls wird das Hovlet im entsprechenden Browser einfach in den Vordergrund gebracht.

Ein Hovlet hat folgende Eigenschaften:

  • Es besitzt einen Titel. Siehe title.

  • Es kann eigene Menus definieren, welche im Browser neben dem globalen Menu Hovlet angezeigt werden. Siehe menubar.

  • Es besitzt ein Icon-Panel, welches im Browser neben der Hovlet-Auswahlleiste angezeigt wird. Siehe icon.

  • Es besitzt ein Main-Panel. Dieses wird im Zentrum des Browsers angezeigt und kann frei definiert werden. Die paint(...)-Methode des Main-Panels, die standardmäßig das Hovlet-Banner zeichnet, kann dabei benutzt werden. Siehe main.

  • Es kann eine Statuszeile im Browser anzeigen. Siehe status(...).

  • Ein Hovlet soll sich mit dem Hoverball-Simulator verbinden können. Hierzu stehen die Methoden connect(...) und disconnect() zur Verfügung, jedoch ist das Verbinden selbst noch nicht implementiert.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.awt.Color background
      Default-Hintergrundfarbe für alle neuen Hovlets
      static int BANNER
      Höhe des Hovlet-Banners (in Pixeln)
      static java.awt.Color foreground
      Default-Vordergrundfarbe für alle neuen Hovlets
      Hovlet[] hovlets
      Sub-Hovlets
      javax.swing.JPanel icon
      Icon-Panel des Hovlets
      javax.swing.JPanel main
      Main-Panel des Hovlets
      javax.swing.JMenuBar menubar
      Menu-Bar des Hovlets
      Hovlet parent
      Super-Hovlet (null, falls Root)
      java.lang.String title
      Titel des Hovlets
    • Constructor Summary

      Constructors 
      Constructor Description
      Hovlet​(java.lang.String title)
      Erzeugt ein leeres Hovlet.
      Hovlet​(java.lang.String title, boolean upward, boolean downward)
      Erzeugt ein leeres Hovlet mit angegebener Verknüpfbarkeit.
    • Method Summary

      Modifier and Type Method Description
      boolean add​(Hovlet hovlet)
      Fügt ein Hovlet in dieses Hovlet ein.
      void browse​(javax.swing.JInternalFrame browser)
      Beeinflusst die Erscheinung des Browsers, falls es sich bei diesem Hovlet um das Root-Hovlet handelt.
      void close()
      Schließt das Hovlet.
      boolean connect​(java.lang.String address)
      Verbindet das Hovlet mit der angegebenen Adresse.
      protected boolean connecting​(java.lang.String address)
      Frei für die Implementierung des Verbindens.
      void disconnect()
      Trennt die Verbindung des Hovlets.
      protected void disconnecting()
      Frei für die Implementierung des Trennens.
      void locate​(int x, int y)
      Wünscht die Browser-Position.
      void locate​(java.awt.Point location)
      Wünscht die Browser-Position.
      void show()
      Zeigt das Hovlet an.
      void status​(java.lang.String status)
      Zeigt einen Text in der Status-Zeile des Browsers an.
      java.lang.String title​(java.lang.String separator)
      Gibt den Titel des Hovlets mit Pfad zurück.

      Methods inherited from class java.lang.Object

      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Details

      • background

        public static java.awt.Color background
        Default-Hintergrundfarbe für alle neuen Hovlets
      • foreground

        public static java.awt.Color foreground
        Default-Vordergrundfarbe für alle neuen Hovlets
      • public static final int BANNER
        Höhe des Hovlet-Banners (in Pixeln)
        See Also:
        Constant Field Values
      • parent

        public Hovlet parent
        Super-Hovlet (null, falls Root)
      • hovlets

        public Hovlet[] hovlets
        Sub-Hovlets
      • title

        public final java.lang.String title
        Titel des Hovlets
      • menubar

        public final javax.swing.JMenuBar menubar
        Menu-Bar des Hovlets
      • icon

        public final javax.swing.JPanel icon
        Icon-Panel des Hovlets
      • main

        public final javax.swing.JPanel main
        Main-Panel des Hovlets
    • Constructor Details

      • Hovlet

        public Hovlet​(java.lang.String title)
        Erzeugt ein leeres Hovlet.
        Parameters:
        title - Titel des Hovlets
      • Hovlet

        public Hovlet​(java.lang.String title, boolean upward, boolean downward)
        Erzeugt ein leeres Hovlet mit angegebener Verknüpfbarkeit.
        Parameters:
        title - Titel des Hovlets
        upward - nach oben verknüpfbar?
        downward - nach unten verknüpfbar?
    • Method Details

      • close

        public void close()
        Schließt das Hovlet.
      • title

        public java.lang.String title​(java.lang.String separator)
        Gibt den Titel des Hovlets mit Pfad zurück.
        Parameters:
        separator - Trenn-Zeichenkette für den Pfad
        Returns:
        den Titel mit Pfad
      • add

        public boolean add​(Hovlet hovlet)
        Fügt ein Hovlet in dieses Hovlet ein.

        Ist die Verknüpfung der beiden Hovlets nicht zulässig, oder wurde eines der beiden Hovlets bereits verknüpft oder angezeigt, kann die Verknüpfung nicht erfolgen.

        Parameters:
        hovlet - Hovlet
        Returns:
        true, falls Verknüpfung erfolgte false, falls Verknüpfung nicht erfolgte
      • show

        public void show()
        Zeigt das Hovlet an.

        Ist dies der erste Aufruf von show() von allen Hovlets innerhalb des Hovlet-Baumes, wird ein neuer Browser für diesen Hovlet-Baum geöffnet und das Hovlet angezeigt. Ansonsten wird das Hovlet einfach in den Vordergrund gebracht.

      • status

        public void status​(java.lang.String status)
        Zeigt einen Text in der Status-Zeile des Browsers an.

        Mit null wird der Standard-Status des Browsers angezeigt.

        Parameters:
        status - Status
      • locate

        public void locate​(int x, int y)
        Wünscht die Browser-Position.

        Ist dieses Hovlet das Root-Hovlet, so wird der Browser beim Öffnen an der angegebenen Stelle positioniert.

        Parameters:
        x - x-Koordinate der gewünschten Browser-Position
        y - y-Koordinate der gewünschten Browser-Position
      • locate

        public void locate​(java.awt.Point location)
        Wünscht die Browser-Position.

        Ist dieses Hovlet das Root-Hovlet, so wird der Browser beim Öffnen an der angegebenen Stelle positioniert.

        Parameters:
        location - gewünschte Browser-Position
      • browse

        public void browse​(javax.swing.JInternalFrame browser)
        Beeinflusst die Erscheinung des Browsers, falls es sich bei diesem Hovlet um das Root-Hovlet handelt.

        Soll ein Hovlet-Baum in einem Browser angezeigt werden, kann das Root-Hovlet über die Erscheinung des Browsers bestimmen. Ist dieses Hovlet das Root-Hovlet, so kann es in diese Methode das Frame des Browsers modifizieren. Der Browser ist zu diesem Zeitpunkt noch nicht sichtbar.

        Diese Methode ist leer und kann überschrieben werden.

        Parameters:
        browser - Frame des Browsers
      • connect

        public boolean connect​(java.lang.String address)
        Verbindet das Hovlet mit der angegebenen Adresse.
        Parameters:
        address - Netzwerk-Adresse
        Returns:
        true, falls Verbindung erfolgte
      • disconnect

        public void disconnect()
        Trennt die Verbindung des Hovlets.
      • connecting

        protected boolean connecting​(java.lang.String address)
        Frei für die Implementierung des Verbindens.

        Diese Methode sollte true zurückgeben, falls die Verbindung erfolgen konnte.

        Der bisherige Inhalt dieser Methode verbindet sukzessive alle Sub-Hovlets mit der angegebenen Adresse und gibt true zurück, falls mindestens eine Verbindung erfolgen konnte. Auf diesen Code kann bei Bedarf mit super.connecting(...) zugegriffen werden.

        Parameters:
        address - Netzwerk-Adresse
        Returns:
        true, falls Verbindung erfolgte
      • disconnecting

        protected void disconnecting()
        Frei für die Implementierung des Trennens.

        Der bisherige Inhalt dieser Methode trennt sukzessive alle Sub-Hovlets. Auf diesen Code kann bei Bedarf mit super.disconnecting() zugegriffen werden.