From ac3b86da0feba7336ec001b416a5f3381854af0e Mon Sep 17 00:00:00 2001
From: Sergey Linev <S.Linev@gsi.de>
Date: Wed, 3 Apr 2019 14:06:04 +0200
Subject: [PATCH] geom viewer: unify data member names on server and client

Let use RBrowserItem as is on the client
---
 graf3d/eve7/inc/ROOT/REveGeomData.hxx | 26 +++++------
 ui5/geom/model/BrowserListBinding.js  |  6 +--
 ui5/geom/model/BrowserModel.js        | 62 +++++++++++++--------------
 3 files changed, 46 insertions(+), 48 deletions(-)

diff --git a/graf3d/eve7/inc/ROOT/REveGeomData.hxx b/graf3d/eve7/inc/ROOT/REveGeomData.hxx
index 1e30a09e94f..1a2792aadcc 100644
--- a/graf3d/eve7/inc/ROOT/REveGeomData.hxx
+++ b/graf3d/eve7/inc/ROOT/REveGeomData.hxx
@@ -37,19 +37,19 @@ class RGeomBrowserIter;
 /** Request send from client to get content of path element */
 class RBrowserRequest {
 public:
-   std::string path;
-   int first{0};
-   int number{0};
-   std::string sort;
+   std::string path;   ///< requested path
+   int first{0};       ///< first child to request
+   int number{0};      ///< number of childs to request, 0 - all childs
+   std::string sort;   ///< kind of sorting
 };
 
-/** Representation of single item */
+/** Representation of single item in the browser */
 class RBrowserItem {
 public:
-   std::string name;     // item name
-   int nchilds{0};       // number of childs
-   bool checked{false};  // is checked
-   bool expanded{false}; // is expanded
+   std::string name;     ///< item name
+   int nchilds{0};       ///< number of childs
+   bool checked{false};  ///< is checked
+   bool expanded{false}; ///< is expanded
    RBrowserItem() = default;
    RBrowserItem(const std::string &_name, int _nchilds = 0) : name(_name), nchilds(_nchilds) {}
 };
@@ -57,10 +57,10 @@ public:
 /** Reply on browser request */
 class RBrowserReply {
 public:
-   std::string path;     // reply path
-   int first{0};         // first node in childs
-   int nchilds{0};       // number of childs
-   std::vector<RBrowserItem> nodes;
+   std::string path;     ///< reply path
+   int nchilds{0};       ///< total number of childs in the node
+   int first{0};         ///< first node in returned list
+   std::vector<RBrowserItem> nodes; ///< list of nodes
 };
 
 /** Base description of geometry node, required only to build hierarchy */
