From 3b84e2ca1739f6f40e5537802d04ec9a61762191 Mon Sep 17 00:00:00 2001
From: Sylvain Renault <sylvain.renault@hhi.fraunhofer.de>
Date: Thu, 28 Jul 2022 10:59:22 +0200
Subject: [PATCH] Some change in the Server/Editor UI (light weight).

---
 .../Editor/Windows/TrackableWindow.cs         |  97 ++-
 .../Editor/Windows/WorldAnchorWindow.cs       |  73 ++-
 .../Editor/Windows/WorldLinkWindow.cs         | 123 ++--
 .../Editor/Windows/WorldStorageWindow.cs      |  87 +--
 ... local.asset => HHI Server - detlef.asset} |   2 +-
 ...et.meta => HHI Server - detlef.asset.meta} |   0
 UserSettings/Layouts/default-2021.dwlt        | 579 +++++++++++++++---
 7 files changed, 702 insertions(+), 259 deletions(-)
 rename Assets/ETSI.ARF/ARF World Storage API/World Storage/{HHI Server - local.asset => HHI Server - detlef.asset} (94%)
 rename Assets/ETSI.ARF/ARF World Storage API/World Storage/{HHI Server - local.asset.meta => HHI Server - detlef.asset.meta} (100%)

diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs
index 3827d41..c521400 100644
--- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs	
+++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/TrackableWindow.cs	
@@ -113,8 +113,9 @@ namespace ETSI.ARF.WorldStorage.UI
             ori = GUI.backgroundColor; // remember ori color
 
             gsTest = new GUIStyle("window");
-            gsTest.normal.textColor = WorldStorageWindow.arfColors[0];
+            //gsTest.normal.textColor = WorldStorageWindow.arfColors[0];
             gsTest.fontStyle = FontStyle.Bold;
+            gsTest.fontSize = 16;
 
             scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true));
             WorldStorageWindow.DrawCopyright();
@@ -137,7 +138,6 @@ namespace ETSI.ARF.WorldStorage.UI
             GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel);
             EditorGUILayout.Space();
 
-            //GUILayout.BeginHorizontal();
             customName = EditorGUILayout.TextField("Name of Trackable:", customName);
 #if isDEBUG
             GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly
@@ -145,48 +145,12 @@ namespace ETSI.ARF.WorldStorage.UI
 #endif
             EditorGUILayout.Space();
 
-            //GUI.backgroundColor = WorldStorageWindow.arfColors[1];
-            //if (GUILayout.Button("Read Parameters"))
-            //{
-            //    UUID = WorldStorageWindow.GetUUIDFromString(customName);
-            //    if (UUID == null) UUID = customName; // try this
-            //    GetTrackableParams();
-            //}
-            //GUI.backgroundColor = ori;
-
-            type = (Trackable.TrackableTypeEnum)EditorGUILayout.EnumPopup("Trackable Type:", type);
-            unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit);
-
-            EditorGUILayout.Space(10);
-            trackableSize = EditorGUILayout.Vector3Field("Trackable Size:", trackableSize);
-
-            EditorGUILayout.Space(10);
-            GUILayout.Label("Local CRS:");
-            localCRS_pos = EditorGUILayout.Vector3Field("   Position:", localCRS_pos);
-            localCRS_rot = EditorGUILayout.Vector3Field("   Rotation:", localCRS_rot);
-
-            EditorGUILayout.Space();
-            if (GUILayout.Button("Generate Dummy Payload"))
-            {
-                // dummy
-                trackablePayload = new byte[100];
-                for (int i = 0; i < trackablePayload.Length; i++)
-                {
-                    trackablePayload[i] = (byte)i;
-                }
-            }
-
-            EditorGUILayout.Space();
-            groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled);
-            key1 = EditorGUILayout.TextField("Key 1", key1);
-            value1 = EditorGUILayout.TextField("Value 1", value1);
-            EditorGUILayout.EndToggleGroup();
-            //
-            GUILayout.EndVertical();
-
-            // ###########################################################
-            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
-            if (GUILayout.Button("Create New Trackable"))
+            // ---------------------
+            // Toolbar
+            // ---------------------
+            EditorGUILayout.BeginHorizontal();
+            GUI.backgroundColor = WorldStorageWindow.arfColors[2];
+            if (GUILayout.Button("Create"))
             {
                 Debug.Log("POST Trackable");
 
@@ -199,8 +163,8 @@ namespace ETSI.ARF.WorldStorage.UI
                 WorldStorageWindow.WorldStorageWindowSingleton.Repaint();
             }
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[2];
-            if (GUILayout.Button("Modify Trackable"))
+            GUI.backgroundColor = WorldStorageWindow.arfColors[0];
+            if (GUILayout.Button("Update"))
             {
                 Debug.Log("PUT Trackable");
 
@@ -214,9 +178,8 @@ namespace ETSI.ARF.WorldStorage.UI
                 WorldStorageWindow.WorldStorageWindowSingleton.Repaint();
             }
 
-            // ###########################################################
             GUI.backgroundColor = WorldStorageWindow.arfColors[3];
-            if (GUILayout.Button("Delete Trackable"))
+            if (GUILayout.Button("Delete"))
             {
                 Debug.Log("Delete Trackable");
                 TrackableRequest.DeleteTrackable(worldStorageServer, UUID);
@@ -229,13 +192,47 @@ namespace ETSI.ARF.WorldStorage.UI
             }
             GUI.backgroundColor = ori;
 
-            // ###########################################################
             GUI.backgroundColor = WorldStorageWindow.arfColors[5];
