From ffe47642da2331486db2f362104907b94a827242 Mon Sep 17 00:00:00 2001
From: Andrea Gottsponer <ago@attr.ch>
Date: Mon, 5 Sep 2022 14:08:26 +0200
Subject: [PATCH] - fix image selection

---
 src/lib/elements/connections/Line.ts                      | 3 +++
 src/lib/elements/fills/FillCollection.ts                  | 3 +++
 src/lib/elements/images/Image.ts                          | 8 ++++++++
 src/lib/elements/legends/LegendCollection.ts              | 3 +++
 src/lib/elements/positionings/PositionPoint.ts            | 7 +++----
 src/lib/elements/primitives/ArrowPrimitive.ts             | 3 +++
 .../elements/primitives/BackgroundRectanglePrimitive.ts   | 3 +++
 src/lib/elements/primitives/EllipsePrimitive.ts           | 3 +++
 src/lib/elements/primitives/RectanglePrimitive.ts         | 3 +++
 src/lib/elements/primitives/TextPrimitive.ts              | 3 +++
 10 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/src/lib/elements/connections/Line.ts b/src/lib/elements/connections/Line.ts
index 6efd4104..d2fb7eea 100644
--- a/src/lib/elements/connections/Line.ts
+++ b/src/lib/elements/connections/Line.ts
@@ -1952,6 +1952,9 @@ export class Line extends BaseElementContainer<Models.Line, BaseElementContainer
     public controlUnselectItem(image: MedsurfDraw.Image): void {
         // Set select layer
         if(!this.controlSelectLayerGroup(image)) {
+            // Set select image
+            image.externControlSelectImage();
+
             // Emits
             image.unselectImageObject();
         }
diff --git a/src/lib/elements/fills/FillCollection.ts b/src/lib/elements/fills/FillCollection.ts
index 1a37fa02..a2fb9889 100644
--- a/src/lib/elements/fills/FillCollection.ts
+++ b/src/lib/elements/fills/FillCollection.ts
@@ -1542,6 +1542,9 @@ export class FillCollection extends BaseElementContainer<Models.FillCollection,
     public controlUnselectItem(image: MedsurfDraw.Image): void {
         // Set select layer
         if(!this.controlSelectLayerGroup(image)) {
+            // Set select image
+            image.externControlSelectImage();
+
             // Emits
             image.unselectImageObject();
         }
diff --git a/src/lib/elements/images/Image.ts b/src/lib/elements/images/Image.ts
index 0cd0e41f..fab773e8 100644
--- a/src/lib/elements/images/Image.ts
+++ b/src/lib/elements/images/Image.ts
@@ -2069,6 +2069,14 @@ export class Image extends BaseContainer<ImageModel> {
     //</editor-fold>
 
     //<editor-fold desc="Extern control">
+    /**
+     * Extern control select image
+     */
+    public externControlSelectImage(): void {
+        // Setup image
+        this.controlSetDefaultMode(new PIXI.InteractionEvent());
+    }
+
     /**
      * Extern control select grouping
      * @param model
diff --git a/src/lib/elements/legends/LegendCollection.ts b/src/lib/elements/legends/LegendCollection.ts
index 306a0c48..089c5c6c 100644
--- a/src/lib/elements/legends/LegendCollection.ts
+++ b/src/lib/elements/legends/LegendCollection.ts
@@ -1142,6 +1142,9 @@ export class LegendCollection extends BaseElementContainer<Models.LegendCollecti
     public controlUnselectItem(image: MedsurfDraw.Image): void {
         // Set select layer
         if(!this.controlSelectLayerGroup(image)) {
+            // Set select image
+            image.externControlSelectImage();
+
             // Emits
             image.unselectImageObject();
         }
diff --git a/src/lib/elements/positionings/PositionPoint.ts b/src/lib/elements/positionings/PositionPoint.ts
index afffb8a4..bcc1fa98 100644
--- a/src/lib/elements/positionings/PositionPoint.ts
+++ b/src/lib/elements/positionings/PositionPoint.ts
@@ -1256,13 +1256,12 @@ export class PositionPoint extends BaseElementContainer<Models.PositionPoint, Ba
      */
     public controlUnselectItem(image: MedsurfDraw.Image): void {
         // Set select layer
-        console.log("controlUnselectItem");
         if(!this.controlSelectLayerGroup(image)) {
+            // Set select image
+            image.externControlSelectImage();
+
             // Emits
             image.unselectImageObject();
-
-            // TODO this -> create functions on image to handle all this stuff -> select layergroup / grouping / image / etc
-            // image.externControl
         }
     }
 
diff --git a/src/lib/elements/primitives/ArrowPrimitive.ts b/src/lib/elements/primitives/ArrowPrimitive.ts
index fb330ffa..8f51d1c9 100644
--- a/src/lib/elements/primitives/ArrowPrimitive.ts
+++ b/src/lib/elements/primitives/ArrowPrimitive.ts
@@ -1315,6 +1315,9 @@ export class ArrowPrimitive extends BaseElementContainer<Models.ArrowPrimitive,
 
         // Set select layer
         if(!parent.controlSelectLayerGroup(image)) {
+            // Set select image
+            image.externControlSelectImage();
+
             // Emits
             image.unselectPrimitive();
         }
diff --git a/src/lib/elements/primitives/BackgroundRectanglePrimitive.ts b/src/lib/elements/primitives/BackgroundRectanglePrimitive.ts
index 3b5099f8..93b2d7c2 100644
--- a/src/lib/elements/primitives/BackgroundRectanglePrimitive.ts
+++ b/src/lib/elements/primitives/BackgroundRectanglePrimitive.ts
@@ -1294,6 +1294,9 @@ export class BackgroundRectanglePrimitive extends BaseElementContainer<Models.Ba
 
         // Set select layer
         if(!parent.controlSelectLayerGroup(image)) {
+            // Set select image
+            image.externControlSelectImage();
+
             // Emits
             image.unselectPrimitive();
         }
diff --git a/src/lib/elements/primitives/EllipsePrimitive.ts b/src/lib/elements/primitives/EllipsePrimitive.ts
index 0d5b18be..6a8d3f64 100644
--- a/src/lib/elements/primitives/EllipsePrimitive.ts
+++ b/src/lib/elements/primitives/EllipsePrimitive.ts
@@ -1287,6 +1287,9 @@ export class EllipsePrimitive extends BaseElementContainer<Models.EllipsePrimiti
 
         // Set select layer
         if(!parent.controlSelectLayerGroup(image)) {
+            // Set select image
+            image.externControlSelectImage();
+
             // Emits
             image.unselectPrimitive();
         }
diff --git a/src/lib/elements/primitives/RectanglePrimitive.ts b/src/lib/elements/primitives/RectanglePrimitive.ts
index 7de1c4d9..8e5e575a 100644
--- a/src/lib/elements/primitives/RectanglePrimitive.ts
+++ b/src/lib/elements/primitives/RectanglePrimitive.ts
@@ -1288,6 +1288,9 @@ export class RectanglePrimitive extends BaseElementContainer<Models.RectanglePri
 
         // Set select layer
         if(!parent.controlSelectLayerGroup(image)) {
+            // Set select image
+            image.externControlSelectImage();
+
             // Emits
             image.unselectPrimitive();
         }
diff --git a/src/lib/elements/primitives/TextPrimitive.ts b/src/lib/elements/primitives/TextPrimitive.ts
index bd1db86b..b2aed46a 100644
--- a/src/lib/elements/primitives/TextPrimitive.ts
+++ b/src/lib/elements/primitives/TextPrimitive.ts
@@ -1489,6 +1489,9 @@ export class TextPrimitive extends BaseElementContainer<Models.TextPrimitive, Ba
 
         // Set select layer
         if(!parent.controlSelectLayerGroup(image)) {
+            // Set select image
+            image.externControlSelectImage();
+
             // Emits
             image.unselectPrimitive();
         }
-- 
GitLab