diff --git a/ui5/geom/model/BrowserListBinding.js b/ui5/geom/model/BrowserListBinding.js
index 4076275c776..598de114f7f 100644
--- a/ui5/geom/model/BrowserListBinding.js
+++ b/ui5/geom/model/BrowserListBinding.js
@@ -10,10 +10,8 @@ sap.ui.define([
 
         // called by the TreeTable to know the amount of entries
         getLength: function() {
-           console.log('returning length', this.getModel().getLength());
-
-            // Log.warning("root.model.hListBinding#getLength()");
-            return this.getModel().getLength();
+           // Log.warning("root.model.hListBinding#getLength()");
+           return this.getModel().getLength();
         },
 
         // function is called by the TreeTable when requesting the data to display
diff --git a/ui5/geom/model/BrowserModel.js b/ui5/geom/model/BrowserModel.js
index a687b884311..f04585315f3 100644
--- a/ui5/geom/model/BrowserModel.js
+++ b/ui5/geom/model/BrowserModel.js
@@ -66,9 +66,9 @@ sap.ui.define([
               var name = names.shift(), find = false;
               if (!name) continue;
 
-              for (var k=0;k<curr._childs.length;++k) {
-                 if (curr._childs[k].name == name) {
-                    curr = curr._childs[k];
+              for (var k=0;k<curr.childs.length;++k) {
+                 if (curr.childs[k].name == name) {
+                    curr = curr.childs[k];
                     find = true;
                     break;
                  }
@@ -126,21 +126,21 @@ sap.ui.define([
 
            var smart_merge = false;
 
-           if ((elem._nchilds === reply.nchilds) && elem._childs && reply.nodes) {
-              if (elem._first + elem._childs.length == reply.first) {
-                 elem._childs = elem._childs.concat(reply.nodes);
+           if ((elem.nchilds === reply.nchilds) && elem.childs && reply.nodes) {
+              if (elem.first + elem.childs.length == reply.first) {
+                 elem.childs = elem.childs.concat(reply.nodes);
                  smart_merge = true;
-              } else if (reply.first + reply.nodes.length == elem._first) {
-                 elem._first = reply.first;
-                 elem._childs = reply.nodes.concat(elem._childs);
+              } else if (reply.first + reply.nodes.length == elem.first) {
+                 elem.first = reply.first;
+                 elem.childs = reply.nodes.concat(elem.childs);
                  smart_merge = true;
               }
            }
 
            if (!smart_merge) {
-              elem._nchilds = reply.nchilds;
-              elem._childs = reply.nodes;
-              elem._first = reply.first || 0;
+              elem.nchilds = reply.nchilds;
+              elem.childs = reply.nodes;
+              elem.first = reply.first || 0;
            }
 
            this.scanShifts();
@@ -176,23 +176,23 @@ sap.ui.define([
               var before_id = id;
 
               if (elem._expanded) {
-                 if (elem._childs === undefined) {
+                 if (elem.childs === undefined) {
                     // do nothing, childs are not visible as long as we do not have any list
 
                     // id += 0;
                  } else {
 
                     // gap at the begin
-                    if (elem._first)
-                       id += elem._first;
+                    if (elem.first)
+                       id += elem.first;
 
                     // jump over all childs
-                    for (var k=0;k<elem._childs.length;++k)
-                       scan(lvl+1, elem._childs[k]);
+                    for (var k=0;k<elem.childs.length;++k)
+                       scan(lvl+1, elem.childs[k]);
 
                     // gap at the end
-                    var _last = (elem._first || 0) + elem._childs.length;
-                    var _remains = elem._nchilds  - _last;
+                    var _last = (elem.first || 0) + elem.childs.length;
+                    var _remains = elem.nchilds  - _last;
                     if (_remains > 0) id += _remains;
                  }
               }
@@ -242,7 +242,7 @@ sap.ui.define([
 
               if (!elem._expanded) return;
 
-              if (elem._childs === undefined) {
+              if (elem.childs === undefined) {
                  // add new request - can we check if only special part of childs is required?
 
                  // TODO: probably one could guess more precise request
@@ -258,27 +258,27 @@ sap.ui.define([
               }
 
               // when not all childs from very beginning is loaded, but may be required
-              if (elem._first) {
+              if (elem.first) {
 
                  // check if requests are needed to load part in the begin of the list
-                 if (args.begin - id - threshold2 < elem._first) {
+                 if (args.begin - id - threshold2 < elem.first) {
 
                     var first = Math.max(args.begin - id - threshold2, 0),
-                        number = Math.min(elem._first - first, threshold);
+                        number = Math.min(elem.first - first, threshold);
 
                     pthis.submitRequest(elem, path, first, number);
                  }
 
-                 id += elem._first;
+                 id += elem.first;
               }
 
-              for (var k=0;k<elem._childs.length;++k)
-                 scan(lvl+1, elem._childs[k], path + elem._childs[k].name + "/");
+              for (var k=0;k<elem.childs.length;++k)
+                 scan(lvl+1, elem.childs[k], path + elem.childs[k].name + "/");
 
               // check if more elements are required
 
-              var _last = (elem._first || 0) + elem._childs.length;
-              var _remains = elem._nchilds  - _last;
+              var _last = (elem.first || 0) + elem.childs.length;
+              var _remains = elem.nchilds  - _last;
 
               if (_remains > 0) {
                  if (args.end + threshold2 > id) {
@@ -319,11 +319,11 @@ sap.ui.define([
            var elem = this.getElementByIndex(index);
            if (!elem) return;
 
-           console.log('Toggle element', elem.name)
+           console.log('Toggle element', elem.name, elem.nchilds, elem)
 
            if (elem._expanded) {
               delete elem._expanded;
-              delete elem._childs; // TODO: for the future keep childs but make request if expand once again
+              delete elem.childs; // TODO: for the future keep childs but make request if expand once again
 
               // close folder - reassign shifts
               this.reset_nodes = true;
@@ -331,7 +331,7 @@ sap.ui.define([
 
               return true;
 
-           } else if (elem.nchilds || (elem.index==0)) {
+           } else if (elem.nchilds || !elem.index) {
 
               elem._expanded = true;
               // structure is changing but not immediately
-- 
GitLab