[Libreoffice-commits] online.git: loleaflet/src
Henry Castro
hcastro at collabora.com
Sun Nov 15 15:25:53 PST 2015
loleaflet/src/control/Control.RowHeader.js | 108 +++++++++++++++--------------
1 file changed, 58 insertions(+), 50 deletions(-)
New commits:
commit 7ed35f810e50471aee8958d1f23b9bc000d32706
Author: Henry Castro <hcastro at collabora.com>
Date: Sun Nov 15 19:25:50 2015 -0400
loleaflet: update row headers to modified css styles
diff --git a/loleaflet/src/control/Control.RowHeader.js b/loleaflet/src/control/Control.RowHeader.js
index 45bfb17..c4fab2a 100644
--- a/loleaflet/src/control/Control.RowHeader.js
+++ b/loleaflet/src/control/Control.RowHeader.js
@@ -3,67 +3,75 @@
*/
L.Control.RowHeader = L.Control.extend({
- onAdd: function () {
- var docContainer = L.DomUtil.get('document-container');
- var divRowHeader = L.DomUtil.create('div', 'spreadsheet-container-row', docContainer.parentElement);
- var divRowInner = L.DomUtil.create('div', 'spreadsheet-container-row-inner', divRowHeader);
- this._table = L.DomUtil.create('table', '', divRowInner);
- this._table.id = 'spreadsheet-table-row';
- this._rows = L.DomUtil.create('tbody', '', this._table);
+ onAdd: function () {
+ var docContainer = L.DomUtil.get('document-container');
+ var divRowHeader = L.DomUtil.create('div', 'spreadsheet-container-row', docContainer.parentElement);
+ this._table = L.DomUtil.create('table', 'spreadsheet-table-row', divRowHeader);
+ this._rows = L.DomUtil.create('tbody', '', this._table);
- this._position = 0;
+ this._position = 0;
+ this._totalHeight = 0;
+ this._viewPort = 0;
- // dummy initial row header
- var row = L.DomUtil.create('tr', '', this._rows);
- L.DomUtil.create('th', 'spreadsheet-table-row-cell', row);
+ // dummy initial row header
+ var trRow = L.DomUtil.create('tr', '', this._rows);
+ var thRow = L.DomUtil.create('th', 'spreadsheet-table-row-cell', trRow);
+ L.DomUtil.create('div', 'spreadsheet-table-row-cell-text', thRow);
- return document.createElement('div');
- },
+ return document.createElement('div');
+ },
- clearRows: function () {
- L.DomUtil.remove(this._rows);
- this._rows = L.DomUtil.create('tbody', '', this._table);
- },
+ clearRows: function () {
+ L.DomUtil.remove(this._rows);
+ this._rows = L.DomUtil.create('tbody', '', this._table);
+ },
- setScrollPosition: function (position) {
- this._position = position;
- L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
- },
+ setViewPort: function(totalHeight, viewPort) {
+ this._viewPort = viewPort;
+ this._totalHeight = totalHeight;
+ },
- offsetScrollPosition: function (offset) {
- this._position = this._position - offset;
- L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
- },
+ setScrollPosition: function (position) {
+ this._position = Math.min(0, position);
+ L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
+ },
- fillRows: function (rows, converter, context) {
- var iterator, twip, height, row, cell;
+ offsetScrollPosition: function (offset) {
+ this._position = Math.min(0,
+ Math.max(this._position - offset,
+ -(this._totalHeight - this._viewPort - 4)));
+ L.DomUtil.setStyle(this._table, 'top', this._position + 'px');
+ },
- this.clearRows();
- var totalHeight = -1;
- for (iterator = 0; iterator < rows.length; iterator++) {
- twip = new L.Point(parseInt(rows[iterator].size), parseInt(rows[iterator].size));
- height = Math.round(converter.call(context, twip).y) - 2 - totalHeight;
- row = L.DomUtil.create('tr', '', this._rows);
- cell = L.DomUtil.create('th', 'spreadsheet-table-row-cell', row);
- cell.innerHTML = rows[iterator].text;
- cell.twipHeight = rows[iterator].size;
- cell.height = height + 'px';
- totalHeight += height + 1;
- }
- },
+ fillRows: function (rows, converter, context) {
+ var iterator, twip, height, row, cell, text;
- updateRows: function (converter, context) {
- var iterator, twip, height, row;
+ this.clearRows();
+ for (iterator = 0; iterator < rows.length; iterator++) {
+ height = rows[iterator].size - (iterator > 0 ? rows[iterator - 1].size : 0);
+ twip = new L.Point(height, height);
+ row = L.DomUtil.create('tr', '', this._rows);
+ cell = L.DomUtil.create('th', 'spreadsheet-table-row-cell', row);
+ text = L.DomUtil.create('div', 'spreadsheet-table-row-cell-text', cell);
+ text.innerHTML = rows[iterator].text;
+ height = Math.round(converter.call(context, twip).y) - (iterator > 0 ? 1 : 0) + 'px';
+ L.DomUtil.setStyle(text, 'line-height', height);
+ L.DomUtil.setStyle(text, 'height', height);
+ }
+ },
+
+ updateRows: function (rows, converter, context) {
+ var iterator, twip, height, text;
- var totalHeight = -1;
- for (iterator = 0; iterator < this._rows.childNodes.length; iterator++) {
- row = this._rows.childNodes[iterator].firstChild;
- twip = new L.Point(parseInt(row.twipHeight), parseInt(row.twipHeight));
- height = Math.round(converter.call(context, twip).y) - 2 - totalHeight;
- row.height = height + 'px';
- totalHeight += height + 1;
- }
+ for (iterator = 0; iterator < this._rows.childNodes.length; iterator++) {
+ text = this._rows.childNodes[iterator].firstChild.firstChild;
+ height = rows[iterator].size - (iterator > 0 ? rows[iterator - 1].size : 0);
+ twip = new L.Point(height, height);
+ height = Math.round(converter.call(context, twip).y) - (iterator > 0 ? 1 : 0) + 'px';
+ L.DomUtil.setStyle(text, 'line-height', height);
+ L.DomUtil.setStyle(text, 'height', height);
}
+ }
});
L.control.rowHeader = function (options) {
More information about the Libreoffice-commits
mailing list