UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

41 lines (40 loc) 1.41 kB
import GroupLayer from '../../../models/layers/grouplayer'; import ThemeLayer from '../../../models/layers/themelayer'; import TreeViewElement from './treeviewelement'; export default class TreeViewGroupElement extends TreeViewElement { constructor(layer, name) { super(layer, name); Object.defineProperty(this, "layer", { enumerable: true, configurable: true, writable: true, value: void 0 }); this.layer = layer; } sortedChildren() { return this.layerManager.getSortedLayers(this.layer.children); } deactivateThemeOrGroup(layer) { layer.activeState = 'off'; if (layer instanceof ThemeLayer || layer instanceof GroupLayer) { for (const child of layer.children) { this.deactivateThemeOrGroup(child); } } } toggle() { this.stateManager.batchChanges(() => { this.layerManager.toggleGroupOrTheme(this.layer); this.toggleLayers(this.layer.children, this.layer.activeState); }); } toggleLayers(layers, activeState) { for (const layer of layers) { this.layerManager.toggle(layer, activeState); if (layer instanceof GroupLayer || layer instanceof ThemeLayer) { this.toggleLayers(layer.children, activeState); } } } }