diff options
author | Michael Leibman <michael.leibman@gmail.com> | 2012-01-17 12:29:57 -0800 |
---|---|---|
committer | Michael Leibman <mleibman@google.com> | 2012-01-17 12:29:57 -0800 |
commit | 061ac59fb6a4c09a49d5abe1fa86c26f9d13bf66 (patch) | |
tree | 94f65296e682881a84214cd3ed608cc991ccf666 /plugins/slick.checkboxselectcolumn.js | |
parent | 6634f168da6a03ce36a4a63c83f9acd1c33cbd5d (diff) | |
download | SlickGrid-061ac59fb6a4c09a49d5abe1fa86c26f9d13bf66.zip SlickGrid-061ac59fb6a4c09a49d5abe1fa86c26f9d13bf66.tar.gz SlickGrid-061ac59fb6a4c09a49d5abe1fa86c26f9d13bf66.tar.bz2 |
Reformatted code.
Diffstat (limited to 'plugins/slick.checkboxselectcolumn.js')
-rw-r--r-- | plugins/slick.checkboxselectcolumn.js | 231 |
1 files changed, 115 insertions, 116 deletions
diff --git a/plugins/slick.checkboxselectcolumn.js b/plugins/slick.checkboxselectcolumn.js index 3a95255..c7078b9 100644 --- a/plugins/slick.checkboxselectcolumn.js +++ b/plugins/slick.checkboxselectcolumn.js @@ -1,136 +1,135 @@ -(function($) { - // register namespace - $.extend(true, window, { - "Slick": { - "CheckboxSelectColumn": CheckboxSelectColumn - } - }); - +(function ($) { + // register namespace + $.extend(true, window, { + "Slick":{ + "CheckboxSelectColumn":CheckboxSelectColumn + } + }); - function CheckboxSelectColumn(options) { - var _grid; - var _self = this; - var _selectedRowsLookup = {}; - var _defaults = { - columnId: "_checkbox_selector", - cssClass: null, - toolTip: "Select/Deselect All", - width: 30 - }; - var _options = $.extend(true,{},_defaults,options); + function CheckboxSelectColumn(options) { + var _grid; + var _self = this; + var _selectedRowsLookup = {}; + var _defaults = { + columnId:"_checkbox_selector", + cssClass:null, + toolTip:"Select/Deselect All", + width:30 + }; - function init(grid) { - _grid = grid; - _grid.onSelectedRowsChanged.subscribe(handleSelectedRowsChanged); - _grid.onClick.subscribe(handleClick); - _grid.onHeaderClick.subscribe(handleHeaderClick); - } + var _options = $.extend(true, {}, _defaults, options); - function destroy() { - _grid.onSelectedRowsChanged.unsubscribe(handleSelectedRowsChanged); - _grid.onClick.unsubscribe(handleClick); - _grid.onHeaderClick.unsubscribe(handleHeaderClick); - } + function init(grid) { + _grid = grid; + _grid.onSelectedRowsChanged.subscribe(handleSelectedRowsChanged); + _grid.onClick.subscribe(handleClick); + _grid.onHeaderClick.subscribe(handleHeaderClick); + } - function handleSelectedRowsChanged(e, args) { - var selectedRows = _grid.getSelectedRows(); - var lookup = {}, row, i; - for (i = 0; i < selectedRows.length; i++) { - row = selectedRows[i]; - lookup[row] = true; - if (lookup[row] !== _selectedRowsLookup[row]) { - _grid.invalidateRow(row); - delete _selectedRowsLookup[row]; - } - } - for (i in _selectedRowsLookup) { - _grid.invalidateRow(i); - } - _selectedRowsLookup = lookup; - _grid.render(); + function destroy() { + _grid.onSelectedRowsChanged.unsubscribe(handleSelectedRowsChanged); + _grid.onClick.unsubscribe(handleClick); + _grid.onHeaderClick.unsubscribe(handleHeaderClick); + } - if (selectedRows.length == _grid.getDataLength()) { - _grid.updateColumnHeader(_options.columnId, "<input type='checkbox' checked='checked'>", _options.toolTip); - } - else { - _grid.updateColumnHeader(_options.columnId, "<input type='checkbox'>", _options.toolTip); - } + function handleSelectedRowsChanged(e, args) { + var selectedRows = _grid.getSelectedRows(); + var lookup = {}, row, i; + for (i = 0; i < selectedRows.length; i++) { + row = selectedRows[i]; + lookup[row] = true; + if (lookup[row] !== _selectedRowsLookup[row]) { + _grid.invalidateRow(row); + delete _selectedRowsLookup[row]; } + } + for (i in _selectedRowsLookup) { + _grid.invalidateRow(i); + } + _selectedRowsLookup = lookup; + _grid.render(); - function handleClick(e, args) { - // clicking on a row select checkbox - if (_grid.getColumns()[args.cell].id === _options.columnId && $(e.target).is(":checkbox")) { - // if editing, try to commit - if (_grid.getEditorLock().isActive() && !_grid.getEditorLock().commitCurrentEdit()) { - e.preventDefault(); - e.stopImmediatePropagation(); - return; - } + if (selectedRows.length == _grid.getDataLength()) { + _grid.updateColumnHeader(_options.columnId, "<input type='checkbox' checked='checked'>", _options.toolTip); + } else { + _grid.updateColumnHeader(_options.columnId, "<input type='checkbox'>", _options.toolTip); + } + } - if (_selectedRowsLookup[args.row]) { - _grid.setSelectedRows($.grep(_grid.getSelectedRows(),function(n) { return n != args.row })); - } - else { - _grid.setSelectedRows(_grid.getSelectedRows().concat(args.row)); - } - e.stopPropagation(); - e.stopImmediatePropagation(); - } + function handleClick(e, args) { + // clicking on a row select checkbox + if (_grid.getColumns()[args.cell].id === _options.columnId && $(e.target).is(":checkbox")) { + // if editing, try to commit + if (_grid.getEditorLock().isActive() && !_grid.getEditorLock().commitCurrentEdit()) { + e.preventDefault(); + e.stopImmediatePropagation(); + return; } - function handleHeaderClick(e, args) { - if (args.column.id == _options.columnId && $(e.target).is(":checkbox")) { - // if editing, try to commit - if (_grid.getEditorLock().isActive() && !_grid.getEditorLock().commitCurrentEdit()) { - e.preventDefault(); - e.stopImmediatePropagation(); - return; - } - - if ($(e.target).is(":checked")) { - var rows = []; - for (var i = 0; i < _grid.getDataLength(); i++) { - rows.push(i); - } - _grid.setSelectedRows(rows); - } - else { - _grid.setSelectedRows([]); - } - e.stopPropagation(); - e.stopImmediatePropagation(); - } + if (_selectedRowsLookup[args.row]) { + _grid.setSelectedRows($.grep(_grid.getSelectedRows(), function (n) { + return n != args.row + })); + } else { + _grid.setSelectedRows(_grid.getSelectedRows().concat(args.row)); } + e.stopPropagation(); + e.stopImmediatePropagation(); + } + } - function getColumnDefinition() { - return { - id: _options.columnId, - name: "<input type='checkbox'>", - toolTip: _options.toolTip, - field: "sel", - width: _options.width, - resizable: false, - sortable: false, - cssClass: _options.cssClass, - formatter: checkboxSelectionFormatter - }; + function handleHeaderClick(e, args) { + if (args.column.id == _options.columnId && $(e.target).is(":checkbox")) { + // if editing, try to commit + if (_grid.getEditorLock().isActive() && !_grid.getEditorLock().commitCurrentEdit()) { + e.preventDefault(); + e.stopImmediatePropagation(); + return; } - function checkboxSelectionFormatter(row, cell, value, columnDef, dataContext) { - if (dataContext) { - return _selectedRowsLookup[row] - ? "<input type='checkbox' checked='checked'>" - : "<input type='checkbox'>"; - } - return null; + if ($(e.target).is(":checked")) { + var rows = []; + for (var i = 0; i < _grid.getDataLength(); i++) { + rows.push(i); + } + _grid.setSelectedRows(rows); + } else { + _grid.setSelectedRows([]); } + e.stopPropagation(); + e.stopImmediatePropagation(); + } + } - $.extend(this, { - "init": init, - "destroy": destroy, + function getColumnDefinition() { + return { + id:_options.columnId, + name:"<input type='checkbox'>", + toolTip:_options.toolTip, + field:"sel", + width:_options.width, + resizable:false, + sortable:false, + cssClass:_options.cssClass, + formatter:checkboxSelectionFormatter + }; + } - "getColumnDefinition": getColumnDefinition - }); + function checkboxSelectionFormatter(row, cell, value, columnDef, dataContext) { + if (dataContext) { + return _selectedRowsLookup[row] + ? "<input type='checkbox' checked='checked'>" + : "<input type='checkbox'>"; + } + return null; } + + $.extend(this, { + "init":init, + "destroy":destroy, + + "getColumnDefinition":getColumnDefinition + }); + } })(jQuery);
\ No newline at end of file |