Zusätzlich zum Initialsieren der Map und dem Hinzufügen von FMO (Falk Map Objekt),
wird das eigene Overlay der Map hinzugefügt.
Da pro Overlay ein InfoFenster existiert, müssen sich die Overlays der Map darüber informieren,
wenn ein InfoFenster geöffnet wird, um das InfoFenster des anderen Overlays zu schließen.
Das funktioniert durch eine Benachrichtigung über das Event FalkInfoWindow.MSG_BEFORE_WINDOW_OPEN
,
über welches man am Overlay einen entsprechenden Event-Handler registriert.
Ein eigenes Overlay wird benötigt, da das InfoFenster vom Overlay verwaltet wird.
Dazu genügt es aber, das eigene InfoWindow zu initialisieren und sämtliche andere Funktionalitäten
von FalkOverlay
zu erben.
Das erreicht man sehr leicht über die in YUI 2 implementierte Funktionalität
YAHOO.lang.extend(o, super);
.
Das FalkInfoWindow kann relativ einfach angepasst werden, indem man ein eigenes Objekt definiert und dieses von FalkInfoWindow erben lässt. Meistens geht es bei Anpassungen nur darum, das Aussehen zu verändern, die Funktionalitäten möchte man jedoch beibehalten.
Das folgende Beispiel ändert das Aussehen komplett. Header und Footer werden nicht befüllt. Alle Befüllungen werden im Body vorgenommen. Dazu wird der Context des InfoFensters geändert und das Styling angepasst.
Eine Anpassung des FalkInfoWindow
kann auch durch Vergabe eines eigenen Styles erreicht werden.
Angaben zu Style werden über CSS erreicht, wozu das Objekt FalkInfoWindowStyle
geändert werden kann.
Dieses Objekt ist zunächst ein Array von Objekten:
FalkInfoWindowStyle = [];
Jedes dieser Objekte besitzt zwei Eigenschaften: classname
und styles
.
Der Wert für classname
ist der Name der Klasse des FalkInfoWindow, auf das die styles angewendet werden sollen.
Die Styleangaben sind key - value Paare für CSS-Regeln. Sie werden als Array von Objekten angegeben:
{ classname : 'value for classname', styles:[ { key: 'css-Regel', value: 'CSS-Wert'} ] }
Folgende Klassennamen sind vorgegeben und können angepasst werden:
Das folgende Codebeispiel zeigt, wie das FalkInfoFenster in seinem Aussehen angepasst werden kann.