diff --git a/src/lib/bases/BaseElementContainer.ts b/src/lib/bases/BaseElementContainer.ts index 9d155de35bbab3880a7efa968fe6df66f066535b..8b7624ac5550ff48f9302e7a640d20f43988722c 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 4b3a15a9e5d20758ac84b71e4022331e1284573b..ed7d09432598c15596b32e306b04d00d49df21d5 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 1466d8fea2eddf5c44114a0b93d66e3758d397da..89963b68215491db164949c77cc2331ccb1d2329 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 ce98a7652f4f760f49337500cf03ba3eb0118bb9..17e181b0376bc225d5d48435584e0530a44a89a2 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);