summaryrefslogtreecommitdiff
path: root/js/dojo/dojox/grid/_RowManager.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/dojo/dojox/grid/_RowManager.js')
-rw-r--r--js/dojo/dojox/grid/_RowManager.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/js/dojo/dojox/grid/_RowManager.js b/js/dojo/dojox/grid/_RowManager.js
new file mode 100644
index 0000000..c840464
--- /dev/null
+++ b/js/dojo/dojox/grid/_RowManager.js
@@ -0,0 +1,64 @@
+//>>built
+define("dojox/grid/_RowManager", [
+ "dojo/_base/declare",
+ "dojo/_base/lang",
+ "dojo/dom-class"
+], function(declare, lang, domClass){
+
+ var setStyleText = function(inNode, inStyleText){
+ if(inNode.style.cssText == undefined){
+ inNode.setAttribute("style", inStyleText);
+ }else{
+ inNode.style.cssText = inStyleText;
+ }
+ };
+
+ return declare("dojox.grid._RowManager", null, {
+ // Stores information about grid rows. Owned by grid and used internally.
+ constructor: function(inGrid){
+ this.grid = inGrid;
+ },
+ linesToEms: 2,
+ overRow: -2,
+ // styles
+ prepareStylingRow: function(inRowIndex, inRowNode){
+ return {
+ index: inRowIndex,
+ node: inRowNode,
+ odd: Boolean(inRowIndex&1),
+ selected: !!this.grid.selection.isSelected(inRowIndex),
+ over: this.isOver(inRowIndex),
+ customStyles: "",
+ customClasses: "dojoxGridRow"
+ };
+ },
+ styleRowNode: function(inRowIndex, inRowNode){
+ var row = this.prepareStylingRow(inRowIndex, inRowNode);
+ this.grid.onStyleRow(row);
+ this.applyStyles(row);
+ },
+ applyStyles: function(inRow){
+ var i = inRow;
+
+ i.node.className = i.customClasses;
+ var h = i.node.style.height;
+ setStyleText(i.node, i.customStyles + ';' + (i.node._style||''));
+ i.node.style.height = h;
+ },
+ updateStyles: function(inRowIndex){
+ this.grid.updateRowStyles(inRowIndex);
+ },
+ // states and events
+ setOverRow: function(inRowIndex){
+ var last = this.overRow;
+ this.overRow = inRowIndex;
+ if((last!=this.overRow)&&(lang.isString(last) || last >= 0)){
+ this.updateStyles(last);
+ }
+ this.updateStyles(this.overRow);
+ },
+ isOver: function(inRowIndex){
+ return (this.overRow == inRowIndex && !domClass.contains(this.grid.domNode, "dojoxGridColumnResizing"));
+ }
+ });
+}); \ No newline at end of file