Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dojox.grid._grid.publicEvents"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.grid._grid.publicEvents"] = true;dojo.provide("dojox.grid._grid.publicEvents");dojox.grid.publicEvents = {// summary:// VirtualGrid mixin that provides default implementations for grid events.// dojo.connect to events to retain default implementation or override them for custom handling.//cellOverClass: string// css class to apply to grid cells over which the cursor is placed.cellOverClass: "dojoxGrid-cell-over",// top level handlers (more specified handlers below)onKeyEvent: function(e){this.dispatchKeyEvent(e);},onContentEvent: function(e){this.dispatchContentEvent(e);},onHeaderEvent: function(e){this.dispatchHeaderEvent(e);},onStyleRow: function(inRow){// summary:// Perform row styling on a given row. Called whenever row styling is updated.// inRow: object// Object containing row state information: selected, true if the row is selcted; over:// true of the mouse is over the row; odd: true if the row is odd. Use customClasses and// customStyles to control row css classes and styles; both properties are strings.with(inRow){customClasses += (odd?" dojoxGrid-row-odd":"") + (selected?" dojoxGrid-row-selected":"") + (over?" dojoxGrid-row-over":"");}this.focus.styleRow(inRow);this.edit.styleRow(inRow);},onKeyDown: function(e){// summary:// grid key event handler. By default enter begins editing and applies edits, escape cancels and edit,// tab, shift-tab, and arrow keys move grid cell focus.if(e.altKey || e.ctrlKey || e.metaKey ){return;}switch(e.keyCode){case dojo.keys.ESCAPE:this.edit.cancel();break;case dojo.keys.ENTER:if (!e.shiftKey) {var isEditing = this.edit.isEditing();this.edit.apply();if(!isEditing){this.edit.setEditCell(this.focus.cell, this.focus.rowIndex);}}break;case dojo.keys.TAB:this.focus[e.shiftKey ? 'previousKey' : 'nextKey'](e);break;case dojo.keys.LEFT_ARROW:if(!this.edit.isEditing()){this.focus.move(0, -1);}break;case dojo.keys.RIGHT_ARROW:if(!this.edit.isEditing()){this.focus.move(0, 1);}break;case dojo.keys.UP_ARROW:if(!this.edit.isEditing()){this.focus.move(-1, 0);}break;case dojo.keys.DOWN_ARROW:if(!this.edit.isEditing()){this.focus.move(1, 0);}break;}},onMouseOver: function(e){// summary:// event fired when mouse is over the grid.// e: decorated event object// contains reference to grid, cell, and rowIndexe.rowIndex == -1 ? this.onHeaderCellMouseOver(e) : this.onCellMouseOver(e);},onMouseOut: function(e){// summary:// event fired when mouse moves out of the grid.// e: decorated event object// contains reference to grid, cell, and rowIndexe.rowIndex == -1 ? this.onHeaderCellMouseOut(e) : this.onCellMouseOut(e);},onMouseOverRow: function(e){// summary:// event fired when mouse is over any row (data or header).// e: decorated event object// contains reference to grid, cell, and rowIndexif(!this.rows.isOver(e.rowIndex)){this.rows.setOverRow(e.rowIndex);e.rowIndex == -1 ? this.onHeaderMouseOver(e) : this.onRowMouseOver(e);}},onMouseOutRow: function(e){// summary:// event fired when mouse moves out of any row (data or header).// e: decorated event object// contains reference to grid, cell, and rowIndexif(this.rows.isOver(-1)){this.onHeaderMouseOut(e);}else if(!this.rows.isOver(-2)){this.rows.setOverRow(-2);this.onRowMouseOut(e);}},// cell eventsonCellMouseOver: function(e){// summary:// event fired when mouse is over a cell.// e: decorated event object// contains reference to grid, cell, and rowIndexdojo.addClass(e.cellNode, this.cellOverClass);},onCellMouseOut: function(e){// summary:// event fired when mouse moves out of a cell.// e: decorated event object// contains reference to grid, cell, and rowIndexdojo.removeClass(e.cellNode, this.cellOverClass);},onCellClick: function(e){// summary:// event fired when a cell is clicked.// e: decorated event object// contains reference to grid, cell, and rowIndexthis.focus.setFocusCell(e.cell, e.rowIndex);this.onRowClick(e);},onCellDblClick: function(e){// summary:// event fired when a cell is double-clicked.// e: decorated event object// contains reference to grid, cell, and rowIndexthis.edit.setEditCell(e.cell, e.rowIndex);this.onRowDblClick(e);},onCellContextMenu: function(e){// summary:// event fired when a cell context menu is accessed via mouse right click.// e: decorated event object// contains reference to grid, cell, and rowIndexthis.onRowContextMenu(e);},onCellFocus: function(inCell, inRowIndex){// summary:// event fired when a cell receives focus.// inCell: object// cell object containing properties of the grid column.// inRowIndex: int// index of the grid rowthis.edit.cellFocus(inCell, inRowIndex);},// row eventsonRowClick: function(e){// summary:// event fired when a row is clicked.// e: decorated event object// contains reference to grid, cell, and rowIndexthis.edit.rowClick(e);this.selection.clickSelectEvent(e);},onRowDblClick: function(e){// summary:// event fired when a row is double clicked.// e: decorated event object// contains reference to grid, cell, and rowIndex},onRowMouseOver: function(e){// summary:// event fired when mouse moves over a data row.// e: decorated event object// contains reference to grid, cell, and rowIndex},onRowMouseOut: function(e){// summary:// event fired when mouse moves out of a data row.// e: decorated event object// contains reference to grid, cell, and rowIndex},onRowContextMenu: function(e){// summary:// event fired when a row context menu is accessed via mouse right click.// e: decorated event object// contains reference to grid, cell, and rowIndexdojo.stopEvent(e);},// header eventsonHeaderMouseOver: function(e){// summary:// event fired when mouse moves over the grid header.// e: decorated event object// contains reference to grid, cell, and rowIndex},onHeaderMouseOut: function(e){// summary:// event fired when mouse moves out of the grid header.// e: decorated event object// contains reference to grid, cell, and rowIndex},onHeaderCellMouseOver: function(e){// summary:// event fired when mouse moves over a header cell.// e: decorated event object// contains reference to grid, cell, and rowIndexdojo.addClass(e.cellNode, this.cellOverClass);},onHeaderCellMouseOut: function(e){// summary:// event fired when mouse moves out of a header cell.// e: decorated event object// contains reference to grid, cell, and rowIndexdojo.removeClass(e.cellNode, this.cellOverClass);},onHeaderClick: function(e){// summary:// event fired when the grid header is clicked.// e: decorated event object// contains reference to grid, cell, and rowIndex},onHeaderCellClick: function(e){// summary:// event fired when a header cell is clicked.// e: decorated event object// contains reference to grid, cell, and rowIndexthis.setSortIndex(e.cell.index);this.onHeaderClick(e);},onHeaderDblClick: function(e){// summary:// event fired when the grid header is double clicked.// e: decorated event object// contains reference to grid, cell, and rowIndex},onHeaderCellDblClick: function(e){// summary:// event fired when a header cell is double clicked.// e: decorated event object// contains reference to grid, cell, and rowIndexthis.onHeaderDblClick(e);},onHeaderCellContextMenu: function(e){// summary:// event fired when a header cell context menu is accessed via mouse right click.// e: decorated event object// contains reference to grid, cell, and rowIndexthis.onHeaderContextMenu(e);},onHeaderContextMenu: function(e){// summary:// event fired when the grid header context menu is accessed via mouse right click.// e: decorated event object// contains reference to grid, cell, and rowIndexdojo.stopEvent(e);},// editingonStartEdit: function(inCell, inRowIndex){// summary:// event fired when editing is started for a given grid cell// inCell: object// cell object containing properties of the grid column.// inRowIndex: int// index of the grid row},onApplyCellEdit: function(inValue, inRowIndex, inFieldIndex){// summary:// event fired when editing is applied for a given grid cell// inValue: string// value from cell editor// inRowIndex: int// index of the grid row// inFieldIndex: int// index in the grid's data model},onCancelEdit: function(inRowIndex){// summary:// event fired when editing is cancelled for a given grid cell// inRowIndex: int// index of the grid row},onApplyEdit: function(inRowIndex){// summary:// event fired when editing is applied for a given grid row// inRowIndex: int// index of the grid row},onCanSelect: function(inRowIndex){// summary:// event to determine if a grid row may be selected// inRowIndex: int// index of the grid row// returns:// true if the row can be selectedreturn true // boolean;},onCanDeselect: function(inRowIndex){// summary:// event to determine if a grid row may be deselected// inRowIndex: int// index of the grid row// returns:// true if the row can be deselectedreturn true // boolean;},onSelected: function(inRowIndex){// summary:// event fired when a grid row is selected// inRowIndex: int// index of the grid rowthis.updateRowStyles(inRowIndex);},onDeselected: function(inRowIndex){// summary:// event fired when a grid row is deselected// inRowIndex: int// index of the grid rowthis.updateRowStyles(inRowIndex);},onSelectionChanged: function(){}}}