-            if (GUILayout.Button("Generate/Update GameObject Visual"))
+            if (GUILayout.Button("Generate GameObject"))
             {
                 GenerateAndUpdateVisual(UUID, customName, localCRS_pos, localCRS_rot);
             }
             GUI.backgroundColor = ori;
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.Space();
+
+            // ---------------------
+            // Params
+            // ---------------------
+            type = (Trackable.TrackableTypeEnum)EditorGUILayout.EnumPopup("Trackable Type:", type);
+            unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit);
+
+            EditorGUILayout.Space();
+            trackableSize = EditorGUILayout.Vector3Field("Trackable Size:", trackableSize);
+
+            EditorGUILayout.Space();
+            GUILayout.Label("Local CRS:");
+            localCRS_pos = EditorGUILayout.Vector3Field("   Position:", localCRS_pos);
+            localCRS_rot = EditorGUILayout.Vector3Field("   Rotation:", localCRS_rot);
+
+            EditorGUILayout.Space();
+            if (GUILayout.Button("Generate Dummy Payload"))
+            {
+                // dummy
+                trackablePayload = new byte[100];
+                for (int i = 0; i < trackablePayload.Length; i++)
+                {
+                    trackablePayload[i] = (byte)i;
+                }
+            }
+
+            EditorGUILayout.Space();
+            groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled);
+            key1 = EditorGUILayout.TextField("Key 1", key1);
+            value1 = EditorGUILayout.TextField("Value 1", value1);
+            EditorGUILayout.EndToggleGroup();
+            //
+            GUILayout.EndVertical();
         }
 
         private void GetTrackableParams()
diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs
index 0166ffa..23337f1 100644
--- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs	
+++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldAnchorWindow.cs	
@@ -110,8 +110,9 @@ namespace ETSI.ARF.WorldStorage.UI
             ori = GUI.backgroundColor; // remember ori color
 
             gsTest = new GUIStyle("window");
-            gsTest.normal.textColor = WorldStorageWindow.arfColors[0];
+            //gsTest.normal.textColor = WorldStorageWindow.arfColors[0];
             gsTest.fontStyle = FontStyle.Bold;
+            gsTest.fontSize = 16;
 
             scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true));
             WorldStorageWindow.DrawCopyright();
@@ -134,7 +135,6 @@ namespace ETSI.ARF.WorldStorage.UI
             GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel);
             EditorGUILayout.Space();
 
-            //GUILayout.BeginHorizontal();
             customName = EditorGUILayout.TextField("Name of Anchor:", customName);
 #if isDEBUG
             GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly
@@ -142,36 +142,12 @@ namespace ETSI.ARF.WorldStorage.UI
 #endif
             EditorGUILayout.Space();
 
-            //GUI.backgroundColor = WorldStorageWindow.arfColors[1];
-            //if (GUILayout.Button("Read Parameters"))
-            //{
-            //    UUID = WorldStorageWindow.GetUUIDFromString(customName);
-            //    if (UUID == null) UUID = customName; // try this
-            //    GetWorldAnchorParams();
-            //}
-            //GUI.backgroundColor = ori;
-
-            unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit);
-
-            EditorGUILayout.Space(10);
-            worldAnchorSize = EditorGUILayout.Vector3Field("Trackable Size:", worldAnchorSize);
-
-            EditorGUILayout.Space(10);
-            GUILayout.Label("Local CRS:");
-            localCRS_pos = EditorGUILayout.Vector3Field("   Position:", localCRS_pos);
-            localCRS_rot = EditorGUILayout.Vector3Field("   Rotation:", localCRS_rot);
-
-            EditorGUILayout.Space();
-            groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled);
-            key1 = EditorGUILayout.TextField("Key 1", key1);
-            value1 = EditorGUILayout.TextField("Value 1", value1);
-            EditorGUILayout.EndToggleGroup();
-            //
-            GUILayout.EndVertical();
-
-            // ###########################################################
-            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
-            if (GUILayout.Button("Create New World Anchor"))
+            // ---------------------
+            // Toolbar
+            // ---------------------
+            EditorGUILayout.BeginHorizontal();
+            GUI.backgroundColor = WorldStorageWindow.arfColors[2];
+            if (GUILayout.Button("Create"))
             {
                 Debug.Log("POST World Anchor");
 
@@ -184,8 +160,8 @@ namespace ETSI.ARF.WorldStorage.UI
                 WorldStorageWindow.WorldStorageWindowSingleton.Repaint();
             }
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[2];
-            if (GUILayout.Button("Modify World Anchor"))
+            GUI.backgroundColor = WorldStorageWindow.arfColors[0];
+            if (GUILayout.Button("Update"))
             {
                 Debug.Log("PUT World Anchor");
 
@@ -199,9 +175,8 @@ namespace ETSI.ARF.WorldStorage.UI
                 }
             }
 
-            // ###########################################################
             GUI.backgroundColor = WorldStorageWindow.arfColors[3];
-            if (GUILayout.Button("Delete World Anchor"))
+            if (GUILayout.Button("Delete"))
             {
                 Debug.Log("Delete World Anchor");
                 WorldAnchorRequest.DeleteWorldAnchor(worldStorageServer, UUID);
@@ -213,13 +188,35 @@ namespace ETSI.ARF.WorldStorage.UI
             }
             GUI.backgroundColor = ori;
 
-            // ###########################################################
             GUI.backgroundColor = WorldStorageWindow.arfColors[5];
-            if (GUILayout.Button("Generate/Update GameObject Visual"))
+            if (GUILayout.Button("Generate GameObject"))
             {
                 GenerateAndUpdateVisual(UUID, customName, localCRS_pos, localCRS_rot);
             }
             GUI.backgroundColor = ori;
+            EditorGUILayout.EndHorizontal();
+            EditorGUILayout.Space();
+
+            // ---------------------
+            // Params
+            // ---------------------
+            unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit);
+
+            EditorGUILayout.Space();
+            worldAnchorSize = EditorGUILayout.Vector3Field("Trackable Size:", worldAnchorSize);
+
+            EditorGUILayout.Space();
+            GUILayout.Label("Local CRS:");
+            localCRS_pos = EditorGUILayout.Vector3Field("   Position:", localCRS_pos);
+            localCRS_rot = EditorGUILayout.Vector3Field("   Rotation:", localCRS_rot);
+
+            EditorGUILayout.Space();
+            groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Parameters:", groupEnabled);
+            key1 = EditorGUILayout.TextField("Key 1", key1);
+            value1 = EditorGUILayout.TextField("Value 1", value1);
+            EditorGUILayout.EndToggleGroup();
+            //
+            GUILayout.EndVertical();
         }
 
         private void GetWorldAnchorParams()
diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs
index b135cc7..f5c9018 100644
--- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs	
+++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldLinkWindow.cs	
@@ -125,8 +125,9 @@ namespace ETSI.ARF.WorldStorage.UI
             ori = GUI.backgroundColor; // remember ori color
 
             gsTest = new GUIStyle("window");
-            gsTest.normal.textColor = WorldStorageWindow.arfColors[0];
+            //gsTest.normal.textColor = WorldStorageWindow.arfColors[0];
             gsTest.fontStyle = FontStyle.Bold;
+            gsTest.fontSize = 16;
 
             scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true));
             WorldStorageWindow.DrawCopyright();
@@ -216,16 +217,73 @@ namespace ETSI.ARF.WorldStorage.UI
             GUILayout.Label("User: " + worldStorageUser.userName, EditorStyles.whiteLargeLabel);
             EditorGUILayout.Space();
 
-            //GUILayout.BeginHorizontal();
-            //customName = EditorGUILayout.TextField("Name of Link", customName);
 #if isDEBUG
             GUILayout.Label("UUID: " + UUID, EditorStyles.miniLabel); // readonly
             GUILayout.Label("Creator UID: " + creatorUUID, EditorStyles.miniLabel); // readonly
 #endif
             EditorGUILayout.Space();
 
+            // ---------------------
+            // Toolbar
+            // ---------------------
+            EditorGUILayout.BeginHorizontal();
+            GUI.backgroundColor = WorldStorageWindow.arfColors[2];
+            if (GUILayout.Button("Create"))
+            {
+                Debug.Log("POST World Link");
+
+                UUID = "0";
+                if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString();
+                WorldLink obj = GenerateWorldLink();
+                UUID = WorldLinkRequest.AddWorldLink(worldStorageServer, obj);
+                UUID = UUID.Trim('"'); //Bugfix: remove " from server return value
+                WorldStorageWindow.WorldStorageWindowSingleton.GetWorldLinks();
+                WorldStorageWindow.WorldStorageWindowSingleton.Repaint();
+            }
+
+            GUI.backgroundColor = WorldStorageWindow.arfColors[0];
+            if (GUILayout.Button("Update"))
+            {
+                Debug.Log("PUT World Link");
+
+                if (!string.IsNullOrEmpty(UUID) && UUID != "0")
+                {
+                    WorldLink obj = GenerateWorldLink();
+                    UUID = WorldLinkRequest.UpdateWorldLink(worldStorageServer, obj);
+                    UUID = UUID.Trim('"'); //Bugfix: remove " from server return value
+                    WorldStorageWindow.WorldStorageWindowSingleton.GetWorldLinks();
+                    WorldStorageWindow.WorldStorageWindowSingleton.Repaint();
+                }
+            }
+
+            GUI.backgroundColor = WorldStorageWindow.arfColors[3];
+            if (GUILayout.Button("Delete"))
+            {
+                Debug.Log("Delete World Link");
+                WorldLinkRequest.DeleteWorldLink(worldStorageServer, UUID);
+                UUID = System.Guid.Empty.ToString();
+                creatorUUID = System.Guid.Empty.ToString();
+                unit = UnitSystem.CM;
+                WorldStorageWindow.WorldStorageWindowSingleton.GetWorldLinks();
+                WorldStorageWindow.WorldStorageWindowSingleton.Repaint();
+            }
+            GUI.backgroundColor = ori;
 
+            GUI.backgroundColor = WorldStorageWindow.arfColors[5];
+            if (GUILayout.Button("Generate GameObject"))
+            {
+                //TODO: Value between from and to
+                Vector3 pos = (FROM.pos + TO.pos) * 0.5f;
+                Vector3 rot = Vector3.zero;  // Direction
+                GenerateAndUpdateVisual(UUID, FROM.name, TO.name, pos, rot);
+            }
+            GUI.backgroundColor = ori;
+            EditorGUILayout.EndHorizontal();
             EditorGUILayout.Space();
+
+            // ---------------------
+            // Params
+            // ---------------------
             showListFrom = EditorGUILayout.Foldout(showListFrom, "From (parent object)");
             if (showListFrom)
             {
@@ -261,10 +319,10 @@ namespace ETSI.ARF.WorldStorage.UI
                 TO.type = (ObjectType)EditorGUILayout.EnumPopup("Type:", TO.type);
             }
 
-            EditorGUILayout.Space(10);
+            EditorGUILayout.Space();
             unit = (UnitSystem)EditorGUILayout.EnumPopup("Unit System:", unit);
 
-            EditorGUILayout.Space(10);
+            EditorGUILayout.Space();
             //TODO Is this required???
             GUILayout.Label("Transform:");
             transf_pos = EditorGUILayout.Vector3Field("Position:", transf_pos);
@@ -277,61 +335,6 @@ namespace ETSI.ARF.WorldStorage.UI
             EditorGUILayout.EndToggleGroup();
             //
             GUILayout.EndVertical();
