/*jshint loopfunc: true */ define([ "dojo/dom-construct", "dojo/on", "app/layerInfoAdapter" ], function (domConstruct, on, layerInfoAdatper) { var layerVisibleSubLayersArr = []; //Arrays of array var layerTreeStores = [], layerTrees = []; var addedMapLayers = []; function resetInitialVariables() { layerVisibleSubLayersArr = undefined; layerTreeStores = undefined; layerTrees = undefined; addedMapLayers = undefined; layerVisibleSubLayersArr = []; layerTreeStores = []; layerTrees = []; addedMapLayers = []; } function initLayerTrees(addedLayers, treeContainer) { resetInitialVariables(); //var tocNode = document.getElementById(treeContainer); var tocNode = treeContainer; /*while (tocNode.firstChild) { tocNode.removeChild(tocNode.firstChild); }*/ var layerTreeStore, layerTreeModel, layerTree; var layerVisibleSubLayers = []; //Array var addedLayer; for (var i = 0, len = addedLayers.length; i < len; i++) { addedLayer = addedLayers[i]; if (addedLayer.showSubLayers) { layerTreeStore = layerInfoAdatper.adaptLayerInfoToDataStore(addedLayer.layer.layerInfos); } else { layerTreeStore = layerInfoAdatper.adaptLayerToDataStore(addedLayer.visible, addedLayer.title, i); } // Create HTML list structure var checkbox = domConstruct.create("input", { type: "checkbox", id: "layer_cb_" + i, checked: addedLayer.visible }); checkbox.setAttribute("data-layer-id", addedLayer.layer.id); var label = domConstruct.create("label", {}, tocNode); label.setAttribute("for", checkbox.id); label.appendChild(checkbox); label.appendChild(document.createTextNode(addedLayer.title)); on(checkbox, "change", function (e) { var layerId = this.getAttribute("data-layer-id"); if (!layerId) return; var layer = _map.getLayer(layerId); if (this.checked) layer.show(); else layer.hide(); }); addedMapLayers.push(addedLayer.layer); layerVisibleSubLayersArr.push(layerVisibleSubLayers); } } return { initLayerTrees: initLayerTrees }; });