Mit der Klasse JSWindowManaged werden die EventListener von JSWindow erweitert. Außerdem unterstützt die
Klasse JSWManager das Setzen von EventListenern. Wird ein EventListener von JSWindow(Managed) auf den Manager gesetzt, dann lösen alle, zu diesem Manager gehörenden Fenster diesen
Listener aus.
Zusätzliche Listener von JSWindowManaged:
alreadsExists | Falls ein Fenster eine ID hat und nicht geöffnet werden kann, weil diese ID bereits existiert, wird dieser EventListener ausgelöst. Als zusätzlicher Parameter wird der Listener-Funktion das Fenster mit der bereits existierenden ID übergeben. |
recoveryURLChanged | Wird abgefeuert, wenn sich die recoveryURL ändert. |
zChange | Wenn sich die z-Position eines Fensters ändert. |
activate | Wenn ein Fenster aktiviert wird. |
deactivate | Wenn ein Fenster deaktiviert wird. |
Die Scopeklasse JSWManager verwaltet die Z-Positionen der Layer, globale EventListener, die für alle Fenster gelten sollen, u. Ä.
Konstruktor von JSWManager:Beim Erstellen wird JSWManager ein HTML-Element übergeben, das nicht mehr geändert werden kann und für alle, diesem Manager unterstellten Fenster standardgemäß als ParentElement gesetzt wird.
Eigenschaften von JSWManager:mouseDownEV | Speichert ein Event-Objekt, damit der Listener in free freigegeben werden kann. |
parentElement | Speichert das Parent-Element, das dem Konstruktor übergeben wird. |
windowClicked | Wird bei aufsteigenden MouseDown-Events von Fenstern auf true gesetzt. So kann der Manager leicht feststellen, ob ein Fenster angeklickt wurde, oder nicht. Wenn nicht, wird das aktive Fenster deaktiviert. |
activeWindow | Speichert das gerade aktive Fenster. null, wenn kein Fenster aktiv ist. |
layers |
Speichert alle Layer. Die Layer werden dabei automatisch nach Z-Bereichen sortiert.
|
maxZ | Speichert den Z-Index, den das gerade höchste Fenster hat. |
taskbar | Die Taskbar, die diesem Manager zugeordnet ist. |
eventListeners | EventListener, die auf diesen Manager gesetzt wurden. |
freed | Mit dem Aufruf von free wird diese Variable auf true gesetzt, dadurch wissen alle Methoden, dass der Manager freigegeben wurde. |
startZIndex | Legt ein Offset für alle Z-Positionen fest. Das hinterste Fenster hat den startZIndex. Sollte beim Initialisieren des Managers gesetzt werden, nicht während bereits Fenster offen sind. |
effects | Speichert die Effekte aller Fenster. Jedes Fenter kann ein eigenes Effects-Objekt besitzen, standardgemäß wird im Managed-Windows-State aber das Effects-Objekt des Managers verwendet. Details zu diesem Objekt unter Effektregistrierung. |
minimalVisible | Genau wie das Effects-Objekt, wird JSWManager.minimalVisible als Standardwert für JSWindow.minimalVisible verwendet. |
onEvent |
Vereinfacht das Setzen von EventListenern. Dabei werden ein paar Kompatibilitätsprobleme mit Browsern behoben und die callback-Funktion wird automatisch im Scope des Managers aufgerufen.
|
mouseDown |
Wird im Konstruktor als Callback-Funktion für ein seitenweiten MouseDown-EventListener gesetzt. Dieser ist in mouseDownEV gespeichert.
|
addEventListener |
Setzt einen neuen EventListener auf den Manager. Mehr zum Thema im Abschnitt erweiterte EventListener.
|
removeEventListener |
Entfernt einen EventListener. Mehr zum Thema im Abschnitt erweiterte EventListener.
|
checkLayers |
Überprüft die Konsistenz der Z-Positionen von Fenstern und Layern. Layer werden zunächst nach deren minimaler Z-Position vorsortiert (Außer dontSort ist true).
Dann wird der Reihe nach ein Layer nach dem anderen per JSWLayer.fromMinZ an den Vorherigen angehängt.
|
bringLayerToFront |
Bringt einen Layer in der Z-Position so weit nach vorne, wie für diesen Layer möglich.
|
free | Gibt den Manager frei. Dadurch werden (falls vorhanden) auch die Taskbar, sowie alle Fenster und Layer freigegeben. Mehr zum Thema im Abschnitt ECMA-Script: Objekte Freigeben. |
Die Scopeklasse JSWTaskbar erzeugt eine Leiste mit Menübutton, in der jeder Layer einen Button erzeugen kann. Das Menü muss auf der Seite als unsichtbares HTML-Element vorbereitet werden, die Buttons können außerdem noch blinken oder einen Vortschrittsbalken anzeigen.
Konstruktor von JSWTaskbar:Erwartet beim erstellen eine Instanz von JSWManager, die mit einer Taskbar ausgestattet werden soll.
Eigenschaften von JSWTaskbar:mgr | Speichert den Manager, dem diese Taskbar zugeordnet wird. |
el | Speichert die unterschiedlichen HTML-Elemente, die zur Taskbar gehören. Für weitere Details lesen Sie unter HTML-Elemente: Taskbar. |
_this | Referenz auf JSWTaskbar.this. |
z | Speichert den aktuellen Z-Index der Taskbar. Die Taskbar soll immer vor allen Fenstern sein. Die z-Variable wird von setMinZ erhöht, falls die Taskbar nicht mehr vor allen Fenstern ist. |
menu | Speichert das der Taskbar zugeordnete Menü. Dieses wird in setMenu gesetzt. |
freed | Wenn true ist die Taskbar freigegeben (nicht mehr benutzbar). Wird in free gesetzt. |
menubutton | Der Menübutton, identisch zu JSWTaskbar.el['MenuButton']. Diese Zweitreferenz dient zum Zugriff durch public. |
menuOpen | Das Menü ist genau dann geöffnet, wenn menuOpen true ist. |
autoBlendOut | Wenn true, wird die Taskbar automatisch ausgeblendet (unfertig). |
create | Kapselt den Konstruktor von JSWTaskbar. Dieser wird am Ende der Klasse aufgerufen. So ist sichergestellt, dass der komplette Code geladen wurde. |
mouseDown | EventListener-Funktion, wird im Konstruktor auf die Taskbar gesetzt und setzt bei jedem Aufruf die Eigenschaft JSWManager.windowClicked des eigenen Managers auf true, dadurch wird das aktive Fenster beim anklicken der Taskbar nicht deaktiviert. |
openMenu | Öffnet das Menü. |
closeMenu | Schließt das Menü. |
menuCloseClick | EventListener-Funktion, wird in openMenu auf das Dokument gesetzt und in closeMenu gelöscht. Wenn nicht das Menü angeklickt wurde, ruft menuCloseClick closeMenu auf. |
setMenu |
Setzt ein neues Menü-Element für die Taskbar.
|
setMinZ |
Wird von JSWManaged.setZ aufgerufen. Wenn der Z-Index eines Fensters größer ist, als der der Taskbar, so muss diese wieder nach vorne gesetzt werden.
|
appendButton |
Fügt einen weiteren Button in der Taskbar ein. Siehe auch: Aufbau der Taskbar.
|
removeButton |
Entfernt einen Button aus der Taskbar.
|
free | Gibt die Taskbar frei. Siehe auch: Objekte Freigeben. |
Die Prototypeklasse JSWLayer verwaltet einen Verbund aus Fenstern und erzeugt dafür einen Button in der Taskbar. Ein Verbund von Fenstern ist immer in der Z-Ebene zusammenhängend und wird beim anklicken des Buttons in der Taskbar in den Vordergrund geholt.
Buttoneffekte
Der TaskbarButton unterstützt einige Spezialeffekte: Zum einen ist es möglich, einen dezenten Ladebalken innerhalb des Buttons anzuzeigen, zum anderen kann der Button
zum Blinken gebracht werden.
Beispiel:
JSWLayer erwartet beim erstellen nur den Manager, an dessen Taskbar die Buttons angehängt werden sollen. JSWLayer ist derzeit nicht darauf ausgelegt, dass der Manager beim erstellen eines Layers noch keine Taskbar besitzt.
Eigenschaften von JSWLayer:mgr | Speichert den Manager, der dem Konstruktor übergeben wurde. |
taskbar | Speichert die Taskbar von mgr. |
freed | Wird beim Aufruf von free auf true gesetzt. |
windows |
Speichert die Fenster, die zum Layer gehören. Diese können von der Funktion fromMinZ nach Z-Index sortiert werden.
|
minZ | Speichert den Z-Index des hintersten Fensters des Layers |
maxZ | Speichert den Z-Index des vordersten Fensters des Layers. |
el |
Speichert die HTML-Elemente, die zum Button gehören. null, wenn keine Taskbar existiert, ansonsten wie folgt aufgebaut:
|
topMost | Wenn true, ist der Layer TopMost, also in der Z-Ebene immer vor allen nicht-TopMost-Layern. |
mainWindow | Speichert das MainWindow des Layers. Wird das MainWindow geschlossen, so werden alle Fenster des Layers geschlossen. Auch bezieht der Layer sein Taskbar-Icon und -Title vom MainWindow, falls diese nicht explizit gesetzt wurden. |
icon |
Dies ist ein Property mit speziellem Getter und Setter. Nach außen wird immer ein String ausgegeben, der die URL des Taskbar-Icons speichert. "", wenn kein Icon
angezeigt werden soll. Das String-Objekt, das intern gespeichert wird, kann auch null sein. An dieser Stelle sei gesagt, dass in ECMA-Script "" != null
ist. Auf diese Weise ist es möglich einen "Ausnahmewert" zu speichern. Sie können also JSWLayer.icon = null setzen, dann wird der Getter
den Wert von JSWLayer.mainWindow.icon ausgeben oder "", falls mainWindow null ist. Im Default-Fall ist icon null, also JSWLayer verwendet das Icon des MainWindows, solange icon nicht explizit gesetzt wurde. |
title | Dies ist ein Property mit speziellem Getter und Setter, genau wie icon. title speichert den Titel des Layers, also den Text, der im TaskbarButton angezeigt werden soll. Solange title nicht explizit gesetzt wurde (der interne Wert null ist), wird der Titel des mainWindow verwendet. |
visibility | Mit dieser Eigenschaft soll eingestellt werden können, ob der TaskbarButton des Layers sichtbar ist, oder nicht. Jedoch ist diese Funktionalität derzeit nicht vollständig implementiert. |
getButtonPos |
Gibt die Position des TaskbarButtons von der linken, oberen Ecke der Seite aus gesehen zurück.
|
butClick | Wird aufgerufen, wenn der TaskbbarButton angeklickt wird. |
updateIconTitle | Setzt das vom Getter von icon zurückgegebene Icon für den TaskbarButton. Erzeugt bei Bedarf das benötigte IMG-Element JSWLayer.el.Icon. Setzt außerdem den vom Getter von title zurückgegebenen Titel. Wird auch von JSWindowManaged.setTitle und JSWindowManaged.setIcon aufgerufen. |
checkVisible | Prüft, ob der TaskbarButton sichtbar sein soll. Wenn keines der, dem Layer zugeordneten, Fenster sichtbar ist, soll der TaskbarButton ebenfalls unsichtbar sein. |
appendWindow |
Fügt ein zusätzliches Fenster in den Layer ein.
|
checkActive | Prüft, ob eines der Fenster des Layers aktiv ist. Wenn ja, wird der TaskbarButton hervorgehoben. |
removeWindow |
Entfernt ein Fenster aus dem Layer.
|
fromMinZ |
Setzt die Z-Position des Layers. Dabei wird das hinterste Fenster auf die neue Position gesetzt, das Zweithinterste davor, usw. Das Array windows
wird dafür nach z-Index der Fenster sortiert.
|
bringWindowToFront |
Setzt ein Fenster des Layers innerhalb des Layers nach Vorne. Dabei kann ein nicht-TopMost-Fenster nicht vor ein TopMost-Fenster gesetzt werden.
|
resize | EventListener, der die richtige Breite des Fortschrittsbalkens im Falle einer Änderung der Breite des TaskbarButtons sicherstellt. |
setProgress | Setzt die Position des Fortschrittsbalkens des TaskbarButtons. |
alertEffect | Animiert den Alert-Effect des TaskbarButtons. |
alert | Startet den Alert-Effect. Für Details siehe Buttoneffekte. |
free | Gibt den Layer frei. Gibt auch die im Layer enthaltenen Fenster frei. Siehe auch: Objekte Freigeben. |
Die Prototypeklasse JSWindowManaged erbt von JSWindow und erweitert dieses um die Eigenschaften des Managed-Window-State.
Konstruktor von JSWindowManaged:Der Konstruktor erwartet folgende Parameter:
_super | In diese Eigenschaft wird beim Laden des Scripts der Prototyp von JSWindow geklont. |
mgr | Speichert den Manager, der beim erstellen des Fenster übergeben wird. |
layer | Speichert den Layer, der beim erstellen des Fenster übergeben wird. |
active | True, wenn Fenster aktiv ist. |
z | Speichert den Z-Index des Fensters. |
id | Speichert die id des Fensters, wenn gesetzt, wird das Fenster als "ID-Window" bezeichnet und es kann kein zweites Fenster mit dieser ID geben. |
recoveryURL | Wird für den System-State benötigt. Speichert eine Zeichenkette, anhand derer das Fenster wiederhergestellt werden kann. Dies ist in der Regel der Pfad zu der Datei, in der das Fenster liegt. |
topMost | Wenn true, dann ist das Fenster innerhalb des Layers topMost, also immer vor allen nicht-topMost-Fenstern. Soll das Fenster global topMost sein, muss auch die Eigenschaft topMost des Layers auf true gesetzt werden. |
setRecoveryURL |
Setzt eine neue recoveryURL und ruft den EventListener recoveryURLChanged auf.
|
show | Überschreibt JSWindow.show. |
titleToID | Wandelt den Titel des Fensters in eine gültige ID um und ruft setID auf. |
setID |
Setzt eine neue ID. Falls bereits ein Fenster mit dieser ID existiert, wird dieses aktiviert und das aktuelle Fenster geschlossen (free). Nach dem Aufruf
von setID muss daher die Eigenschaft freed geprüft werden.
|
removeID | Setzt die ID auf '', danach ist das Fenster kein ID-Window mehr. |
hide | Überschreibt JSWindow.hide. |
setZ |
Setzt einen neuen Z-Index. Diese Funktion ist auf die Zusammenarbeit mit dem Manager und dem Layer angewiesen und sollte nicht direkt zum setrzen eines Z-Index' verwendet werden.
Um ein Fenster in den Vordergrund zu holen, kann bringToFront verwendet werden.
|
mouseDown | Überschreibt JSWindow.mouseDown. |
bringToFront | Setzt das Fenster sowohl innerhalb des Layers, als auch dessen Layer global nach vorne. |
setTitle | Überschreibt JSWindow.setTitle. |
setIcon | Überschreibt JSWindow.setIcon. |
exclude | Überschreibt WindowJS.exclude. |
activate |
Aktiviert ein Fenster.
|
deactivate |
Deaktiviert ein Fenster.
|
free | Überschreibt WindowJS.free. |