-
-            // ###########################################################
-            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
-            if (GUILayout.Button("Create New World Link"))
-            {
-                Debug.Log("POST World Link");
-
-                UUID = "0";
-                if (string.IsNullOrEmpty(UUID) || UUID == "0") UUID = System.Guid.Empty.ToString();
-                WorldLink obj = GenerateWorldLink();
-                UUID = WorldLinkRequest.AddWorldLink(worldStorageServer, obj);
-                UUID = UUID.Trim('"'); //Bugfix: remove " from server return value
-                WorldStorageWindow.WorldStorageWindowSingleton.GetWorldLinks();
-                WorldStorageWindow.WorldStorageWindowSingleton.Repaint();
-            }
-
-            GUI.backgroundColor = WorldStorageWindow.arfColors[2];
-            if (GUILayout.Button("Modify World Link"))
-            {
-                Debug.Log("PUT World Link");
-
-                if (!string.IsNullOrEmpty(UUID) && UUID != "0")
-                {
-                    WorldLink obj = GenerateWorldLink();
-                    UUID = WorldLinkRequest.UpdateWorldLink(worldStorageServer, obj);
-                    UUID = UUID.Trim('"'); //Bugfix: remove " from server return value
-                    WorldStorageWindow.WorldStorageWindowSingleton.GetWorldLinks();
-                    WorldStorageWindow.WorldStorageWindowSingleton.Repaint();
-                }
-            }
-
-            // ###########################################################
-            GUI.backgroundColor = WorldStorageWindow.arfColors[3];
-            if (GUILayout.Button("Delete World Link"))
-            {
-                Debug.Log("Delete World Link");
-                WorldLinkRequest.DeleteWorldLink(worldStorageServer, UUID);
-                UUID = System.Guid.Empty.ToString();
-                creatorUUID = System.Guid.Empty.ToString();
-                unit = UnitSystem.CM;
-                WorldStorageWindow.WorldStorageWindowSingleton.GetWorldLinks();
-                WorldStorageWindow.WorldStorageWindowSingleton.Repaint();
-            }
-            GUI.backgroundColor = ori;
-
-            // ###########################################################
-            GUI.backgroundColor = WorldStorageWindow.arfColors[5];
-            if (GUILayout.Button("Generate/Update GameObject Visual"))
-            {
-                //TODO: Value between from and to
-                Vector3 pos = (FROM.pos + TO.pos) * 0.5f;
-                Vector3 rot = Vector3.zero;  // Direction
-                GenerateAndUpdateVisual(UUID, FROM.name, TO.name, pos, rot);
-            }
-            GUI.backgroundColor = ori;
         }
 
         private void GetWorldLinkParams()
diff --git a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs
index 90d5909..46d364f 100644
--- a/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs	
+++ b/Assets/ETSI.ARF/ARF World Storage API/Editor/Windows/WorldStorageWindow.cs	
@@ -72,10 +72,11 @@ namespace ETSI.ARF.WorldStorage.UI
         {
             Color.yellow,                   // paneltext
             new Color(0.3f, 1f, 1f),        // button REST
-            new Color(1f, 1f, 0.3f),        // button create + window
+            new Color(0.3f, 1f, 0.3f),        // button create
             new Color(1f, 0f, 0f),          // button delete (red)
             new Color(1f, 0f, 1f),           // button graph
-            new Color(.7f, .5f, 1f)           // button prefab
+            new Color(.7f, .5f, 1f),           // button prefab
+            new Color(1f, 1f, 0.3f)        // button request
         };
 
 
@@ -101,8 +102,9 @@ namespace ETSI.ARF.WorldStorage.UI
         {
             ori = GUI.backgroundColor;
             gsTest = new GUIStyle("window");
+            //gsTest.normal.textColor = WorldStorageWindow.arfColors[0];
             gsTest.fontStyle = FontStyle.Bold;
-            gsTest.normal.textColor = WorldStorageWindow.arfColors[0];
+            gsTest.fontSize = 16;
 
             scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.ExpandWidth(true));
             WorldStorageWindow.DrawCopyright();
@@ -120,13 +122,6 @@ namespace ETSI.ARF.WorldStorage.UI
             GUILayout.Label("Port: " + worldStorageServer.port);
 #endif
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[4];
-            if (GUILayout.Button("Open World Graph Window..."))
-            {
-                GraphWindow.ShowWindow();
-            }
-            GUI.backgroundColor = ori;
-
             DrawElementStuffs();
 
             EditorGUILayout.EndScrollView();
@@ -180,14 +175,23 @@ namespace ETSI.ARF.WorldStorage.UI
             GUILayout.EndHorizontal();
             #endregion
 
+            EditorGUILayout.Space();
+
             ScriptableObject target = this;
             SerializedObject so = new SerializedObject(target);
 
+            GUI.backgroundColor = WorldStorageWindow.arfColors[4];
+            if (GUILayout.Button("Open World Graph Window..."))
+            {
+                GraphWindow.ShowWindow();
+            }
+            GUI.backgroundColor = ori;
+
             // ###########################################################
             // Get creators
             // ###########################################################
             #region Get all creator UUID
-            EditorGUILayout.Space(10);
+            EditorGUILayout.Space();
             GUI.backgroundColor = WorldStorageWindow.arfColors[1];
             if (GUILayout.Button("Request all Creator ID")) GetCreators();
             GUI.backgroundColor = ori;
@@ -197,14 +201,15 @@ namespace ETSI.ARF.WorldStorage.UI
             so.ApplyModifiedProperties(); // Remember to apply modified properties
             #endregion
 
-            EditorGUILayout.Space(10);
-            GUILayout.Label("World Storage Elements", EditorStyles.whiteLargeLabel);
+            //EditorGUILayout.Space();
+            //GUILayout.Label("World Storage Elements:", EditorStyles.whiteLargeLabel);
+
 
             // ###########################################################
-            // Handle Key Values
+            // Filter (Key = Group)
             // ###########################################################
             #region Filter
-            EditorGUILayout.Space(10);
+            EditorGUILayout.Space();
             filterByKeyValueTag = EditorGUILayout.TextField("Filter for KeyValue Group:", filterByKeyValueTag);
             #endregion
 
@@ -212,22 +217,25 @@ namespace ETSI.ARF.WorldStorage.UI
             // Handle trackables
             // ###########################################################
             #region Get all trackable objects
-            EditorGUILayout.Space(10);
+            EditorGUILayout.Space();
+            GUILayout.Label("Trackables:", EditorStyles.whiteLargeLabel);
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
+            EditorGUILayout.BeginHorizontal();
+            GUI.backgroundColor = WorldStorageWindow.arfColors[0];
             if (GUILayout.Button("Request Trackables"))
             {
                 GetTrackables();
             }
