Skip to content

Commit

Permalink
Protect member access, fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ivmartel committed Oct 6, 2023
1 parent 0fbc05e commit a076ca7
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 13 deletions.
18 changes: 13 additions & 5 deletions src/gui/drawLayer.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export class DrawLayer {
*
* @type {object}
*/
#drawController = null;
#drawController;

/**
* The plane helper.
Expand Down Expand Up @@ -516,7 +516,9 @@ export class DrawLayer {
* DeleteCommand has been executed.
*/
deleteDraw(id, exeCallback) {
this.#drawController.deleteDraw(id, this.#fireEvent, exeCallback);
if (typeof this.#drawController !== 'undefined') {
this.#drawController.deleteDraw(id, this.#fireEvent, exeCallback);
}
}

/**
Expand All @@ -526,17 +528,23 @@ export class DrawLayer {
* DeleteCommand has been executed.
*/
deleteDraws(exeCallback) {
this.#drawController.deleteDraws(this.#fireEvent, exeCallback);
if (typeof this.#drawController !== 'undefined') {
this.#drawController.deleteDraws(this.#fireEvent, exeCallback);
}
}

/**
* Get the total number of draws of this layer
* (at all positions).
*
* @returns {number} The total number of draws.
* @returns {number|undefined} The total number of draws.
*/
getNumberOfDraws() {
return this.#drawController.getNumberOfDraws();
let res;
if (typeof this.#drawController !== 'undefined') {
res = this.#drawController.getNumberOfDraws();
}
return res;
}

/**
Expand Down
21 changes: 13 additions & 8 deletions src/gui/layerGroup.js
Original file line number Diff line number Diff line change
Expand Up @@ -731,15 +731,20 @@ export class LayerGroup {
} else {
// delete layer draws
const numberOfDraws = layer.getNumberOfDraws();
let count = 0;
layer.addEventListener('drawdelete', (_event) => {
++count;
// unbind when all draw are deleted
if (count === numberOfDraws) {
this.#unbindDrawLayer(layer);
}
});
if (typeof numberOfDraws !== 'undefined') {
let count = 0;
layer.addEventListener('drawdelete', (_event) => {
++count;
// unbind when all draw are deleted
if (count === numberOfDraws) {
this.#unbindDrawLayer(layer);
}
});
}
layer.deleteDraws();
if (typeof numberOfDraws === 'undefined') {
this.#unbindDrawLayer(layer);
}
// reset active index
if (this.#activeDrawLayerIndex === index) {
this.#activeDrawLayerIndex = undefined;
Expand Down

0 comments on commit a076ca7

Please sign in to comment.