UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

36 lines (35 loc) 1.29 kB
import GroupLayer from '../../../models/layers/grouplayer.js'; import ThemeLayer from '../../../models/layers/themelayer.js'; import TreeViewElement from './treeviewelement.js'; export default class TreeViewGroupElement extends TreeViewElement { layer; constructor(layer, name) { super(layer, name); this.layer = layer; } sortedChildren() { return this.context.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.context.stateManager.batchChanges(() => { this.context.layerManager.toggleGroupOrTheme(this.layer); this.toggleLayers(this.layer.children, this.layer.activeState); }); } toggleLayers(layers, activeState) { for (const layer of layers) { this.context.layerManager.toggle(layer, activeState); if (layer instanceof GroupLayer || layer instanceof ThemeLayer) { this.toggleLayers(layer.children, activeState); } } } }