From 2c8e164d1b532fbacacf493858ce354759f33b15 Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Tue, 19 Feb 2019 14:51:30 +0100
Subject: [PATCH] =?UTF-8?q?Erste=20version=20f=C3=BCr=20Treetable=20in=20O?=
 =?UTF-8?q?bjectrelations?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../ObjectRelation_entity.aod                 |  3 +++
 .../anytargetrowid/displayValueProcess.js     |  9 +++++++++
 .../anytargettype/displayValueProcess.js      |  8 ++++++++
 .../anytargettype/valueProcess.js             |  3 +++
 .../AnyObjectRelationTree_view0.aod           | 19 ++++++++++++++++++
 .../ObjectRelationFilter_view.aod             | 20 +++++++++++++++++--
 6 files changed, 60 insertions(+), 2 deletions(-)
 create mode 100644 entity/ObjectRelation_entity/entityfields/anytargetrowid/displayValueProcess.js
 create mode 100644 entity/ObjectRelation_entity/entityfields/anytargettype/displayValueProcess.js
 create mode 100644 neonView/AnyObjectRelationTree_view0/AnyObjectRelationTree_view0.aod

diff --git a/entity/ObjectRelation_entity/ObjectRelation_entity.aod b/entity/ObjectRelation_entity/ObjectRelation_entity.aod
index 0415c0ddb3..a871a2e086 100644
--- a/entity/ObjectRelation_entity/ObjectRelation_entity.aod
+++ b/entity/ObjectRelation_entity/ObjectRelation_entity.aod
@@ -313,10 +313,13 @@
     <entityField>
       <name>AnyTargetRowid</name>
       <valueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/anytargetrowid/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/anytargetrowid/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>AnyTargetType</name>
+      <groupable v="true" />
       <valueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/anytargettype/valueProcess.js</valueProcess>
+      <displayValueProcess>%aditoprj%/entity/ObjectRelation_entity/entityfields/anytargettype/displayValueProcess.js</displayValueProcess>
     </entityField>
   </entityFields>
   <recordContainers>
diff --git a/entity/ObjectRelation_entity/entityfields/anytargetrowid/displayValueProcess.js b/entity/ObjectRelation_entity/entityfields/anytargetrowid/displayValueProcess.js
new file mode 100644
index 0000000000..a99df2a0b5
--- /dev/null
+++ b/entity/ObjectRelation_entity/entityfields/anytargetrowid/displayValueProcess.js
@@ -0,0 +1,9 @@
+import("system.db");
+import("system.result");
+import("system.vars");
+import("Context_lib");
+
+if (vars.exists("$field.AnyTargetType") && vars.get("$field.AnyTargetType") && vars.exists("$field.AnyTargetRowid") && vars.get("$field.AnyTargetRowid"))
+{
+    result.string(db.cell(ContextUtils.getNameSql(vars.get("$field.AnyTargetType"), vars.get("$field.AnyTargetRowid"))));
+}
diff --git a/entity/ObjectRelation_entity/entityfields/anytargettype/displayValueProcess.js b/entity/ObjectRelation_entity/entityfields/anytargettype/displayValueProcess.js
new file mode 100644
index 0000000000..f1a57bdf9e
--- /dev/null
+++ b/entity/ObjectRelation_entity/entityfields/anytargettype/displayValueProcess.js
@@ -0,0 +1,8 @@
+import("system.project");
+import("system.result");
+import("system.vars");
+
+if (vars.exists("$field.AnyTargetType") && vars.get("$field.AnyTargetType"))
+{
+    result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.AnyTargetType"))[1]);
+}
\ No newline at end of file
diff --git a/entity/ObjectRelation_entity/entityfields/anytargettype/valueProcess.js b/entity/ObjectRelation_entity/entityfields/anytargettype/valueProcess.js
index c8dd2fb8c6..8635bcb684 100644
--- a/entity/ObjectRelation_entity/entityfields/anytargettype/valueProcess.js
+++ b/entity/ObjectRelation_entity/entityfields/anytargettype/valueProcess.js
@@ -1,3 +1,4 @@
+import("system.logging");
 import("system.result");
 import("system.vars");
 
@@ -14,11 +15,13 @@ if (vars.exists("$param.AnyObjectType_param") && vars.get("$param.AnyObjectType_
         // anyObject and object 1 == opened object --> target is object2
         if (vars.get("$field.OBJECT1_ROWID") == openedRowid && vars.get("$field.OBJECT1_TYPE") == openedType)
         {
+                        logging.log(vars.get("$field.OBJECT2_TYPE"))
             result.string(vars.get("$field.OBJECT2_TYPE"));
         }
         // anyObject and object 2 == opened object --> target is object1
         else if (vars.get("$field.OBJECT2_ROWID") == openedRowid && vars.get("$field.OBJECT2_TYPE") == openedType)
         {
+            logging.log(vars.get("$field.OBJECT1_TYPE"))
             result.string(vars.get("$field.OBJECT1_TYPE"));
         }
     }
diff --git a/neonView/AnyObjectRelationTree_view0/AnyObjectRelationTree_view0.aod b/neonView/AnyObjectRelationTree_view0/AnyObjectRelationTree_view0.aod
new file mode 100644
index 0000000000..dfe764020a
--- /dev/null
+++ b/neonView/AnyObjectRelationTree_view0/AnyObjectRelationTree_view0.aod
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>AnyObjectRelationTree_view0</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <treetableViewTemplate>
+      <name>AnyObjectRelations</name>
+      <parentField>AnyTargetType</parentField>
+      <titleField>AnyTargetRowid</titleField>
+      <entityField>#ENTITY</entityField>
+      <title></title>
+    </treetableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/ObjectRelationFilter_view/ObjectRelationFilter_view.aod b/neonView/ObjectRelationFilter_view/ObjectRelationFilter_view.aod
index 167f255e11..03a8e62f1c 100644
--- a/neonView/ObjectRelationFilter_view/ObjectRelationFilter_view.aod
+++ b/neonView/ObjectRelationFilter_view/ObjectRelationFilter_view.aod
@@ -2,10 +2,11 @@
 <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
   <name>ObjectRelationFilter_view</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <filterable v="true" />
   <layout>
-    <boxLayout>
+    <groupLayout>
       <name>layout</name>
-    </boxLayout>
+    </groupLayout>
   </layout>
   <children>
     <tableViewTemplate>
@@ -34,7 +35,22 @@
           <width v="75" />
           <expandRatio v="100" />
         </neonTableColumn>
+        <neonTableColumn>
+          <name>005ef2d6-114c-47e8-8db5-bb6f43a1f90a</name>
+          <entityField>AnyTargetType</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>384871e1-206e-4f48-b907-60bdda93957a</name>
+          <entityField>AnyTargetRowid</entityField>
+        </neonTableColumn>
       </columns>
     </tableViewTemplate>
+    <treetableViewTemplate>
+      <name>AnyObjectRelations</name>
+      <favoriteActionGroup2></favoriteActionGroup2>
+      <titleField>AnyTargetType</titleField>
+      <descriptionField>AnyTargetRowid</descriptionField>
+      <entityField>#ENTITY</entityField>
+    </treetableViewTemplate>
   </children>
 </neonView>
-- 
GitLab