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