Skip to content

Commit

Permalink
Merge branch 'master' into gh-pages
Browse files Browse the repository at this point in the history
  • Loading branch information
TonyGermaneri committed Aug 21, 2017
2 parents a4ebe25 + 1359292 commit 4895a1c
Show file tree
Hide file tree
Showing 10 changed files with 417 additions and 55 deletions.
2 changes: 1 addition & 1 deletion build.txt
@@ -1 +1 @@
1494
1515
64 changes: 41 additions & 23 deletions dist/canvas-datagrid.debug.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/canvas-datagrid.debug.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/canvas-datagrid.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/canvas-datagrid.map

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions lib/events.js
Expand Up @@ -396,9 +396,9 @@ define([], function () {
}
if (self.cellBoundaryCrossed || (delta.x === 0 && delta.y === 0) || self.attributes.rowSelectionMode) {
if (self.attributes.rowSelectionMode || self.dragStartObject.columnIndex === -1) {
self.selectRow(o.rowIndex, ctrl, true);
self.selectRow(o.rowIndex, ctrl, null, true);
} else {
if (!self.dragAddToSelection && o.rowIndex) {
if (!self.dragAddToSelection && o.rowIndex !== undefined) {
if (self.selections[o.rowIndex] && self.selections[o.rowIndex].indexOf(o.columnIndex) !== -1) {
self.selections[o.rowIndex].splice(self.selections[o.rowIndex].indexOf(o.columnIndex), 1);
}
Expand All @@ -418,7 +418,7 @@ define([], function () {
sBounds = dragBounds;
if (self.attributes.rowSelectionMode) {
for (i = sBounds.top; i <= sBounds.bottom; i += 1) {
self.selectRow(i, true, true);
self.selectRow(i, true, null, true);
}
} else {
self.selectArea(sBounds, true);
Expand Down Expand Up @@ -665,7 +665,7 @@ define([], function () {
return;
}
selectionChanged = true;
self.selectRow(i.rowIndex, ctrl, true);
self.selectRow(i.rowIndex, ctrl, null, true);
}
if (e.shiftKey && !ctrl) {
self.selectionBounds = self.getSelectionBounds();
Expand Down Expand Up @@ -887,7 +887,7 @@ define([], function () {
if (self.dragMode === 'cell') {
self.selecting = true;
if (self.attributes.rowSelectionMode) {
self.selectRow(self.dragStartObject.rowIndex, ctrl, true);
self.selectRow(self.dragStartObject.rowIndex, ctrl, null, true);
}
return self.mousemove(e);
}
Expand Down Expand Up @@ -994,7 +994,7 @@ define([], function () {
self.selectionBounds = self.getSelectionBounds();
if (self.attributes.rowSelectionMode) {
for (i = self.selectionBounds.top; i <= self.selectionBounds.bottom; i += 1) {
self.selectRow(i, ctrl, true);
self.selectRow(i, ctrl, null, true);
}
} else {
self.selectArea(undefined, ctrl);
Expand Down
9 changes: 8 additions & 1 deletion lib/intf.js
Expand Up @@ -61,6 +61,10 @@ define([], function () {
var d = [], s = self.getSchema(), l = self.data.length;
self.selections.forEach(function (row, index) {
if (index === l) { return; }
if (row.length === 0) {
d[index] = null;
return;
}
d[index] = {};
if (expandToRow) {
s.forEach(function (column) {
Expand Down Expand Up @@ -391,8 +395,9 @@ define([], function () {
self.setStyle();
self.initScrollBox();
self.setDom();
self.type = 'canvas-datagrid';
Object.keys(self.style).forEach(self.parseFont);
self.intf.type = 'canvas-datagrid';
self.intf.type = self.type;
self.intf.addEventListener = self.addEventListener;
self.intf.removeEventListener = self.removeEventListener;
self.intf.dispatchEvent = self.dispatchEvent;
Expand Down Expand Up @@ -440,6 +445,8 @@ define([], function () {
self.intf.resetColumnWidths = self.resetColumnWidths;
self.intf.resetRowHeights = self.resetRowHeights;
self.intf.resize = self.resize;
self.intf.selectColumn = self.selectColumn;
self.intf.selectRow = self.selectRow;
self.intf.selectAll = self.selectAll;
self.intf.drawChildGrids = self.drawChildGrids;
self.intf.assertPxColor = self.assertPxColor;
Expand Down
43 changes: 27 additions & 16 deletions lib/publicMethods.js
Expand Up @@ -384,12 +384,10 @@ define([], function () {
self.activeCell.columnIndex = columnIndex;
self.activeCell.rowIndex = self.scrollIndexTop;
}
if (self.dragAddToSelection === true) {
if (ctrl && self.isColumnSelected(columnIndex)) {
removeCol(columnIndex);
} else {
addCol(columnIndex);
}
if (ctrl && self.isColumnSelected(columnIndex)) {
removeCol(columnIndex);
} else {
addCol(columnIndex);
}
if (supressEvent) { return; }
self.dispatchEvent('selectionchanged', {
Expand All @@ -404,25 +402,38 @@ define([], function () {
* @name selectRow
* @method
* @param {number} rowIndex The row index to select.
* @param {boolean} toggleSelectMode When true, behaves as if you were holding control/command when you clicked the row.
* @param {boolean} ctrl When true, behaves as if you were holding control/command when you clicked the row.
* @param {boolean} shift When true, behaves as if you were holding shift when you clicked the row.
* @param {boolean} supressSelectionchangedEvent When true, prevents the selectionchanged event from firing.
*/
self.selectRow = function (rowIndex, ctrl, supressEvent) {
var s = self.getSchema();
if (self.dragAddToSelection === false) {
self.selectRow = function (rowIndex, ctrl, shift, supressEvent) {
var x, st, en, s = self.getSchema();
function addRow(ri) {
self.selections[ri] = [];
self.selections[ri].push(-1);
s.forEach(function (col) {
self.selections[ri].push(col.index);
});
}
if (self.dragAddToSelection === false || self.dragObject === undefined) {
if (self.selections[rowIndex] && self.selections[rowIndex].length - 1 === s.length) {
if (ctrl) {
self.selections[rowIndex] = [];
return;
}
}
}
if (self.dragAddToSelection === true) {
self.selections[rowIndex] = [];
self.selections[rowIndex].push(-1);
s.forEach(function (col) {
self.selections[rowIndex].push(col.index);
});
if (self.dragAddToSelection === true || self.dragObject === undefined) {
if (shift && self.dragObject === undefined) {
if (!self.activeCell) { return; }
st = Math.min(self.activeCell.rowIndex, rowIndex);
en = Math.max(self.activeCell.rowIndex, rowIndex);
for (x = st; en >= x; x += 1) {
addRow(x);
}
} else {
addRow(rowIndex);
}
}
if (supressEvent) { return; }
self.dispatchEvent('selectionchanged', {
Expand Down

0 comments on commit 4895a1c

Please sign in to comment.