Klassen des Pakets AstroUI: Zur Doku-Startseite Zurück zur Homepage

Interface ILoadListener

Javadoc von ILoadListener   ILoadListener.java herunterladen

package AstroUI;

/** Interface zur Synchronisation mehrerer, auf einer HTML-Seite befindlicher Applets.
Da jedes Applet beim Aufbau einer HTML-Seite in einem eigenen Thread gestartet wird, gibt
es keine zuverlässige Reihenfolge der Verfügbarkeit. Wenn man beim Laden der Webseite
innerhalb der <code>start()</code>-Methoden der Applets Queraufrufe in ein anderes
Applet implementieren will, ist nicht sichergestellt, dass das gerufene Applet bereits
verfügbar ist.
<p>
Mit einem Trick kann man aber doch das Gewünschte erreichen: Das rufende Applet
implementiert das Interface <code>ILoadListener</code>, das aus der einzigen Methode
{@link #onLoad(Object) onLoad} besteht. Wenn sich das rufende Applet in seiner
<code>start()</code>-Methode mit Hilfe der <code>Applet.getAppletContext()</code>
die Instanz des aufzurufenden Applets beschaffen und die gewünschte Methode erfolgreich
ausführen konnte, markiert es sich diese Aufgabe als erledigt. Konnte die Instanz
noch nicht beschafft werden, so kommt das Interface ILoadListener() wie folgt zum
Tragen: Jedes Applet, das potentiell von anderen Applets gerufen wird, durchläuft
in einer Schleife sämtliche Applet-Instanzen. Für diejenigen, die sich auf den Typ
<code>ILoadListener</code> casten lassen, wird die Interface-Methode <code>onLoad(this)</code>
ausgeführt. Ist also das aufzurufende Applet später fertig als das rufende, so erhält
das rufende Applet durch die <code>onLoad</code>-Methode die Möglichkeit, nun die
gewünschte Methode auszuführen. Es bekommt also, kurz gesagt, entweder in seiner eigenen
<code>start()</code>-Methode, oder in der <code>onLoad()</code>-Methode die Möglichkeit,
die Aktion auf dem gerufenen Applet auszuführen.
<p>
Die Applets {@link HoroApplet HoroApplet} und {@link HoroCompare HoroCompare} haben
eine Schleife über die <code>ILoadListener()</code>-Applets der gleichen Seite in ihrer
Startmethode implementiert. Sie sind also durch ein anderes Applet extern steuerbar.
*/
public interface ILoadListener {

/** Wird von allen Instanzen von {@link HoroApplet HoroApplet} und {@link HoroCompare HoroCompare}
 beim Laden der Seite aufgerufen, um rufenden Applets zu ermöglichen, beim Laden der Seite
 garantiert auf das Applet zuugreifen zu können (siehe Dokumentation zur Klasse). */
  public void onLoad(Object caller);

}

Zum Seitenanfang Lizenzbedingungen Der Quellcode wird mit dem GNU source-highlight 1.7 dargestellt