+            GUI.backgroundColor = ori;
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[2];
-            if (GUILayout.Button("Create/Edit Trackable..."))
+            //GUI.backgroundColor = WorldStorageWindow.arfColors[2];
+            if (GUILayout.Button("Open Editor..."))
             {
                 Debug.Log("Open Trackable Window");
                 TrackableWindow.ShowWindow(worldStorageServer, worldStorageUser);
             }
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[3];
+            //GUI.backgroundColor = WorldStorageWindow.arfColors[3];
             if (GUILayout.Button("Delete all Trackables (3 stay in!!!)"))
             {
                 if (EditorUtility.DisplayDialog("Deleting elements", "Do you really want to delete all trackables?", "Yes", "No"))
@@ -251,7 +259,8 @@ namespace ETSI.ARF.WorldStorage.UI
                 }
             }
             GUI.backgroundColor = ori;
-           
+            EditorGUILayout.EndHorizontal();
+
             // Show list
             stringsProperty = so.FindProperty("trackables");
             //EditorGUILayout.PropertyField(stringsProperty, /*new GUIContent("Trackbales"),*/ true); // True means show children
@@ -290,23 +299,26 @@ namespace ETSI.ARF.WorldStorage.UI
             // Handle anchors
             // ###########################################################
             #region Get all anchor objects
-            EditorGUILayout.Space(10);
+            EditorGUILayout.Space();
+            GUILayout.Label("World Anchors:", EditorStyles.whiteLargeLabel);
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
-            if (GUILayout.Button("Request World Anchors"))
+            EditorGUILayout.BeginHorizontal();
+            GUI.backgroundColor = WorldStorageWindow.arfColors[0];
+            if (GUILayout.Button("Request Anchors"))
             {
                 GetWorldAnchors();
             }
+            GUI.backgroundColor = ori;
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[2];
-            if (GUILayout.Button("Create/Edit World Anchor..."))
+            //GUI.backgroundColor = WorldStorageWindow.arfColors[2];
+            if (GUILayout.Button("Open Editor..."))
             {
                 Debug.Log("Open World Anchor Window");
                 WorldAnchorWindow.ShowWindow(worldStorageServer, worldStorageUser);
             }
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[3];
-            if (GUILayout.Button("Delete all World Anchors (3 stay in!!!)"))
+            //GUI.backgroundColor = WorldStorageWindow.arfColors[3];
+            if (GUILayout.Button("Delete all Anchors (3 stay in!!!)"))
             {
                 if (EditorUtility.DisplayDialog("Deleting elements", "Do you really want to delete all anchors?", "Yes", "No"))
                 {
@@ -329,6 +341,7 @@ namespace ETSI.ARF.WorldStorage.UI
                 }
             }
             GUI.backgroundColor = ori;
+            EditorGUILayout.EndHorizontal();
 
             // Show list
             stringsProperty = so.FindProperty("anchors");
@@ -368,23 +381,26 @@ namespace ETSI.ARF.WorldStorage.UI
             // Handle Links
             // ###########################################################
             #region Get all link objects
-            EditorGUILayout.Space(10);
+            EditorGUILayout.Space();
+            GUILayout.Label("World Links:", EditorStyles.whiteLargeLabel);
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[1];
-            if (GUILayout.Button("Request World Links"))
+            EditorGUILayout.BeginHorizontal();
+            GUI.backgroundColor = WorldStorageWindow.arfColors[0];
+            if (GUILayout.Button("Request Links"))
             {
                 GetWorldLinks();
             }
+            GUI.backgroundColor = ori;
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[2];
-            if (GUILayout.Button("Create/Edit World Link..."))
+            //GUI.backgroundColor = WorldStorageWindow.arfColors[2];
+            if (GUILayout.Button("Open Editor..."))
             {
                 Debug.Log("Open World Link Window");
                 WorldLinkWindow.ShowWindow(worldStorageServer, worldStorageUser);
             }
 
-            GUI.backgroundColor = WorldStorageWindow.arfColors[3];
-            if (GUILayout.Button("Delete all World Links (3 stay in!!!)"))
+            //GUI.backgroundColor = WorldStorageWindow.arfColors[3];
+            if (GUILayout.Button("Delete all Links (3 stay in!!!)"))
             {
                 if (EditorUtility.DisplayDialog("Deleting elements", "Do you really want to delete all links?", "Yes", "No"))
                 {
@@ -407,6 +423,7 @@ namespace ETSI.ARF.WorldStorage.UI
                 }
             }
             GUI.backgroundColor = ori;
+            EditorGUILayout.EndHorizontal();
 
             // Show list
             stringsProperty = so.FindProperty("links");
diff --git a/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - detlef.asset
similarity index 94%
rename from Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset
rename to Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - detlef.asset
index 7706327..0cbcde4 100644
--- a/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset	
+++ b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - detlef.asset	
@@ -10,7 +10,7 @@ MonoBehaviour:
   m_Enabled: 1
   m_EditorHideFlags: 0
   m_Script: {fileID: 11500000, guid: e4b7be4c33f68d0418c3b4e1a7053d91, type: 3}
-  m_Name: HHI Server - local
+  m_Name: HHI Server - detlef
   m_EditorClassIdentifier: 
   serverName: HHI Server (Detlef)
   company: Fraunhofer HHI
