Update of /cvsroot/jwebunit/jWebUnit/src/net/sourceforge/jwebunit
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15415/src/net/sourceforge/jwebunit

Modified Files:
        TextAndElementWalker.java 
Added Files:
        TextAndElementWalkerReverse.java 
Log Message:
Added possibility to walk DOM tree in reverse order, to find elements like 
checkboxes placed before the text label.

--- NEW FILE: TextAndElementWalkerReverse.java ---
package net.sourceforge.jwebunit;

import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

/**
 * Walks over a DOM subtree in reverse order associate labels with preceding 
element.
 */
public class TextAndElementWalkerReverse extends TextAndElementWalker {

    public TextAndElementWalkerReverse(Element root, String[] tags) {
        super(root, tags);
    }

    protected void traverse(NodeList children) {
        for (int i = children.getLength() - 1; i >= 0; i--) {
            walk(children.item(i));
        }
    }

}

Index: TextAndElementWalker.java
===================================================================
RCS file: 
/cvsroot/jwebunit/jWebUnit/src/net/sourceforge/jwebunit/TextAndElementWalker.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** TextAndElementWalker.java   4 Jul 2003 01:51:16 -0000       1.1
--- TextAndElementWalker.java   22 Dec 2005 16:19:11 -0000      1.2
***************
*** 25,29 ****
      }
  
!     private void walk(Node node) {
          if (node instanceof CharacterData) {
              currentText.append(((CharacterData) node).getData());
--- 25,29 ----
      }
  
!     protected void walk(Node node) {
          if (node instanceof CharacterData) {
              currentText.append(((CharacterData) node).getData());
***************
*** 34,44 ****
              } else {
                  NodeList children = node.getChildNodes();
!                 for (int i = 0; i < children.getLength(); i++) {
!                     walk(children.item(i));
!                 }
              }
          }
      }
  
      private boolean matches(String tag) {
          for (int i = 0; i < tags.length; i++) {
--- 34,48 ----
              } else {
                  NodeList children = node.getChildNodes();
!                 traverse(children);
              }
          }
      }
  
+     protected void traverse(NodeList children) {
+         for (int i = 0; i < children.getLength(); i++) {
+             walk(children.item(i));
+         }
+     }
+ 
      private boolean matches(String tag) {
          for (int i = 0; i < tags.length; i++) {



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Jwebunit-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jwebunit-development

Reply via email to