From 9569bd52d17ab1d1fb3d264eb32999b8b1cd80d2 Mon Sep 17 00:00:00 2001 From: Andrea Gottsponer <ago@attr.ch> Date: Thu, 16 Jan 2020 15:14:08 +0100 Subject: [PATCH] - fixes --- src/lib/bases/BaseElementContainer.ts | 8 ++++- .../elements/collections/FillCollection.ts | 32 +++++++------------ .../primitives/LegendTextPrimitive.ts | 4 +-- src/lib/elements/primitives/TextPrimitive.ts | 4 +-- 4 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/lib/bases/BaseElementContainer.ts b/src/lib/bases/BaseElementContainer.ts index 9d155de3..8b7624ac 100644 --- a/src/lib/bases/BaseElementContainer.ts +++ b/src/lib/bases/BaseElementContainer.ts @@ -15,9 +15,15 @@ export abstract class BaseElementContainer<T extends Models.ImageObject> extends protected constructor(model: T) { super(); + // Defaults + if (!model.id) { + model.id = uuid.v4(); + } + // Setup this._model = model; - this.name = model.id || uuid.v4(); + // @ts-ignore + this.name = model.id; } //<editor-fold desc="Getter and Setter"> diff --git a/src/lib/elements/collections/FillCollection.ts b/src/lib/elements/collections/FillCollection.ts index 4b3a15a9..ed7d0943 100644 --- a/src/lib/elements/collections/FillCollection.ts +++ b/src/lib/elements/collections/FillCollection.ts @@ -264,7 +264,7 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection> // Begin draw if (this.model.options.fillColor) { - this._fillElement.beginFill(this.model.options.fillColor, this.model.options.fillAlpha); + this._fillElement.beginFill(this._fillColor, this._fillAlpha); } // Get first element and moveTo this @@ -739,24 +739,18 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection> this.draw(); this.getImage().itemInteractive(new PIXI.interaction.InteractionEvent(), this); - if (this.model.interactiveItems) { - this.model.interactiveItems.forEach((model: Models.ImageObject) => { - const element = this.getImage().getChildByName(model.id || "new") as ImageObject; - element.showItem(); - }); - } + this.interactiveItems.forEach((element: ImageObject) => { + element.showItem(); + }); } protected _onInteractiveRelease(): void { this._fillAlpha = this._fillAlphaInteractive; this.draw(); - if (this.model.interactiveItems) { - this.model.interactiveItems.forEach((model: Models.ImageObject) => { - const element = this.getImage().getChildByName(model.id || "new") as ImageObject; - element.hideItem(); - }); - } + this.interactiveItems.forEach((element: ImageObject) => { + element.hideItem(); + }); } protected _onRelease(): void { @@ -832,14 +826,12 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection> if (this.model.isInteractive) { this._configurationElement.addChild(this._interactiveChooseButton); } else { - const items = this.model.interactiveItems; + const items = this._interactiveItems; + this.interactiveItems = []; this.model.interactiveItems = []; // Remove existing items - if (items) { - items.forEach((model: Models.ImageObject) => { - const element = this.getImage().getChildByName(model.id || "new") as ImageObject; - element.modeInteraction.changeMode("blocked", this); - }); - } + items.forEach((element: ImageObject) => { + element.modeInteraction.changeMode("blocked", this); + }); this._configurationElement.removeChild(this._interactiveChooseButton); } diff --git a/src/lib/elements/primitives/LegendTextPrimitive.ts b/src/lib/elements/primitives/LegendTextPrimitive.ts index 1466d8fe..89963b68 100644 --- a/src/lib/elements/primitives/LegendTextPrimitive.ts +++ b/src/lib/elements/primitives/LegendTextPrimitive.ts @@ -89,7 +89,7 @@ export class LegendTextPrimitive extends BaseElementContainer<Models.LegendItem> // Setup this.zIndex = 300; // TODO how to implement moveToFront etc... - this._style = this.model.style; + this._style = new PIXI.TextStyle(this.model.style); this._startTextIndex = this.model.text.length; this._endTextIndex = this.model.text.length; this._textSelection = false; @@ -149,7 +149,7 @@ export class LegendTextPrimitive extends BaseElementContainer<Models.LegendItem> this._selectionElement = new SelectionElement(this._writeInteraction); this._rotateContainer.addChild(this._selectionElement); - this._textElement = new PIXI.Text(this.model.text, this.model.style); + this._textElement = new PIXI.Text(this.model.text, this._style); this._textElement.zIndex = 100; this._rotateContainer.addChild(this._textElement); diff --git a/src/lib/elements/primitives/TextPrimitive.ts b/src/lib/elements/primitives/TextPrimitive.ts index ce98a765..17e181b0 100644 --- a/src/lib/elements/primitives/TextPrimitive.ts +++ b/src/lib/elements/primitives/TextPrimitive.ts @@ -121,7 +121,7 @@ export class TextPrimitive extends BaseElementContainer<Models.TextPrimitive> { // Setup this.zIndex = 300; // TODO how to implement moveToFront etc... // this._color = this.model.style.fill; - this._style = this.model.style; + this._style = new PIXI.TextStyle(this.model.style); this._startTextIndex = this.model.text.length; this._endTextIndex = this.model.text.length; this._textSelection = false; @@ -183,7 +183,7 @@ export class TextPrimitive extends BaseElementContainer<Models.TextPrimitive> { this._selectionElement = new SelectionElement(this._writeInteraction); this._rotateContainer.addChild(this._selectionElement); - this._textElement = new PIXI.Text(this.model.text, this.model.style); + this._textElement = new PIXI.Text(this.model.text, this._style); this._textElement.zIndex = 100; this._rotateContainer.addChild(this._textElement); -- GitLab