diff --git a/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset.meta b/Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - detlef.asset.meta
similarity index 100%
rename from Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - local.asset.meta
rename to Assets/ETSI.ARF/ARF World Storage API/World Storage/HHI Server - detlef.asset.meta
diff --git a/UserSettings/Layouts/default-2021.dwlt b/UserSettings/Layouts/default-2021.dwlt
index d86f07c..253fd4d 100644
--- a/UserSettings/Layouts/default-2021.dwlt
+++ b/UserSettings/Layouts/default-2021.dwlt
@@ -1,6 +1,102 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
 --- !u!114 &1
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_PixelRect:
+    serializedVersion: 2
+    x: 961.3333
+    y: 82.666664
+    width: 592.8889
+    height: 679.55554
+  m_ShowMode: 0
+  m_Title: ETSI ARF - World Link
+  m_RootView: {fileID: 7}
+  m_MinSize: {x: 100, y: 121}
+  m_MaxSize: {x: 4000, y: 4021}
+  m_Maximized: 0
+--- !u!114 &2
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_PixelRect:
+    serializedVersion: 2
+    x: 848.8889
+    y: 478.22223
+    width: 624.44446
+    height: 521.3333
+  m_ShowMode: 0
+  m_Title: ETSI ARF - World Anchor
+  m_RootView: {fileID: 9}
+  m_MinSize: {x: 101, y: 123}
+  m_MaxSize: {x: 4001, y: 4023}
+  m_Maximized: 0
+--- !u!114 &3
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_PixelRect:
+    serializedVersion: 2
+    x: 920
+    y: 210.66667
+    width: 504.44446
+    height: 625.3333
+  m_ShowMode: 0
+  m_Title: ETSI ARF - Trackable
+  m_RootView: {fileID: 11}
+  m_MinSize: {x: 101, y: 123}
+  m_MaxSize: {x: 4001, y: 4023}
+  m_Maximized: 0
+--- !u!114 &4
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_PixelRect:
+    serializedVersion: 2
+    x: 212.88889
+    y: 13.777778
+    width: 600
+    height: 810.6667
+  m_ShowMode: 0
+  m_Title: ETSI ARF - Authoring Editor
+  m_RootView: {fileID: 13}
+  m_MinSize: {x: 100, y: 121}
+  m_MaxSize: {x: 4000, y: 4021}
+  m_Maximized: 0
+--- !u!114 &5
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -19,12 +115,212 @@ MonoBehaviour:
     width: 1706.6666
     height: 984.44446
   m_ShowMode: 4
-  m_Title: Scene
-  m_RootView: {fileID: 8}
+  m_Title: Console
+  m_RootView: {fileID: 20}
   m_MinSize: {x: 875, y: 300}
   m_MaxSize: {x: 10000, y: 10000}
   m_Maximized: 1
---- !u!114 &2
+--- !u!114 &6
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: WorldLinkWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 592.8889
+    height: 679.55554
+  m_MinSize: {x: 100, y: 121}
+  m_MaxSize: {x: 4000, y: 4021}
+  m_ActualView: {fileID: 26}
+  m_Panes:
+  - {fileID: 26}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &7
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 6}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 592.8889
+    height: 679.55554
+  m_MinSize: {x: 100, y: 121}
+  m_MaxSize: {x: 4000, y: 4021}
+  vertical: 0
+  controlID: 2230
+--- !u!114 &8
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: WorldAnchorWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 624.44446
+    height: 521.3333
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 27}
+  m_Panes:
+  - {fileID: 27}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &9
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 8}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 624.44446
+    height: 521.3333
+  m_MinSize: {x: 101, y: 123}
+  m_MaxSize: {x: 4001, y: 4023}
+  vertical: 0
+  controlID: 1497
+--- !u!114 &10
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: TrackableWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 504.44446
+    height: 625.3333
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 28}
+  m_Panes:
+  - {fileID: 28}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &11
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 10}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 504.44446
+    height: 625.3333
+  m_MinSize: {x: 101, y: 123}
+  m_MaxSize: {x: 4001, y: 4023}
+  vertical: 0
+  controlID: 555
+--- !u!114 &12
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: WorldStorageWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 600
+    height: 810.6667
+  m_MinSize: {x: 100, y: 121}
+  m_MaxSize: {x: 4000, y: 4021}
+  m_ActualView: {fileID: 29}
+  m_Panes:
+  - {fileID: 29}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &13
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 12}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 600
+    height: 810.6667
+  m_MinSize: {x: 100, y: 121}
+  m_MaxSize: {x: 4000, y: 4021}
+  vertical: 0
+  controlID: 292
+--- !u!114 &14
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -45,12 +341,12 @@ MonoBehaviour:
     height: 369.55554
   m_MinSize: {x: 102, y: 121}
   m_MaxSize: {x: 4002, y: 4021}
-  m_ActualView: {fileID: 20}
+  m_ActualView: {fileID: 36}
   m_Panes:
-  - {fileID: 20}
+  - {fileID: 36}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &3
+--- !u!114 &15
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -63,8 +359,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 7}
-  - {fileID: 2}
+  - {fileID: 19}
+  - {fileID: 14}
   m_Position:
     serializedVersion: 2
     x: 0
@@ -74,8 +370,8 @@ MonoBehaviour:
   m_MinSize: {x: 200, y: 100}
   m_MaxSize: {x: 16192, y: 8096}
   vertical: 0
-  controlID: 91
---- !u!114 &4
+  controlID: 113
+--- !u!114 &16
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -88,8 +384,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 11}
-  - {fileID: 5}
+  - {fileID: 23}
+  - {fileID: 17}
   m_Position:
     serializedVersion: 2
     x: 0
@@ -99,8 +395,8 @@ MonoBehaviour:
   m_MinSize: {x: 300, y: 200}
   m_MaxSize: {x: 24288, y: 16192}
   vertical: 0
-  controlID: 68
---- !u!114 &5
+  controlID: 101
+--- !u!114 &17
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -121,12 +417,12 @@ MonoBehaviour:
     height: 934.44446
   m_MinSize: {x: 276, y: 71}
   m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 16}
+  m_ActualView: {fileID: 32}
   m_Panes:
-  - {fileID: 16}
+  - {fileID: 32}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &6
+--- !u!114 &18
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -145,14 +441,14 @@ MonoBehaviour:
     y: 0
     width: 335.55554
     height: 564.8889
-  m_MinSize: {x: 201, y: 221}
-  m_MaxSize: {x: 4001, y: 4021}
-  m_ActualView: {fileID: 17}
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_ActualView: {fileID: 33}
   m_Panes:
-  - {fileID: 17}
+  - {fileID: 33}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &7
+--- !u!114 &19
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -173,12 +469,12 @@ MonoBehaviour:
     height: 369.55554
   m_MinSize: {x: 231, y: 271}
   m_MaxSize: {x: 10001, y: 10021}
-  m_ActualView: {fileID: 15}
+  m_ActualView: {fileID: 31}
   m_Panes:
-  - {fileID: 15}
+  - {fileID: 31}
   m_Selected: 0
   m_LastSelected: 0
