Scarab commit: svn commit: r10710 - trunk/src/webapp/scripts/guiUtils.js

Hussayn Dabbous <[email protected]>
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
Author: dabbous
Date: 2009-03-28 10:29:06-0700
New Revision: 10710

Added:
   trunk/src/webapp/scripts/guiUtils.js

Log:
Experimental support for zebra tables (still does not work yet).

Added: trunk/src/webapp/scripts/guiUtils.js
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/webapp/scripts/guiUtils.js?view=markup&pathrev=10710
==============================================================================
--- (empty file)
+++ trunk/src/webapp/scripts/guiUtils.js	2009-03-28 10:29:06-0700
@@ -0,0 +1,70 @@
+  // this function is needed to work around 
+  // a bug in IE related to element attributes
+  function hasClass(obj) {
+     var result = false;
+     if (obj.getAttributeNode("class") != null) {
+         result = obj.getAttributeNode("class").value;
+     }
+     return result;
+  }   
+
+ function stripe(id) {
+
+    // the flag we'll use to keep track of 
+    // whether the current row is odd or even
+    var even = false;
+  
+    // if arguments are provided to specify the colours
+    // of the even & odd rows, then use the them;
+    // otherwise use the following defaults:
+    var evenColor = arguments[1] ? arguments[1] : "#fff";
+    var oddColor = arguments[2] ? arguments[2] : "#eee";
+  
+    // obtain a reference to the desired table
+    // if no such table exists, abort
+    var table = document.getElementById(id);
+    if (! table) { return; }
+    
+    // by definition, tables can have more than one tbody
+    // element, so we'll have to get the list of child
+    // &lt;tbody&gt;s 
+    var tbodies = table.getElementsByTagName("tbody");
+
+    // and iterate through them...
+    for (var h = 0; h < tbodies.length; h++) {
+    
+     // find all the &lt;tr&gt; elements... 
+      var trs = tbodies[h].getElementsByTagName("tr");
+      
+      // ... and iterate through them
+      for (var i = 0; i < trs.length; i++) {
+
+        // avoid rows that have a class attribute
+        // or backgroundColor style
+        if (! hasClass(trs[i]) &&
+            ! trs[i].style.backgroundColor) {
+ 		  
+          // get all the cells in this row...
+          var tds = trs[i].getElementsByTagName("td");
+        
+          // and iterate through them...
+          for (var j = 0; j < tds.length; j++) {
+        
+            var mytd = tds[j];
+
+            // avoid cells that have a class attribute
+            // or backgroundColor style
+            if (! hasClass(mytd) &&
+                ! mytd.style.backgroundColor) {
+        
+              mytd.style.backgroundColor =
+                even ? evenColor : oddColor;
+            
+            }
+          }
+        }
+        // flip from odd to even, or vice-versa
+        even =  ! even;
+      }
+    }
+  }

------------------------------------------------------
http://scarab.tigris.org/ds/viewMessage.do?dsForumId=3577&dsMessageId=1458711
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.