<!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>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 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 labels?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Kind regards, </FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; Joachim Albers.</FONT></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@cs.uu.nl 
  href="mailto:jalbers@cs.uu.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> ; <A 
  title=jdom-interest-admin@jdom.org 
  href="mailto:jdom-interest-admin@jdom.org">jdom-interest-admin@jdom.org</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, January 23, 2004 3:31 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [jdom-interest] JTree</DIV>
  <DIV><BR></DIV><BR><FONT face=sans-serif size=2>I had the following from one 
  of my extended element (Elementx) classes, you can replace this with the root 
  note for the tree</FONT> <BR><BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; 
  </TT></FONT><FONT color=#4040c2 size=2><TT>/**</TT></FONT> <BR><FONT 
  size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</TT></FONT><FONT color=#4040c2 
  size=2><TT>*</TT></FONT><FONT size=2><TT> </TT></FONT><FONT color=#4040c2 
  size=2><TT>Returns</TT></FONT><FONT size=2><TT> </TT></FONT><FONT 
  color=#4040c2 size=2><TT>a</TT></FONT><FONT size=2><TT> </TT></FONT><FONT 
  color=#4040c2 size=2><TT>DefaultMutableTreeNode</TT></FONT><FONT size=2><TT> 
  </TT></FONT><FONT color=#4040c2 size=2><TT>for</TT></FONT><FONT size=2><TT> 
  </TT></FONT><FONT color=#4040c2 size=2><TT>use</TT></FONT><FONT size=2><TT> 
  </TT></FONT><FONT color=#4040c2 size=2><TT>in</TT></FONT><FONT size=2><TT> 
  </TT></FONT><FONT color=#4040c2 size=2><TT>a</TT></FONT><FONT size=2><TT> 
  </TT></FONT><FONT color=#4040c2 size=2><TT>JTree</TT></FONT><FONT size=2><TT> 
  </TT></FONT><FONT color=#4040c2 size=2><TT>which</TT></FONT> <BR><FONT 
  size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</TT></FONT><FONT color=#4040c2 
  size=2><TT>*</TT></FONT><FONT size=2><TT> </TT></FONT><FONT color=#4040c2 
  size=2><TT>represents</TT></FONT><FONT size=2><TT> </TT></FONT><FONT 
  color=#4040c2 size=2><TT>the</TT></FONT><FONT size=2><TT> </TT></FONT><FONT 
  color=#4040c2 size=2><TT>element</TT></FONT> <BR><FONT size=2><TT>&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp;</TT></FONT><FONT color=#4040c2 
  size=2><TT>*</TT></FONT><FONT size=2><TT> </TT></FONT><FONT color=#71b2cf 
  size=2><TT><B>@return</B></TT></FONT><FONT size=2><TT> </TT></FONT><FONT 
  color=#4040c2 size=2><TT>DefaultMutableTreeNode</TT></FONT> <BR><FONT 
  size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</TT></FONT><FONT color=#4040c2 
  size=2><TT>*/</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; 
  </TT></FONT><FONT color=#820040 size=2><TT>public</TT></FONT><FONT size=2><TT> 
  DefaultMutableTreeNode getTreeNode() {</TT></FONT> <BR><FONT size=2><TT>&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DefaultMutableTreeNode 
  treeNode = </TT></FONT><FONT color=#820040 size=2><TT>new</TT></FONT><FONT 
  size=2><TT> DefaultMutableTreeNode(</TT></FONT><FONT color=#820040 
  size=2><TT>this</TT></FONT><FONT size=2><TT>);</TT></FONT> <BR><FONT 
  size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  addChildren(treeNode, </TT></FONT><FONT color=#820040 
  size=2><TT>this</TT></FONT><FONT size=2><TT>);</TT></FONT> <BR><FONT 
  size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  </TT></FONT><FONT color=#820040 size=2><TT>return</TT></FONT><FONT size=2><TT> 
  treeNode;</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; 
  }</TT></FONT> <BR><BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; 
  </TT></FONT><FONT color=#4040c2 size=2><TT>/**</TT></FONT> <BR><FONT 
  size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</TT></FONT><FONT color=#4040c2 
  size=2><TT>*</TT></FONT><FONT size=2><TT> </TT></FONT><FONT color=#4040c2 
  size=2><TT>Internal</TT></FONT><FONT size=2><TT> </TT></FONT><FONT 
  color=#4040c2 size=2><TT>function</TT></FONT><FONT size=2><TT> 
  </TT></FONT><FONT color=#4040c2 size=2><TT>to</TT></FONT><FONT size=2><TT> 
  </TT></FONT><FONT color=#4040c2 size=2><TT>support</TT></FONT><FONT 
  size=2><TT> </TT></FONT><FONT color=#4040c2 size=2><TT>get</TT></FONT><FONT 
  size=2><TT> </TT></FONT><FONT color=#4040c2 size=2><TT>tree</TT></FONT><FONT 
  size=2><TT> </TT></FONT><FONT color=#4040c2 size=2><TT>node</TT></FONT> 
  <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</TT></FONT><FONT 
  color=#4040c2 size=2><TT>*/</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; 
  &nbsp; &nbsp; </TT></FONT><FONT color=#820040 
  size=2><TT>private</TT></FONT><FONT size=2><TT> </TT></FONT><FONT 
  color=#820040 size=2><TT>static</TT></FONT><FONT size=2><TT> </TT></FONT><FONT 
  color=#820040 size=2><TT>void</TT></FONT><FONT size=2><TT> 
  addChildren(DefaultMutableTreeNode tn,Elementx element) {</TT></FONT> 
  <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  DefaultMutableTreeNode node;</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List children = 
  element.getChildren();</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Iterator it = 
  children.iterator();</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </TT></FONT><FONT color=#820040 
  size=2><TT>while</TT></FONT><FONT size=2><TT> (it.hasNext()) {</TT></FONT> 
  <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; Elementx child = (Elementx) it.next();</TT></FONT> 
  <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; node = </TT></FONT><FONT color=#820040 
  size=2><TT>new</TT></FONT><FONT size=2><TT> 
  DefaultMutableTreeNode(child);</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  tn.add(node);</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; addChildren(node, 
  child);</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp; };</TT></FONT> <BR><FONT size=2><TT>&nbsp; &nbsp; &nbsp; 
  &nbsp; }</TT></FONT><FONT face=sans-serif size=2><BR><BR>/Phill<BR>IS Dept, 
  Software Engineer.<BR>phill_perryman@mitel.com<BR>http://www.mitel.com<BR>Tel: 
  +44 1291 436023</FONT> <BR><BR><BR>
  <TABLE width="100%">
    <TBODY>
    <TR vAlign=top>
      <TD>
      <TD><FONT face=sans-serif size=1><B>"J. Albers" 
        &lt;jalbers@cs.uu.nl&gt;</B></FONT> <BR><FONT face=sans-serif 
        size=1>Sent by: jdom-interest-admin@jdom.org</FONT> 
        <P><FONT face=sans-serif size=1>23/01/2004 14:14</FONT> <BR></P>
      <TD><FONT face=Arial size=1>&nbsp; &nbsp; &nbsp; &nbsp; </FONT><BR><FONT 
        face=sans-serif size=1>&nbsp; &nbsp; &nbsp; &nbsp; To: &nbsp; &nbsp; 
        &nbsp; &nbsp;&lt;jdom-interest@jdom.org&gt;</FONT> <BR><FONT 
        face=sans-serif size=1>&nbsp; &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; 
        &nbsp; &nbsp;</FONT> <BR><FONT face=sans-serif size=1>&nbsp; &nbsp; 
        &nbsp; &nbsp; Subject: &nbsp; &nbsp; &nbsp; &nbsp;[jdom-interest] 
        JTree</FONT></TR></TBODY></TABLE><BR><BR><BR><FONT face="Courier New" 
  size=2>Hey,<BR><BR>I want to list an XML file into &nbsp;a JTree, so that it 
  has the same hierarchy<BR>as the original document. The code now does<BR>only 
  list all elements in one row, but no nesting. Does anyone know how i<BR>can 
  get the elements to be outputted with the same<BR>nesting as in the XML 
  file?<BR><BR>Grtz, Joachim.<BR><BR><BR>private static void 
  listElements(Element e)<BR>{<BR>&nbsp;int depth = 
  0;<BR>&nbsp;DefaultMutableTreeNode newelements = 
  null;<BR>&nbsp;DefaultMutableTreeNode newchildren = 
  null;<BR>&nbsp;System.out.println("*Element, name:" + e.getName() +<BR>&nbsp; 
  ", text:" + e.getText()) ;<BR>&nbsp;newelements = new 
  DefaultMutableTreeNode(e.getName());<BR>&nbsp;Main.elements.add(newelements);<BR>&nbsp;if(e.getText() 
  != "")<BR>&nbsp;{<BR>&nbsp; newchildren = new 
  DefaultMutableTreeNode(e.getText());<BR>&nbsp; 
  Main.elements.add(newchildren);<BR>&nbsp;}<BR><BR><BR>&nbsp;//List all 
  attributes<BR>&nbsp;List as = e.getAttributes();<BR>&nbsp;for (Iterator i = 
  as.iterator();i.hasNext();)<BR>&nbsp;{<BR>&nbsp; depth++;<BR>&nbsp; Attribute 
  a = (Attribute)i.next();<BR>&nbsp; System.out.println("*Attribute, name:" + 
  a.getName() +<BR>&nbsp; &nbsp;", value:" + a.getValue()) 
  ;<BR>&nbsp;}<BR><BR>&nbsp;//List all children<BR>&nbsp;List c = 
  e.getChildren();<BR><BR>&nbsp;for (Iterator i = 
  c.iterator();i.hasNext();)<BR>&nbsp;{<BR>&nbsp; depth++;<BR>&nbsp; 
  System.out.println("depth = "+depth);<BR>&nbsp; Element n = 
  (Element)i.next();<BR>&nbsp; 
  listElements(n);<BR>&nbsp;}<BR>}<BR><BR>_______________________________________________<BR>To 
  control your jdom-interest 
  membership:<BR>http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com<BR></FONT><BR><BR></BLOCKQUOTE></BODY></HTML>