<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1276" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I also have an interest in xml-&gt;JTree linking, 
so I tried the sample code, but unfortunately, I am getting a class 
cast</FONT></DIV>
<DIV><FONT face=Arial size=2>exception in SAXHandlerx::endElement() on the 
line...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Elementx e = (Elementx) 
currentElement;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>but I only get this when loading a document from 
file.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Surely this could only work if we had actually 
created an Elementx to populate 'currentElement', I don't see where that is 
done.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I am particularly confused, as the hard-coded 
test-data works, file reading does not.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Ed.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=Phill_Perryman@Mitel.COM 
  href="mailto:Phill_Perryman@Mitel.COM">Phill_Perryman@Mitel.COM</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=jalbers@twc.sshunet.nl 
  href="mailto:jalbers@twc.sshunet.nl">J. Albers</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=jdom-interest@jdom.org 
  href="mailto:jdom-interest@jdom.org">jdom-interest@jdom.org</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, January 27, 2004 1:06 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [jdom-interest] JTree</DIV>
  <DIV><BR></DIV><BR><FONT face=Arial size=2>&gt;&gt;This works great. Though i 
  tried to figure out what is happening but can't quite get it. Could u maybe 
  explain what happens here(or point me to a site which &gt;&gt;explains it), 
  how is the tree like structure made? And why doesn't it work in my piece of 
  code? Als i wonder if it would be easy to also list the attributes and 
  &gt;&gt;labels?</FONT> <BR><BR><FONT face=sans-serif size=2>I don't know of 
  any site which explains it. The underlying principle is "Recursion".</FONT> 
  <BR><BR><FONT face=sans-serif size=2>You start with the root node and then 
  call a method to add the children, the method that adds a child calls a method 
  (actually itself) to add its own children (which calls itself again to add its 
  children, recursively) before moving onto the next element. Trying to work out 
  what level you are on and remember where you are in the tree hierarchy is a 
  nightmare to do when trying to represent it at a flat level. Because the 
  variables in the method call are local to it you can nest the calls without 
  having to keep track of where you are as you get one add children method call 
  per nested element.</FONT> <BR><BR><FONT face=sans-serif size=2>Don't know if 
  I can explain it much better.</FONT> <BR><BR><FONT face=sans-serif size=2>for 
  a document like</FONT> <BR><FONT face=sans-serif size=2>&lt;root&gt;</FONT> 
  <BR><FONT face=sans-serif size=2>&nbsp; &lt;a&gt;</FONT> <BR><FONT 
  face=sans-serif size=2>&nbsp; &nbsp; &lt;x&gt;</FONT> <BR><FONT 
  face=sans-serif size=2>&nbsp; &nbsp; &nbsp; &nbsp;&lt;z/&gt;</FONT> <BR><FONT 
  face=sans-serif size=2>&nbsp; &nbsp; &nbsp;&lt;/x&gt;</FONT> <BR><FONT 
  face=sans-serif size=2>&nbsp; &nbsp; &lt;y/&gt;</FONT> <BR><FONT 
  face=sans-serif size=2>&nbsp; &lt;/a&gt;</FONT> <BR><FONT face=sans-serif 
  size=2>&nbsp; &lt;b/&gt;</FONT> <BR><FONT face=sans-serif 
  size=2>&lt;/root&gt;</FONT> <BR><BR><FONT face=sans-serif size=2>root calls 
  addChildren</FONT> <BR><FONT face=sans-serif size=2>&nbsp; &nbsp;add Children 
  adds a to root and then calls add children (to a)</FONT> <BR><FONT 
  face=sans-serif size=2>&nbsp; &nbsp; &nbsp; &nbsp; add children adds x to a 
  then calls add children (to x)</FONT> <BR><FONT face=sans-serif size=2>&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; add children adds z to x</FONT> <BR><FONT 
  face=sans-serif size=2>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit 
  method</FONT> <BR><FONT face=sans-serif size=2>&nbsp; &nbsp; &nbsp; &nbsp; add 
  children adds y to a</FONT> <BR><FONT face=sans-serif size=2>&nbsp; &nbsp; 
  &nbsp; &nbsp; exit method</FONT> <BR><FONT face=sans-serif size=2>&nbsp; add 
  children adds b to root</FONT> <BR><FONT face=sans-serif size=2>&nbsp; exit 
  method</FONT> <BR><FONT face=sans-serif size=2>end calling sequence</FONT> 
  <BR><BR><FONT face=sans-serif size=2>The Java I base my development on is 
  attached if it is any use.</FONT> <BR><FONT face=sans-serif size=2>The tree 
  note uses the user objects toString method to display the tree node. That is 
  why I use an extended Element (Elementx) class so that I can override the 
  toString method in Element to provide the representation in the tree that I 
  want. There is a simple document viewer that shows the JTree formatting</FONT> 
  <BR><BR><BR></BLOCKQUOTE></BODY></HTML>