From 9d4a34db1fc7047dcae93d795c73a01d5a3cfd0c Mon Sep 17 00:00:00 2001 From: luigser Date: Tue, 27 Oct 2015 11:55:27 +0100 Subject: [PATCH] selection controllet and card update --- controllets/data-sevc-controllet/data-sevc-controllet.html | 19 +++++++++---------- controllets/data-sevc-controllet/data-sevc-controllet_.html | 997 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- controllets/data-sevc-controllet/data-sevc-controllet__.html | 953 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- controllets/data-sevc-controllet/data-sevc-controllet_treeview_checkbox.html | 1042 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ controllets/paper-card-controllet/paper-card-controllet.html | 12 ++++++++---- controllets/tree-view-controllet/demo/index.html | 36 ++++++++++++++++++++++-------------- controllets/tree-view-controllet/tree-view-controllet.html | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------- datalets/datatable-datalet/datatable-datalet.html | 2 +- 8 files changed, 1224 insertions(+), 2077 deletions(-) delete mode 100644 controllets/data-sevc-controllet/data-sevc-controllet_.html delete mode 100644 controllets/data-sevc-controllet/data-sevc-controllet__.html create mode 100644 controllets/data-sevc-controllet/data-sevc-controllet_treeview_checkbox.html diff --git a/controllets/data-sevc-controllet/data-sevc-controllet.html b/controllets/data-sevc-controllet/data-sevc-controllet.html index 3b2f272..04e9adc 100644 --- a/controllets/data-sevc-controllet/data-sevc-controllet.html +++ b/controllets/data-sevc-controllet/data-sevc-controllet.html @@ -52,7 +52,7 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/controllets/data-sevc-controllet/data-sevc-controllet__.html b/controllets/data-sevc-controllet/data-sevc-controllet__.html deleted file mode 100644 index a59ee5b..0000000 --- a/controllets/data-sevc-controllet/data-sevc-controllet__.html +++ /dev/null @@ -1,953 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/controllets/data-sevc-controllet/data-sevc-controllet_treeview_checkbox.html b/controllets/data-sevc-controllet/data-sevc-controllet_treeview_checkbox.html new file mode 100644 index 0000000..3b2f272 --- /dev/null +++ b/controllets/data-sevc-controllet/data-sevc-controllet_treeview_checkbox.html @@ -0,0 +1,1042 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/controllets/paper-card-controllet/paper-card-controllet.html b/controllets/paper-card-controllet/paper-card-controllet.html index 6dee1b7..a9669a9 100644 --- a/controllets/paper-card-controllet/paper-card-controllet.html +++ b/controllets/paper-card-controllet/paper-card-controllet.html @@ -95,25 +95,25 @@ @@ -182,6 +182,10 @@ checkType: function(type, check){ return (type == check); + }, + + _handleFabClick: function(e){ + this.fire('paper-card-controllet_button-clicked', {data : this}); } }) diff --git a/controllets/tree-view-controllet/demo/index.html b/controllets/tree-view-controllet/demo/index.html index 302fb24..0f97565 100644 --- a/controllets/tree-view-controllet/demo/index.html +++ b/controllets/tree-view-controllet/demo/index.html @@ -1,9 +1,9 @@ - + - + @@ -11,22 +11,30 @@ -

 

+
+ +
+ + -
+
- +
+

Selected fields:

+

 

