Mod treefolder2.php
From MapbenderWiki
Contents |
internes von mod_treefolder2
Die Funktionen, die den Baum als solches betreffen befinden sich in der js-Datei jsTree.js, die Funktionen die das Befüllen und Verwalten des Baumes betreffen direkt in der mod-Datei.
Element Vars
alerterror
bool (true/false)
Einen Alert anzeigen, wenn beim Laden einer Karte ein Fehler auftritt. Benötigt wegen Inkompatiblität mit mod_mapcheck.
cssfile
ficheckbox
bool (true/false)
Checkbox für den FeatureInfo Request
imagedir
Verzeichnis zu den Bildern
metadatalink
bool (true/false)
Link für die Metadaten eines Layers
showstatus
bool (true/false)
Ladestatus der Karten in den Ordnersymbolen anzeigen
switchwms
bool (true/false)
Checkbox um alle Ebenen eines WMS an/aus zuschalten
wmsbuttons
bool (true/false)
Buttons zum verschieben/löschen von WMS anzeigen
Grundsätzliches:
- Aufbau des Nodedefinitions-Arrays:
[
String: node id,
[
String: title,
String: href,
String: target,
String: image,
String: tooltip,
Folder definition: node context menu,
String: controls
],
Folder definition: sub folder
]
Der String controls enthält die HTML-Definition von Streuerelementen, die zwischen Bild und Text eines Blattes erscheinen sollen (im treefolder mod die Checkboxen). Die ctrlNr Variable bei den Steuerelement-Funktionen gibt an das wievielte Steuerelement in dieser Definition bearbeitet werden soll.
- Aufbau einer Pfadangabe (besteht grundsätzlich aus den ID's:
root_id|ids_of_parents(...)|node_id
Variablen in jsTree.js:
jst_display_root
legt fest ob das root-Element angezeit wird
jst_highlight
left fest ob das ausgewählte Element hervorgehoben wird
jst_image_folder
Pfad zu den Bildern
Funktionen in jsTree.js:
getDefinition()
liefert die Definition des Baumes im aktuellen Zustand (außer Zustand der controls und der Sichtbarkeit)
getDomNode(path)
liefert das Dom-Element des Blattes Path oder null im Fehlerfall
addNode(path, nd, sel, refresh)
fügt das Blatt nd an der Stelle path des Baumes ein
sel = true wählt das Element anschließend aus
refresh = true bewirkt ein erneutes Rendern des Baumes, so dass das eingefügte Element auch auftaucht
deleteNode(path)
löscht das Blatt path und rendert den Baum neu
getState()
liefert den Aktuellen Zustand (aufgeklappt oder nicht)
setState(data)
setzt den augeklappt Zustand
rebuildNode(path, parent)
rendert den Baum unterhalb von path neu. Wenn path="" wird der gesammte Baum neu gerendert. Parent (bool) gibt an ob Elemente der gleichen Ebene von path auch neu gerendert werden
setNodeColor(path, color)
setzt die Textfarbe eines Blattes. HINWEIS: wählt der Nutzer das Blatt aus wird die Farbe überschrieben!
setNodeImage(path, Img)
setzt das Bild eines Blattes, Img ist dabei relativ zum jst_image_folder
selectNode(path)
wählt das Blatt path aus
IsChecked(path, ctrlNr)
prüft ob die Checkbox ctrlNr des Blattes path ausgewählt ist
getChildrenCheckState(path, ctrlNr)
prüft ob die Checkboxen ctrlNr der direkten Kinder das Blattes path ausgewählt sind Rückgabewert ist -1 wenn der Status uneinheitlich ist
checkChildren(path, ctrlNr, bChk)
Setzt den Auswahlstatus der Checkboxen ctrlNr der direkten Kinder das Blattes path auf bChk
checkNode(path, ctrlNr, bChk)
setzt den Auswählstatus der Checkbox ctrlNr des Blattes path auf bChk
enableCheckbox(path, ctrlNr, bEnabled)
(De)aktiviert das Steuerelement ctrlNr des Blattes path
expandAll()
Macht alle Blätter des Baumes sichtbar
closeAll()
Macht alle Blätter des Baumes unsichtbar (soweit möglich)
isExpanded(tr)
Prüft ob das Dom-Element tr einem ausgeklappten Zweig entspricht
childExists(tr)
Prüft ob das Dom-Element tr einem Zweig mit Blättern entspricht
renderTree()
rendert den Baum (neu)
Variablen in mod_treefolder2.php:
var jst_container = "document.getElementById('treeContainer')";
Der Layer in dem der Baum angezeig wird
var jst_image_folder = imagedir;
Bilderverzeichnis
var jst_display_root = false;
root nicht anzeigen
var defaultTarget = 'examplemain';
target für metadata-Links
var selectedMap=-1; var selectedWMS=-1; var selectedLayer=-1;
Ausgewähltes Element
var errors = 0; var state=Array();
Ladestatus der Karten
Funktionen in mod_treefolder2.php:
select(i,ii,iii)
- wird aufgerufen wenn ein Layer ausgewählt wird
- die Variablen selectedMap, selectedWMS und selectedLayer werden aktualisiert und beim vorher ausgewählten Layer wird die Farbe neu gesetzt (scalehints)
updateScale()
- wird aufgerufen wenn die Karte neu geladen wird
- färbt Layer nach scalehints ggf grau
loadTree()
- wird bei Laden aufgerufen
- baut den Baum auf
reloadTree()
- wird aufgerufen, wenn WMS hinzugefügt oder entfernt werden
- baut den Baum erneut auf
imgerror()
- wird aufgerufen, wenn bei Laden eines Karten-Bildes ein Fehler auftritt
- setzt das Fehlerbildchen und zeigt ggf einen alert
checkComplete()
- ruft sich selber auf
- prüft ob ein Bild gerade geladen wird und passt die Statusbilder entsprechend an
init_mapcheck()
- wird aufgerufen wenn die Karte neu geladen wird
- initialisiert die Ladestatusüberprüfung
handleSelectedLayer()
- wird beim Klick auf eine Layercheckbox aufgerufen
- handelt die Auswahl
move_up()
- wird beim Klick auf MoveUp aufgerufen
- verschiebt den ausgewählten WMS eine Ebene nach unten(!)
move_down()
- wird beim Klick auf MoveDown aufgerufen
- verschiebt den ausgewählten WMS eine Ebene nach oben(!)
remove_wms()
- wird beim Klick auf RemoveWMS aufgerufen
- löscht den gewählten WMS aus der Liste
updateParent()
- wird beim Klick auf die Checkbox eines Layers aufgerufen
- setzt den Checkstatus des Eltern-Element entsprechend den Kindern
handleSelectedWMS()
- wird beim Klick auf eine WMS-Checkbox aufgerufen
- setzt alle Layer des WMS auf den entsprechenden Status
initArray()
- wird beim neuaufbau des Baumes aufgerufen
- befüllt den Baum
initWmsCheckboxen()
- wird beim neuaufbau des Baumes aufgerufen
- setzt den Checkstatus aller WMS-Checkboxen entsprechens dem Statud der Kinder
