summaryrefslogtreecommitdiffstats
path: root/plugins/slick.cellselectionmodel.js
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/slick.cellselectionmodel.js')
-rw-r--r--plugins/slick.cellselectionmodel.js154
1 files changed, 77 insertions, 77 deletions
diff --git a/plugins/slick.cellselectionmodel.js b/plugins/slick.cellselectionmodel.js
index e1dd565..c517117 100644
--- a/plugins/slick.cellselectionmodel.js
+++ b/plugins/slick.cellselectionmodel.js
@@ -1,92 +1,92 @@
-(function($) {
- // register namespace
- $.extend(true, window, {
- "Slick": {
- "CellSelectionModel": CellSelectionModel
- }
+(function ($) {
+ // register namespace
+ $.extend(true, window, {
+ "Slick":{
+ "CellSelectionModel":CellSelectionModel
+ }
+ });
+
+
+ function CellSelectionModel(options) {
+ var _grid;
+ var _canvas;
+ var _ranges = [];
+ var _self = this;
+ var _selector = new Slick.CellRangeSelector({
+ "selectionCss":{
+ "border":"2px solid black"
+ }
});
+ var _options;
+ var _defaults = {
+ selectActiveCell:true
+ };
+
+
+ function init(grid) {
+ _options = $.extend(true, {}, _defaults, options);
+ _grid = grid;
+ _canvas = _grid.getCanvasNode();
+ _grid.onActiveCellChanged.subscribe(handleActiveCellChange);
+ grid.registerPlugin(_selector);
+ _selector.onCellRangeSelected.subscribe(handleCellRangeSelected);
+ _selector.onBeforeCellRangeSelected.subscribe(handleBeforeCellRangeSelected);
+ }
+ function destroy() {
+ _grid.onActiveCellChanged.unsubscribe(handleActiveCellChange);
+ _selector.onCellRangeSelected.unsubscribe(handleCellRangeSelected);
+ _selector.onBeforeCellRangeSelected.unsubscribe(handleBeforeCellRangeSelected);
+ _grid.unregisterPlugin(_selector);
+ }
- function CellSelectionModel(options) {
- var _grid;
- var _canvas;
- var _ranges = [];
- var _self = this;
- var _selector = new Slick.CellRangeSelector({
- "selectionCss": {
- "border": "2px solid black"
- }
- });
- var _options;
- var _defaults = {
- selectActiveCell: true
- };
-
-
- function init(grid) {
- _options = $.extend(true, {}, _defaults, options);
- _grid = grid;
- _canvas = _grid.getCanvasNode();
- _grid.onActiveCellChanged.subscribe(handleActiveCellChange);
- grid.registerPlugin(_selector);
- _selector.onCellRangeSelected.subscribe(handleCellRangeSelected);
- _selector.onBeforeCellRangeSelected.subscribe(handleBeforeCellRangeSelected);
- }
+ function removeInvalidRanges(ranges) {
+ var result = [];
- function destroy() {
- _grid.onActiveCellChanged.unsubscribe(handleActiveCellChange);
- _selector.onCellRangeSelected.unsubscribe(handleCellRangeSelected);
- _selector.onBeforeCellRangeSelected.unsubscribe(handleBeforeCellRangeSelected);
- _grid.unregisterPlugin(_selector);
+ for (var i = 0; i < ranges.length; i++) {
+ var r = ranges[i];
+ if (_grid.canCellBeSelected(r.fromRow, r.fromCell) && _grid.canCellBeSelected(r.toRow, r.toCell)) {
+ result.push(r);
}
+ }
- function removeInvalidRanges(ranges) {
- var result = [];
-
- for (var i = 0; i < ranges.length; i++) {
- var r = ranges[i];
- if (_grid.canCellBeSelected(r.fromRow,r.fromCell) && _grid.canCellBeSelected(r.toRow,r.toCell)) {
- result.push(r);
- }
- }
-
- return result;
- }
+ return result;
+ }
- function setSelectedRanges(ranges) {
- _ranges = removeInvalidRanges(ranges);
- _self.onSelectedRangesChanged.notify(_ranges);
- }
+ function setSelectedRanges(ranges) {
+ _ranges = removeInvalidRanges(ranges);
+ _self.onSelectedRangesChanged.notify(_ranges);
+ }
- function getSelectedRanges() {
- return _ranges;
- }
+ function getSelectedRanges() {
+ return _ranges;
+ }
- function handleBeforeCellRangeSelected(e, args) {
- if (_grid.getEditorLock().isActive()) {
- e.stopPropagation();
- return false;
- }
- }
+ function handleBeforeCellRangeSelected(e, args) {
+ if (_grid.getEditorLock().isActive()) {
+ e.stopPropagation();
+ return false;
+ }
+ }
- function handleCellRangeSelected(e, args) {
- setSelectedRanges([args.range]);
- }
+ function handleCellRangeSelected(e, args) {
+ setSelectedRanges([args.range]);
+ }
- function handleActiveCellChange(e, args) {
- if (_options.selectActiveCell) {
- setSelectedRanges([new Slick.Range(args.row,args.cell)]);
- }
- }
+ function handleActiveCellChange(e, args) {
+ if (_options.selectActiveCell) {
+ setSelectedRanges([new Slick.Range(args.row, args.cell)]);
+ }
+ }
- $.extend(this, {
- "getSelectedRanges": getSelectedRanges,
- "setSelectedRanges": setSelectedRanges,
+ $.extend(this, {
+ "getSelectedRanges":getSelectedRanges,
+ "setSelectedRanges":setSelectedRanges,
- "init": init,
- "destroy": destroy,
+ "init":init,
+ "destroy":destroy,
- "onSelectedRangesChanged": new Slick.Event()
- });
- }
+ "onSelectedRangesChanged":new Slick.Event()
+ });
+ }
})(jQuery); \ No newline at end of file