+
@@ -39,12 +47,12 @@ dataType: "json", success: function(data){ tree.setAttribute("json-data", JSON.stringify(data)); - tree.init();//chrome + tree.ready();//chrome } }); - tree.addEventListener("click", function () { - fields.innerHTML = tree.getFlatFields(); + tree.addEventListener("tree-view-controllet_selected-fields", function (e) { + fields.innerHTML = e.detail.fields; console.log(tree.getFlatFields()); console.log(tree.getFields());//firefox console.log does not recognize associative array? }); diff --git a/controllets/tree-view-controllet/tree-view-controllet.html b/controllets/tree-view-controllet/tree-view-controllet.html index 5665618..c9b6707 100644 --- a/controllets/tree-view-controllet/tree-view-controllet.html +++ b/controllets/tree-view-controllet/tree-view-controllet.html @@ -20,8 +20,13 @@ font-weight: 700; } + paper-item.menu-trigger.iron-selected { + background-color: #B6B6B6; + } + paper-item:not(.menu-trigger).iron-selected { background-color: #2196F3; + color: #FFFFFF; } .sublist { @@ -29,11 +34,16 @@ padding-right: 20px; } + :host{ + --paper-menu-focused-item-after: { + opacity: 0; + }; + } @@ -46,12 +56,12 @@ rootName : { type : String, - value : "Data" + value : "root" }, jsonData : { type : Object, - value : null + value : undefined }, selectedFields : { @@ -59,9 +69,14 @@ value : [] }, + preselectedFields : { + type : Array, + value : [] + }, + openedPath : { type : String, - value : "" + value : undefined } }, @@ -73,16 +88,30 @@ ready : function() { if(this.jsonData) - this.init(); + this._init(); + }, + + getFields : function() { + return this.selectedFields; + }, + + getFlatFields : function() { + var fields = []; + + for(var A in this.selectedFields) + for(var e in this.selectedFields[A]) + fields.push(this.selectedFields[A][e]); + + return fields; }, - init : function() { - var tree = document.getElementById('paper-tree'); - this.injectBoundHTML(createTree(this.rootName, this.jsonData), tree); - this.openPath(); + _init : function() { + this._injectBoundHTML(this._initCreateTree(this.rootName, this.jsonData), this.$.paper_tree); + this._preselectFields(); + this._openPath(); }, - injectBoundHTML : function(html, element) { + _injectBoundHTML : function(html, element) { var template = document.createElement('template'); template.innerHTML = html; var fragment = this.instanceTemplate(template); @@ -93,39 +122,121 @@ return fragment; }, - openPath : function() { - var openedPath; + _initCreateTree : function(nodeName, node) { + var list = new Array(); + for(var child in node) + list.push(this._createTree(child, node[child])); + return this._paper_submenu(nodeName, list); + }, - if (this.openedPath == "") - openedPath = this.rootName; - else - openedPath = this.openedPath; + _createTree : function(nodeName, node) { + var html = ""; + if(node.constructor == Object){ + var list = new Array(); + for(var child in node) + list.push(this._createTree(nodeName+","+child, node[child])); + html = this._paper_submenu(nodeName, list); + } + else if (node.constructor == Array){ + var list = new Array(); + if(node[0].constructor == Object){ + for(var child in node[0]) + list.push(this._createTree(nodeName+","+child, node[0][child])); + html = this._paper_submenu(nodeName, list); + } + else{ + html = nodeName; + } + } + else{ + html = nodeName; + } + return html; + }, - var nodes = openedPath.split(","); + _paper_submenu : function(str, list) { + var submenu = ""; - openedPath = ""; + submenu += ""+this._getName(str)+"" + ""; - while(nodes.length != 0) { - openedPath += nodes.splice(0,1); - var menu = document.getElementById(openedPath); - var submenu = menu.parentNode.parentNode; - submenu.setAttribute("opened", "true"); - openedPath += ","; + for(var i in list){ + if(list[i].indexOf("paper-submenu") != -1) + submenu += list[i]; + else + submenu += this._paper_item(list[i]); } + + submenu += "" + ""; + + return submenu; }, - _onSelect : function(e) { - //this.updateSelectedFields(e); - this.fire('treeview-controllet_fileds-selected', {fields : this.getFlatFields()}); + _paper_item : function(str){ + return ""+this._getName(str)+""; + }, + + _getName : function (str){ + str = str.split(","); + return str[str.length-1]; + }, + + _preselectFields : function() { + if (this.preselectedFields){ + for(var field in this.preselectedFields){ + var path = this.preselectedFields[field]; + + if (path.lastIndexOf(",") != -1) + path = path.substring(0, path.lastIndexOf(",")); + else + path = this.rootName; + + var menu = document.getElementById(path); + var item = document.getElementById(this.preselectedFields[field]); + var index = menu.items.indexOf(item); + + if (menu.selectedValues == undefined){ + menu.selectedValues = [index]; + } + else{ + var selectedValues = []; + for (var i in menu.selectedValues) + selectedValues.push(menu.selectedValues[i]); + selectedValues.push(index); + menu.selectedValues = selectedValues; + } + } + } + }, + + _openPath : function() { + this.$.paper_tree.firstChild.open(); + + if (this.openedPath) { + var openedPath = this.openedPath; + var nodes = openedPath.split(","); + openedPath = ""; + + while (nodes.length != 0) { + openedPath += nodes.splice(0, 1); + + var menu = document.getElementById(openedPath); + var submenu = menu.parentNode.parentNode; + submenu.open(); + + openedPath += ","; + } + } + }, + _onSelect : function(e) { + this._updateSelectedFields(e); }, _onDeselect : function(e) { - this.updateSelectedFields(e); - this.fire('treeview-controllet_fileds-selected', {fields : this.getFlatFields()}); + this._updateSelectedFields(e); }, - updateSelectedFields : function(e) { + _updateSelectedFields : function(e) { var menuId = e.target.id; var selectedIds = []; @@ -140,79 +251,12 @@ this.selectedFields[menuId] = selectedIds; else delete this.selectedFields[menuId]; - }, - - getFields : function() { - return this.selectedFields; - }, - - getFlatFields : function() { - var fields = []; - for(var A in this.selectedFields) - for(var e in this.selectedFields[A]) - fields.push(this.selectedFields[A][e].replace(this.rootName + ",","")); - - return fields; + this.fire('tree-view-controllet_selected-fields', {fields : this.getFlatFields()}); } }); - - \ No newline at end of file diff --git a/datalets/datatable-datalet/datatable-datalet.html b/datalets/datatable-datalet/datatable-datalet.html index 32171ac..fb7a1e2 100755 --- a/datalets/datatable-datalet/datatable-datalet.html +++ b/datalets/datatable-datalet/datatable-datalet.html @@ -63,7 +63,7 @@ Example: var DatatableBehavior = { presentData: function(){ - if(!this.data || this.data == undefined) return; + if(!this.data || this.data[0] == undefined) return; html = ""; html += ''+ ''; -- libgit2 0.21.4