---- !u!114 &8
+--- !u!114 &20
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -191,9 +487,9 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 9}
-  - {fileID: 4}
-  - {fileID: 10}
+  - {fileID: 21}
+  - {fileID: 16}
+  - {fileID: 22}
   m_Position:
     serializedVersion: 2
     x: 0
@@ -206,7 +502,7 @@ MonoBehaviour:
   m_TopViewHeight: 30
   m_UseBottomView: 1
   m_BottomViewHeight: 20
---- !u!114 &9
+--- !u!114 &21
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -228,7 +524,7 @@ MonoBehaviour:
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
   m_LastLoadedLayoutName: 
---- !u!114 &10
+--- !u!114 &22
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -249,7 +545,7 @@ MonoBehaviour:
     height: 20
   m_MinSize: {x: 0, y: 0}
   m_MaxSize: {x: 0, y: 0}
---- !u!114 &11
+--- !u!114 &23
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -262,8 +558,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 12}
-  - {fileID: 3}
+  - {fileID: 24}
+  - {fileID: 15}
   m_Position:
     serializedVersion: 2
     x: 0
@@ -273,8 +569,8 @@ MonoBehaviour:
   m_MinSize: {x: 200, y: 200}
   m_MaxSize: {x: 16192, y: 16192}
   vertical: 1
-  controlID: 69
---- !u!114 &12
+  controlID: 112
+--- !u!114 &24
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -287,8 +583,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Children:
-  - {fileID: 6}
-  - {fileID: 13}
+  - {fileID: 18}
+  - {fileID: 25}
   m_Position:
     serializedVersion: 2
     x: 0
@@ -298,8 +594,8 @@ MonoBehaviour:
   m_MinSize: {x: 200, y: 100}
   m_MaxSize: {x: 16192, y: 8096}
   vertical: 0
-  controlID: 70
---- !u!114 &13
+  controlID: 92
+--- !u!114 &25
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -320,14 +616,147 @@ MonoBehaviour:
     height: 564.8889
   m_MinSize: {x: 202, y: 221}
   m_MaxSize: {x: 4002, y: 4021}
-  m_ActualView: {fileID: 18}
+  m_ActualView: {fileID: 34}
   m_Panes:
-  - {fileID: 18}
-  - {fileID: 19}
-  - {fileID: 14}
+  - {fileID: 34}
+  - {fileID: 35}
+  - {fileID: 30}
   m_Selected: 0
   m_LastSelected: 1
---- !u!114 &14
+--- !u!114 &26
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f66d40f8781c5784cbe1013328d78ae6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: ETSI ARF - World Link
+    m_Image: {fileID: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 961.3333
+    y: 82.666664
+    width: 592.8889
+    height: 658.55554
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+  worldStorageServer: {fileID: 11400000, guid: 4f997253243de534dad12937f1284975, type: 2}
+  worldStorageUser: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2}
+  anchors: []
+--- !u!114 &27
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a0f67f823dd6ff246be6c656b120756e, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: ETSI ARF - World Anchor
+    m_Image: {fileID: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 848.8889
+    y: 478.22223
+    width: 624.44446
+    height: 500.3333
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+  worldStorageServer: {fileID: 11400000, guid: 4f997253243de534dad12937f1284975, type: 2}
+  worldStorageUser: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2}
+  anchors: []
+--- !u!114 &28
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 229d5ea484d30f945b9318581fb4f2da, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: ETSI ARF - Trackable
+    m_Image: {fileID: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 920
+    y: 210.66667
+    width: 504.44446
+    height: 604.3333
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+  worldStorageServer: {fileID: 11400000, guid: 4f997253243de534dad12937f1284975, type: 2}
+  worldStorageUser: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2}
+  trackables: []
+--- !u!114 &29
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a1647df9b48bf4f49a664a929fff57ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: ETSI ARF - Authoring Editor
+    m_Image: {fileID: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 212.88889
+    y: 13.777778
+    width: 600
+    height: 789.6667
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+  worldStorageServer: {fileID: 11400000, guid: 4f997253243de534dad12937f1284975, type: 2}
+  worldStorageUser: {fileID: 11400000, guid: ce0f40be06008b14283766424922b729, type: 2}
+  creators: []
+  trackables:
+  - Sylvain [a71ecb62-701a-4a9b-a642-7bcb7d6a5241]
+  - Sylvain2 [a13f8da9-d7b0-4b26-9a72-b3381c04a538]
+  - Test [0b115d10-24d9-4a32-aafd-007f76e1ef25]
+  anchors:
+  - myAnchor_01 [b0eca848-4716-4662-8dcf-73a62af6905b]
+  links:
+  - 24d17ddf-c018-4ef8-bcfe-827880faf81f
+  - f1354663-1afa-484c-8c85-6d8df4537665
+--- !u!114 &30
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -355,7 +784,7 @@ MonoBehaviour:
   m_OverlayCanvas:
     m_LastAppliedPresetName: Default
     m_SaveData: []
---- !u!114 &15
+--- !u!114 &31
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -396,22 +825,22 @@ MonoBehaviour:
     m_SkipHidden: 0
     m_SearchArea: 1
     m_Folders:
-    - Assets/ETSI.ARF/ARF World Storage API/Resources
+    - Assets/ETSI.ARF/ARF World Storage API/Editor/Windows
     m_Globs: []
     m_OriginalText: 
   m_ViewMode: 1
   m_StartGridSize: 16
   m_LastFolders:
-  - Assets/ETSI.ARF/ARF World Storage API/Resources
+  - Assets/ETSI.ARF/ARF World Storage API/Editor/Windows
   m_LastFoldersGridSize: 16
   m_LastProjectPath: D:\Fraunhofer\Projects\ETSI\GitLab (STF)\unity-world-storage-editor
   m_LockTracker:
     m_IsLocked: 0
   m_FolderTreeState:
     scrollPos: {x: 0, y: 19.738289}
-    m_SelectedIDs: c64b0000
-    m_LastClickedID: 19398
-    m_ExpandedIDs: 00000000aa4b0000ac4b0000ae4b0000b04b0000b24b0000b44b0000b64b000000ca9a3bffffff7f
+    m_SelectedIDs: d04c0000
+    m_LastClickedID: 19664
+    m_ExpandedIDs: 00000000bc4c0000be4c0000c04c0000c24c0000c44c0000c64c0000c84c000000ca9a3bffffff7f
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -427,7 +856,7 @@ MonoBehaviour:
       m_IsRenaming: 0
       m_OriginalEventType: 11
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 7}
+      m_ClientGUIView: {fileID: 19}
     m_SearchString: 
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
@@ -439,7 +868,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 00000000aa4b0000ac4b0000ae4b0000b04b0000b24b0000b44b0000b64b0000
+    m_ExpandedIDs: 00000000bc4c0000be4c0000c04c0000c24c0000c44c0000c64c0000c84c0000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -470,20 +899,20 @@ MonoBehaviour:
     m_ExpandedInstanceIDs: c6230000de4b000000000000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
