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
+ // <tbody>s
+ var tbodies = table.getElementsByTagName("tbody");
+
+ // and iterate through them...
+ for (var h = 0; h < tbodies.length; h++) {
+
+ // find all the <tr> 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