From b055971c1b60b4a25cc08ebf66980ee1ed3e80d4 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Wed, 24 Feb 2016 18:48:09 +0300 Subject: [PATCH] Rectangle cell selection example --- treegrid.css | 14 ++++- treegrid.js | 6 +- treegridtest.htm | 140 +++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 134 insertions(+), 26 deletions(-) diff --git a/treegrid.css b/treegrid.css index b53d64d..812da00 100644 --- a/treegrid.css +++ b/treegrid.css @@ -25,15 +25,27 @@ table { border-collapse: collapse; } bottom: 0; } +/* selection rectangle */ +.selection-rect +{ + position: absolute; + border: 1px solid #003f6e; + background: #0097ff; + opacity: 0.1; + display: none; +} + /* fixed header table styles */ table.grid tbody tr:hover, table.grid tbody tr:hover td { background-color: #e2eff8; } -table.grid tr.selected +table.grid tr.selected, table.grid td.selected, table.grid tr.selected:hover, +table.grid tr.selected:hover td, table.grid tr:hover td.selected { background-color: #c1ddf1; + box-shadow: inset 0 0 0 1px #3d91cf; } table.grid thead th diff --git a/treegrid.js b/treegrid.js index 1617c3f..e3ddaab 100644 --- a/treegrid.js +++ b/treegrid.js @@ -83,7 +83,7 @@ function TreeGridNode(node, grid, level, insertBefore, startHidden) this.tr = document.createElement('tr'); if (startHidden) this.tr.style.display = 'none'; - this.tr._level = this.level; + this.tr._node = this; for (var i = 0; i < this.grid.header.length; i++) { var td = document.createElement('td'); @@ -137,7 +137,7 @@ TreeGridNode.prototype.toggle = function() { // collapse all children var c = this.tr.nextSibling; - while (c && c._level > this.level) + while (c && c._node.level > this.level) { c.style.display = 'none'; c = c.nextSibling; @@ -162,7 +162,7 @@ TreeGridNode.prototype.setChildren = function(isLeaf, newChildren) if (!this.tr) this.grid.tbody.innerHTML = ''; else - while (this.tr.nextSibling && this.tr.nextSibling._level > this.level) + while (this.tr.nextSibling && this.tr.nextSibling._node.level > this.level) this.grid.tbody.removeChild(this.tr.nextSibling); this.leaf = isLeaf; if (this.leaf) diff --git a/treegridtest.htm b/treegridtest.htm index b3871cd..3a42316 100644 --- a/treegridtest.htm +++ b/treegridtest.htm @@ -14,32 +14,128 @@