From 2b4f106d0f610277f42f0ecfb867fa81fd748b6f Mon Sep 17 00:00:00 2001 From: rhenck <richard.henck@iqb.hu-berlin.de> Date: Wed, 10 Aug 2022 00:01:39 +0200 Subject: [PATCH] Remove getChildElements method from general UIElement This is only useful in CompoundElements. So use checks for that class instance. --- projects/common/models/elements/element.ts | 4 ---- projects/common/models/section.ts | 2 +- projects/editor/src/app/services/unit.service.ts | 8 +++++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/projects/common/models/elements/element.ts b/projects/common/models/elements/element.ts index 8ddeac801..e88321a8e 100644 --- a/projects/common/models/elements/element.ts +++ b/projects/common/models/elements/element.ts @@ -68,10 +68,6 @@ export abstract class UIElement { (this.player as PlayerProperties)[property] = value; } - getChildElements(): UIElement[] { - return []; - } - abstract getComponentFactory(): Type<ElementComponent>; } diff --git a/projects/common/models/section.ts b/projects/common/models/section.ts index e008574c3..152367a05 100644 --- a/projects/common/models/section.ts +++ b/projects/common/models/section.ts @@ -91,7 +91,7 @@ export class Section { /* Includes children of children, i.e. compound children. */ getAllElements(elementType?: string): UIElement[] { let allElements: UIElement[] = - this.elements.map(element => [element, ...element.getChildElements()]) + this.elements.map(element => [element, ...(element as CompoundElement).getChildElements() || []]) .flat(); if (elementType) { allElements = allElements.filter(element => element.type === elementType); diff --git a/projects/editor/src/app/services/unit.service.ts b/projects/editor/src/app/services/unit.service.ts index 11a2d6f4f..0f3e752d7 100644 --- a/projects/editor/src/app/services/unit.service.ts +++ b/projects/editor/src/app/services/unit.service.ts @@ -148,9 +148,11 @@ export class UnitService { this.idManager.removeId(value.id); }); } - element.getChildElements().forEach((childElement: UIElement) => { - this.idManager.removeId(childElement.id); - }); + if (element instanceof CompoundElement) { + element.getChildElements().forEach((childElement: UIElement) => { + this.idManager.removeId(childElement.id); + }); + } this.idManager.removeId(element.id); }); } -- GitLab