Source: modules/Legend.js

  1. /**
  2. * @module modules/Legend.js
  3. * @name Legend
  4. * @copyright 2023 3Liz
  5. * @license MPL-2.0
  6. */
  7. import { LayerTreeGroupState } from '../modules/state/LayerTree.js'
  8. import { updateLayerTreeLayerSymbology, updateLayerTreeGroupLayersSymbology } from '../modules/action/Symbology.js';
  9. /**
  10. * @class
  11. * @name Legend
  12. */
  13. export default class Legend {
  14. /**
  15. * Create a legend instance
  16. * @param {LayerTreeGroupState} layerTree - Root tree layer group
  17. */
  18. constructor(layerTree) {
  19. // Init all symbologies
  20. if(layerTree.childrenCount === 0){
  21. return;
  22. }
  23. updateLayerTreeGroupLayersSymbology(layerTree);
  24. // Refresh symbology when a layer's style changes
  25. layerTree.addListener(
  26. evt => {
  27. updateLayerTreeLayerSymbology(layerTree.getTreeLayerByName(evt.name));
  28. },['layer.style.changed']
  29. );
  30. }
  31. }