-      m_Name: ARFWorldLink
-      m_OriginalName: ARFWorldLink
+      m_Name: 
+      m_OriginalName: 
       m_EditFieldRect:
         serializedVersion: 2
         x: 0
         y: 0
         width: 0
         height: 0
-      m_UserData: 25968
+      m_UserData: 0
       m_IsWaitingForDelay: 0
       m_IsRenaming: 0
-      m_OriginalEventType: 0
+      m_OriginalEventType: 11
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 7}
+      m_ClientGUIView: {fileID: 19}
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
       m_InstanceID: 0
@@ -495,7 +924,7 @@ MonoBehaviour:
     m_GridSize: 16
   m_SkipHiddenPackages: 0
   m_DirectoriesAreaWidth: 248.11111
---- !u!114 &16
+--- !u!114 &32
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -536,7 +965,7 @@ MonoBehaviour:
   m_LockTracker:
     m_IsLocked: 0
   m_PreviewWindow: {fileID: 0}
---- !u!114 &17
+--- !u!114 &33
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -567,9 +996,9 @@ MonoBehaviour:
   m_SceneHierarchy:
     m_TreeViewState:
       scrollPos: {x: 0, y: 0}
-      m_SelectedIDs: 
+      m_SelectedIDs: d20a0000
       m_LastClickedID: 0
-      m_ExpandedIDs: e4a3ffff28ceffff90e0ffffc0e0ffffc4e0ffff30fbffff4a4b0000524b0000
+      m_ExpandedIDs: 34fbffff
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -585,7 +1014,7 @@ MonoBehaviour:
         m_IsRenaming: 0
         m_OriginalEventType: 11
         m_IsRenamingFilename: 0
-        m_ClientGUIView: {fileID: 6}
+        m_ClientGUIView: {fileID: 18}
       m_SearchString: 
     m_ExpandedScenes: []
     m_CurrenRootInstanceID: 0
@@ -593,7 +1022,7 @@ MonoBehaviour:
       m_IsLocked: 0
     m_CurrentSortingName: TransformSorting
   m_WindowGUID: 26d3cc4a749ad3148bdaac8cbfc0727d
---- !u!114 &18
+--- !u!114 &34
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -626,8 +1055,8 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 1
-      snapOffset: {x: -98.22223, y: -25.777771}
-      snapOffsetDelta: {x: 0, y: 0}
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: -98.22223, y: -25.777771}
       snapCorner: 3
       id: Tool Settings
       index: 0
@@ -648,7 +1077,7 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 1
-      snapOffset: {x: 0, y: 24.88889}
+      snapOffset: {x: 0, y: 0}
       snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 0
       id: unity-scene-view-toolbar
@@ -670,7 +1099,7 @@ MonoBehaviour:
       floating: 0
       collapsed: 0
       displayed: 1
-      snapOffset: {x: 0, y: 24.88889}
+      snapOffset: {x: 0, y: 0}
       snapOffsetDelta: {x: 0, y: 0}
       snapCorner: 0
       id: unity-transform-toolbar
@@ -818,9 +1247,9 @@ MonoBehaviour:
   m_PlayAudio: 0
   m_AudioPlay: 0
   m_Position:
-    m_Target: {x: 0.6952747, y: 0.09908793, z: 0.32593107}
+    m_Target: {x: 0.8445351, y: 0.0692503, z: 0.34490502}
     speed: 2
-    m_Value: {x: 0.6952747, y: 0.09908793, z: 0.32593107}
+    m_Value: {x: 0.8445351, y: 0.0692503, z: 0.34490502}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -867,13 +1296,13 @@ MonoBehaviour:
     m_GridAxis: 1
     m_gridOpacity: 0.5
   m_Rotation:
-    m_Target: {x: 0.11777675, y: -0.08628242, z: 0.010270022, w: 0.9892369}
+    m_Target: {x: 0.04790392, y: 0.056902982, z: -0.002736162, w: 0.997232}
     speed: 2
-    m_Value: {x: 0.11480789, y: -0.08631236, z: 0.010011068, w: 0.98958033}
+    m_Value: {x: 0.047903635, y: 0.056902643, z: -0.0027361456, w: 0.99722606}
   m_Size:
-    m_Target: 0.99389
+    m_Target: 0.68764657
     speed: 2
-    m_Value: 0.99389
+    m_Value: 0.68764657
   m_Ortho:
     m_Target: 0
     speed: 2
@@ -898,7 +1327,7 @@ MonoBehaviour:
   m_SceneVisActive: 1
   m_LastLockedObject: {fileID: 0}
   m_ViewIsLockedToObject: 0
---- !u!114 &19
+--- !u!114 &35
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
@@ -990,7 +1419,7 @@ MonoBehaviour:
   m_LowResolutionForAspectRatios: 00000000000000000000
   m_XRRenderMode: 0
   m_RenderTexture: {fileID: 0}
---- !u!114 &20
+--- !u!114 &36
 MonoBehaviour:
   m_ObjectHideFlags: 52
   m_CorrespondingSourceObject: {fileID: 0}
-- 
GitLab