<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>RE: [jdom-interest] JDOMTreeModel</TITLE>
</HEAD>
<BODY>
<BR>

<P><FONT SIZE=2>Yup.</FONT>
</P>

<P><FONT SIZE=2>www.xmlmiddleware.net</FONT>
</P>

<P><FONT SIZE=2>It's hung off my existing softfab.com site</FONT>
</P>

<P><FONT SIZE=2>There is a sourceforge page which contains the download:</FONT>
</P>

<P><FONT SIZE=2><A HREF="http://sourceforge.net/projects/xmlmiddleware/" TARGET="_blank">http://sourceforge.net/projects/xmlmiddleware/</A></FONT>
</P>

<P><FONT SIZE=2>Adam</FONT>
</P>

<P><FONT SIZE=2>&gt; -----Original Message-----</FONT>
<BR><FONT SIZE=2>&gt; From: Sikkin.com Support [<A HREF="mailto:support@sikkin.com">mailto:support@sikkin.com</A>]</FONT>
<BR><FONT SIZE=2>&gt; Sent: 26 June 2002 20:48</FONT>
<BR><FONT SIZE=2>&gt; To: adam flinton</FONT>
<BR><FONT SIZE=2>&gt; Subject: Re: [jdom-interest] JDOMTreeModel</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Adam,</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; I don't find &quot;binaries&quot; newsgroup in news.barkto.com</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Could you give me an another address to download ypur work</FONT>
<BR><FONT SIZE=2>&gt; Thanks in advance</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Pierre-Gilles Raynaud</FONT>
<BR><FONT SIZE=2>&gt; Technologies support</FONT>
<BR><FONT SIZE=2>&gt; Sikkin.com</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; adam flinton wrote:</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Dear JDOM People,</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Please scroll down to the &quot;JDOMTreeModel:&quot; bit.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; -----------------------------------------------------</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Dear All,</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; After much work over the Xmas period......I have the Alpha of the </FONT>
<BR><FONT SIZE=2>&gt; &gt; XMLDBMS Mapbuilder. Actually I had it a while ago but then </FONT>
<BR><FONT SIZE=2>&gt; work + home + </FONT>
<BR><FONT SIZE=2>&gt; &gt; a load of things stopped me writing this document......</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; This has been build against: JDK 1.2.2_006, JDOM Beta 7.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; You will need to include your DB JDBC drivers .zip or .jar in your </FONT>
<BR><FONT SIZE=2>&gt; &gt; classpath.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; I am including the XMLDBMS version 1.1 code I have been </FONT>
<BR><FONT SIZE=2>&gt; working against </FONT>
<BR><FONT SIZE=2>&gt; &gt; (Ron could you do a merge as I don't think I've changed anything in </FONT>
<BR><FONT SIZE=2>&gt; &gt; that). You can get the JDOM code from www.jdom.org.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Also in the zip is my test Properties file (MapProps.txt) &amp; a test </FONT>
<BR><FONT SIZE=2>&gt; &gt; Settings.xml</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; You can get this code from the binaries newsgroup in news.barkto.com</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Look for a posting called &quot;XMLDBMS Mapbuilder Alpha 1&quot;.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The Server Code is in there as well.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; I have used the Version 1 DTD as a base however it should be easily </FONT>
<BR><FONT SIZE=2>&gt; &gt; capable of moving to any Map Document (or indeed any XML Document).</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The main thing which needs looking at (apart from Version </FONT>
<BR><FONT SIZE=2>&gt; 2.0 Support) </FONT>
<BR><FONT SIZE=2>&gt; &gt; is simply Interfaces &amp; where to use them so as to ensure that the </FONT>
<BR><FONT SIZE=2>&gt; &gt; Mapbuilder can load the right classes to deal with a </FONT>
<BR><FONT SIZE=2>&gt; specific Document </FONT>
<BR><FONT SIZE=2>&gt; &gt; type (inc the relevant Menu's, Actions, JInternalFrame </FONT>
<BR><FONT SIZE=2>&gt; Handlers etc). </FONT>
<BR><FONT SIZE=2>&gt; &gt; It's not much work however I simply wanted to chuck this </FONT>
<BR><FONT SIZE=2>&gt; out so people </FONT>
<BR><FONT SIZE=2>&gt; &gt; could play (&amp; possibly even help).</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; There is a completely updated Properties Editor which is </FONT>
<BR><FONT SIZE=2>&gt; hopefully a </FONT>
<BR><FONT SIZE=2>&gt; &gt; heck of a lot better than the old one (&amp; can cope with </FONT>
<BR><FONT SIZE=2>&gt; using different </FONT>
<BR><FONT SIZE=2>&gt; &gt; class'es for version 1 &amp; 2 etc.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The Properties editor is where any testing of mapfile,XSLT, </FONT>
<BR><FONT SIZE=2>&gt; JMS etc. is </FONT>
<BR><FONT SIZE=2>&gt; &gt; doen from At the moment there is a mini &quot;test&quot; GUI which is </FONT>
<BR><FONT SIZE=2>&gt; again simply </FONT>
<BR><FONT SIZE=2>&gt; &gt; not wired up yet because of time constraints. Again it is simple &amp; </FONT>
<BR><FONT SIZE=2>&gt; &gt; should be rapid.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The Mapbuilder is a MapDesigner. Again some bits aren't </FONT>
<BR><FONT SIZE=2>&gt; wired up (e.g. </FONT>
<BR><FONT SIZE=2>&gt; &gt; the &quot;links&quot; view (i.e. a tree of classmaps held together by their </FONT>
<BR><FONT SIZE=2>&gt; &gt; relationships with each other).</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The DB part produces a fairly complete JDBC Picture as an </FONT>
<BR><FONT SIZE=2>&gt; XML Doc which </FONT>
<BR><FONT SIZE=2>&gt; &gt; you can save etc. It acts as a Cache. Some things need to </FONT>
<BR><FONT SIZE=2>&gt; be actively </FONT>
<BR><FONT SIZE=2>&gt; &gt; selected via it's JTree Menus (e.g. SchemaDetails has an </FONT>
<BR><FONT SIZE=2>&gt; Option to get </FONT>
<BR><FONT SIZE=2>&gt; &gt; all procedures, an getting fileds etc for a given table requires a </FONT>
<BR><FONT SIZE=2>&gt; &gt; selection.)</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Again many things are lurking e.g. Possibly not every </FONT>
<BR><FONT SIZE=2>&gt; element refreshes </FONT>
<BR><FONT SIZE=2>&gt; &gt; correctly etc. Find the probs.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The code that builds the XML view of your JDBC enabled DB is in:</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; org.xmlmiddleware.xmldbms.gui.treebuilder.JDBCTreeBuilder</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; How to Use:</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; It uses the Std Version 1.1 Properties interface as such to </FONT>
<BR><FONT SIZE=2>&gt; start the </FONT>
<BR><FONT SIZE=2>&gt; &gt; MapBuilder you simply call (from my .bat file)</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; SET JARHOME=D:\aat\Jars</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; java -cp </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; %JARHOME%\xmldbms.jar;%JARHOME%\classes12.zip;%JARHOME%\db2jav</FONT>
<BR><FONT SIZE=2>&gt; a.zip;%JARHOME%\xerces.jar;%JARHOME%\xalan.jar;%JARHOME%\jaxp.</FONT>
<BR><FONT SIZE=2>&gt; jar;%JARHOME%\jdom.jar;.; </FONT>
<BR><FONT SIZE=2>&gt; &gt; org.xmlmiddleware.xmldbms.gui.mapbuilder.Mapbuilder </FONT>
<BR><FONT SIZE=2>&gt; File=MapProps.txt</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The PropertiesEditor can be started either from the </FONT>
<BR><FONT SIZE=2>&gt; MapBuilder or on </FONT>
<BR><FONT SIZE=2>&gt; &gt; it's own e.g.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; SET JARHOME=D:\aat\Jars</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; java -cp </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; %JARHOME%\xmldbms.jar;%JARHOME%\xerces.jar;%JARHOME%\xalan.jar</FONT>
<BR><FONT SIZE=2>&gt; ;%JARHOME%\jaxp.jar;%JARHOME%\jdom.jar;.; </FONT>
<BR><FONT SIZE=2>&gt; &gt; org.xmlmiddleware.xmldbms.gui.PropertiesEditor File=MapProps.txt</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; It uses a settings file &amp; can use a DBCache XML file thus in the </FONT>
<BR><FONT SIZE=2>&gt; &gt; Properties File there are 2 new values:</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; settingsfile</FONT>
<BR><FONT SIZE=2>&gt; &gt; e.g. settingsfile=D\:\\Move\\aat\\Settings.xml</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; If this is not set then it will look into it's local dir for a file </FONT>
<BR><FONT SIZE=2>&gt; &gt; called Settings.xml</FONT>
<BR><FONT SIZE=2>&gt; &gt; If this is not found then it will create a new (blank) settings file</FONT>
<BR><FONT SIZE=2>&gt; &gt; And</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; dbfile</FONT>
<BR><FONT SIZE=2>&gt; &gt; e.g. dbfile=D\:\\Move\\aat\\db.xml</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; If this is not set then it will look into it's local dir for a file </FONT>
<BR><FONT SIZE=2>&gt; &gt; called db.xml</FONT>
<BR><FONT SIZE=2>&gt; &gt; If this is not found then it will create a new (blank) DBCache</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; I have not yet produced a DTD for the settings simply </FONT>
<BR><FONT SIZE=2>&gt; because I was not </FONT>
<BR><FONT SIZE=2>&gt; &gt; sure it has been finished. If people want I will run my </FONT>
<BR><FONT SIZE=2>&gt; Settings.xml off </FONT>
<BR><FONT SIZE=2>&gt; &gt; against a DTD from Document tool.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The Elements which I have Written JInternalFrames for are:</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; ClassMap - org.xmlmiddleware.xmldbms.gui.v1.ClassMap</FONT>
<BR><FONT SIZE=2>&gt; &gt; IgnoreRoot - org.xmlmiddleware.xmldbms.gui.v1.IgnoreRoot</FONT>
<BR><FONT SIZE=2>&gt; &gt; Options - org.xmlmiddleware.xmldbms.gui.v1.Options</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Equally you can select a table from the JDBC view &amp; create </FONT>
<BR><FONT SIZE=2>&gt; a std ClassMap.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; What makes (hopefully) the whole thing so extensible??? </FONT>
<BR><FONT SIZE=2>&gt; Well as they say </FONT>
<BR><FONT SIZE=2>&gt; &gt; the fewer the lines of code the more thought is required &amp; </FONT>
<BR><FONT SIZE=2>&gt; what you're </FONT>
<BR><FONT SIZE=2>&gt; &gt; seeing here is about version 8...where all the others were </FONT>
<BR><FONT SIZE=2>&gt; scrapped. The </FONT>
<BR><FONT SIZE=2>&gt; &gt; key is the JDOMTreeModel.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; JDOMTreeModel:</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; I have been looking at the JTree &amp; JDOM. We have 2 </FONT>
<BR><FONT SIZE=2>&gt; different forms of </FONT>
<BR><FONT SIZE=2>&gt; &gt; XML Mapfile (version 1.0 &amp; 2.0) &amp; thus I had to cope with </FONT>
<BR><FONT SIZE=2>&gt; the idea of </FONT>
<BR><FONT SIZE=2>&gt; &gt; multiple Docs. Also I built some code which creates a </FONT>
<BR><FONT SIZE=2>&gt; JDOM/XML &quot;picture&quot; </FONT>
<BR><FONT SIZE=2>&gt; &gt; of a Database using the JDBC DB &amp; ResultSet Metadata &amp; had </FONT>
<BR><FONT SIZE=2>&gt; a settings </FONT>
<BR><FONT SIZE=2>&gt; &gt; Doc thus I had 4 Docs. So I wanted an easy &amp; generic way to bind a </FONT>
<BR><FONT SIZE=2>&gt; &gt; JDOM/XML Doc to a JTree.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Thus I have created a JDOMTreeModel which extends DefaultTreeModel.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; It uses a class called ElementNode which extends BasicNode </FONT>
<BR><FONT SIZE=2>&gt; which in turn </FONT>
<BR><FONT SIZE=2>&gt; &gt; extends javax.swing.tree.DefaultMutableTreeNode.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The BasicNode is there because at some point I may need </FONT>
<BR><FONT SIZE=2>&gt; other sorts of </FONT>
<BR><FONT SIZE=2>&gt; &gt; Nodes.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; An Element Node Contains that element. It also overloads a </FONT>
<BR><FONT SIZE=2>&gt; some methods </FONT>
<BR><FONT SIZE=2>&gt; &gt; e.g. getName such that (in getName) it returns the Value in </FONT>
<BR><FONT SIZE=2>&gt; an element </FONT>
<BR><FONT SIZE=2>&gt; &gt; (if there is one) or if there isn't then it returns the </FONT>
<BR><FONT SIZE=2>&gt; Element Name. It </FONT>
<BR><FONT SIZE=2>&gt; &gt; also has a method called getElement which simply returns </FONT>
<BR><FONT SIZE=2>&gt; the element for </FONT>
<BR><FONT SIZE=2>&gt; &gt; that Node.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; The best idea is to have a static Node as a field in your </FONT>
<BR><FONT SIZE=2>&gt; GUI Class that </FONT>
<BR><FONT SIZE=2>&gt; &gt; whenever the mouse reports that a Node has been selected </FONT>
<BR><FONT SIZE=2>&gt; you simply set </FONT>
<BR><FONT SIZE=2>&gt; &gt; the &quot;hidden node&quot; to the selected Node. This gives you a </FONT>
<BR><FONT SIZE=2>&gt; single point to </FONT>
<BR><FONT SIZE=2>&gt; &gt; query against.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; This makes doing any Swing/JTree based GUI using an XML </FONT>
<BR><FONT SIZE=2>&gt; Document as a </FONT>
<BR><FONT SIZE=2>&gt; &gt; base so easy......</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; example:</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; //To setup a JTM - It is usefull to provide a root node when </FONT>
<BR><FONT SIZE=2>&gt; &gt; constructing even if you are then going</FONT>
<BR><FONT SIZE=2>&gt; &gt; // to replace it via the document you're feeding in.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; JDOMTreeModel JTM = new JDOMTreeModel(new ElementNode(new </FONT>
<BR><FONT SIZE=2>&gt; &gt; Element(&quot;Root&quot;)));</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; // You then feed in your JDOM Doc</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; JTM.setDoc(Doc);</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; // Then you simply use it as the Model for your JTree e.g.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; JTree DBTree = new JTree();</FONT>
<BR><FONT SIZE=2>&gt; &gt; DBTree.setModel(JTM);</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; &amp; You're done.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Other stuff:</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; I have created a std TreeListener</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; public class BasicTreeListener</FONT>
<BR><FONT SIZE=2>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; extends java.awt.event.MouseAdapter</FONT>
<BR><FONT SIZE=2>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; implements</FONT>
<BR><FONT SIZE=2>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; javax.swing.event.TreeExpansionListener,</FONT>
<BR><FONT SIZE=2>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; javax.swing.event.TreeSelectionListener</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Useage Example:</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BasicTreeListener BTL = new BasicTreeListener( getDBTree(), </FONT>
<BR><FONT SIZE=2>&gt; &gt; getTreePopupMenu());</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getDBTree().addTreeExpansionListener( BTL );</FONT>
<BR><FONT SIZE=2>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getDBTree().addTreeSelectionListener( BTL );</FONT>
<BR><FONT SIZE=2>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getDBTree().addMouseListener( BTL );</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getDBTree().setEditable(false);</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; All you have left to do....is decide what menu's you want </FONT>
<BR><FONT SIZE=2>&gt; adding onto </FONT>
<BR><FONT SIZE=2>&gt; &gt; the JTree &amp; thus the ActionPerformed.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Please look at </FONT>
<BR><FONT SIZE=2>&gt; &gt; org.xmlmiddleware.xmldbms.gui.mapbuilder.Mapbuilder.initTree()</FONT>
<BR><FONT SIZE=2>&gt; &gt; &amp;</FONT>
<BR><FONT SIZE=2>&gt; &gt; org.xmlmiddleware.xmldbms.gui.mapbuilder.Mapbuilder.addMenus()</FONT>
<BR><FONT SIZE=2>&gt; &gt; &amp; finally</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; org.xmlmiddleware.xmldbms.gui.mapbuilder.Mapbuilder.actionPerf</FONT>
<BR><FONT SIZE=2>&gt; ormed(ActionEvent) </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; to see how to do this.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; So if you want to build something which can view any JDOM </FONT>
<BR><FONT SIZE=2>&gt; Doc (&amp; thus </FONT>
<BR><FONT SIZE=2>&gt; &gt; any XML) as a JTree and then have menu actions coming off </FONT>
<BR><FONT SIZE=2>&gt; from the Tree </FONT>
<BR><FONT SIZE=2>&gt; &gt; it couldn't get much easier. In essence your GUI can edit </FONT>
<BR><FONT SIZE=2>&gt; an Element </FONT>
<BR><FONT SIZE=2>&gt; &gt; (e.g. I am using code within JInternalFrames) &amp; then the </FONT>
<BR><FONT SIZE=2>&gt; JDOM Doc is </FONT>
<BR><FONT SIZE=2>&gt; &gt; automatically updated.</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Enjoy</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; &gt; Adam</FONT>
<BR><FONT SIZE=2>&gt; &gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
</P>

<P><FONT SIZE=2>--</FONT>
<BR><FONT SIZE=2>Adam Flinton </FONT>
</P>

</BODY>
</HTML>