From 31f7c3b24c573be2520a3ac3cb00e1eaca2d394e Mon Sep 17 00:00:00 2001
From: Andrea Gottsponer <ago@attr.ch>
Date: Wed, 11 Dec 2019 11:49:18 +0100
Subject: [PATCH] - fix unchoose

---
 src/app/index.ts                           | 4 +++-
 src/lib/elements/images/MedsurfSprite.ts   | 3 ++-
 src/lib/generators/InteractiveGenerator.ts | 9 ++++++---
 src/lib/generators/SelftestGenerator.ts    | 9 ++++++---
 4 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/app/index.ts b/src/app/index.ts
index 1ae89d30..e036782a 100644
--- a/src/app/index.ts
+++ b/src/app/index.ts
@@ -10,6 +10,7 @@ import {Line} from "../lib/elements/connections/Line";
 import {ImageNavigatorElement} from "../lib/elements/interactions/ImageNavigatorElement";
 import {FillCollection} from "../lib/elements/collections/FillCollection";
 import {LegendCollection, LegendItem} from "../lib/elements/collections/LegendCollection";
+import {MedsurfSprite} from "../lib";
 
 const canvas = document.getElementById("medsurf_canvas") as HTMLCanvasElement;
 const width = canvas.width;
@@ -232,8 +233,9 @@ PIXI.Renderer.registerPlugin('bla', bla);
             // IMAGES
             // BaseSprite
             // const image = new MedsurfSprite(app.renderer, canvas, PIXI.Texture.from("https://api.medsurf.stage.iml.unibe.ch/v1/file/slides/3893/image/1500x1514_80_eaaa24fd-e69e-491e-b576-fccab29c85a2.jpg"));
+            const image = new MedsurfSprite(app.renderer, canvas, PIXI.Texture.from("http://localhost:3000/v1/file/slide/2701,2701/image/1800x1800_80.jpeg"));
             // Tile BaseSprite
-            const image = new MedsurfTileSprite(app.renderer, canvas, 5800, "https://api.medsurf.stage.iml.unibe.ch:443/v1/file/slide/5800/image/", 29512, 20512);
+            // const image = new MedsurfTileSprite(app.renderer, canvas, 5800, "https://api.medsurf.stage.iml.unibe.ch:443/v1/file/slide/5800/image/", 29512, 20512);
             // Video
             // const image = new MedsurfSprite(app.renderer, canvas, PIXI.Texture.from("./assets/juldem.mp4"));
 
diff --git a/src/lib/elements/images/MedsurfSprite.ts b/src/lib/elements/images/MedsurfSprite.ts
index de1c3737..d231e029 100644
--- a/src/lib/elements/images/MedsurfSprite.ts
+++ b/src/lib/elements/images/MedsurfSprite.ts
@@ -266,7 +266,8 @@ export class MedsurfSprite extends BaseSprite {
     }
 
     protected _onLoaded(): void {
-        this._fitToScreen(this._canvas.width, this._canvas.height);
+        // TODO this not working
+        // this._fitToScreen(this._canvas.width, this._canvas.height);
     }
 
     protected setVisibleElements(): void {
diff --git a/src/lib/generators/InteractiveGenerator.ts b/src/lib/generators/InteractiveGenerator.ts
index 07b3da94..6d3ca3d7 100644
--- a/src/lib/generators/InteractiveGenerator.ts
+++ b/src/lib/generators/InteractiveGenerator.ts
@@ -52,9 +52,12 @@ export class InteractiveGenerator extends BaseGenerator {
     protected _chooseElement(event: PIXI.interaction.InteractionEvent, element: ImageObject): void {
         event.stopPropagation();
 
-        this._targetFill.interactiveItems.push(element);
-
-        // TODO check for lines
+        const index = this._targetFill.interactiveItems.findIndex((item: ImageObject) => item === element);
+        if (index > -1) {
+            this._targetFill.interactiveItems.splice(index, 1);
+        } else {
+            this._targetFill.interactiveItems.push(element);
+        }
 
         element.modeInteraction.changeMode("interactive_choosing", this._targetFill);
     }
diff --git a/src/lib/generators/SelftestGenerator.ts b/src/lib/generators/SelftestGenerator.ts
index 810426bf..75d8c8ec 100644
--- a/src/lib/generators/SelftestGenerator.ts
+++ b/src/lib/generators/SelftestGenerator.ts
@@ -48,9 +48,12 @@ export class SelftestGenerator extends BaseGenerator {
     protected _chooseElement(event: PIXI.interaction.InteractionEvent, element: ImageObject): void {
         event.stopPropagation();
 
-        this.targetPositionPoint.selftestItems.push(element);
-
-        // TODO check for lines
+        const index = this.targetPositionPoint.selftestItems.findIndex((item: ImageObject) => item === element);
+        if (index > -1) {
+            this.targetPositionPoint.selftestItems.splice(index, 1);
+        } else {
+            this.targetPositionPoint.selftestItems.push(element);
+        }
 
         element.modeInteraction.changeMode("selftest_choosing", this.targetPositionPoint);
     }
-- 
GitLab