Mod treefolder2.php

From MapbenderWiki

Jump to: navigation, search

User:Melchior Moos

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
Views
Personal tools