summaryrefslogtreecommitdiffstats
path: root/plugins/slick.checkboxselectcolumn.js
diff options
context:
space:
mode:
authorMichael Leibman <michael.leibman@gmail.com>2012-01-17 12:29:57 -0800
committerMichael Leibman <mleibman@google.com>2012-01-17 12:29:57 -0800
commit061ac59fb6a4c09a49d5abe1fa86c26f9d13bf66 (patch)
tree94f65296e682881a84214cd3ed608cc991ccf666 /plugins/slick.checkboxselectcolumn.js
parent6634f168da6a03ce36a4a63c83f9acd1c33cbd5d (diff)
downloadSlickGrid-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.js231
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