Saving a Rendered tree as XML file

I am making a gui mainly based on jtrees. One tree i created adding defaulttreenodes. This I am able to save as XML code and retrieve also.
Another tree, I made by rendering its node as Jtable. But this tree I am not able to save as XML as the one before.
It gives Instantiation Exception error. Can anybody say the reason and give an alternative method for saving and retrieiving ?

Quadruple-posting. If you want to answer lets keep the discussion in this posting:
[http://forum.java.sun.com/thread.jspa?threadID=5282364]
If you want help in the future, I suggest you learn how to use the forum properly. That means a single posting. If you make a mistake you can always reply to your posting stating you made a mistake.

Similar Messages

  • How to convert DOM Tree in XML File

    Hi there,
    I am successful to build a DOM tree in memory where i am adding elements. Now after all this i want to make a XML file of that DOM representation. Now, i am confused with my code that how to transfer DOM structure to xml file ? A small code is attached herewith ?
    doc = db.newDocument();
                   doc.normalizeDocument();
                   doc.setXmlVersion("1.0");
                   doc.createComment("Created By: Sachin Kulkarni");
                   Element rn = doc.createElement("RootNode");
                   Element n1 = doc.createElement("A1");
                   ((Node)n1).setNodeValue("Element A1");
                   Element n11 = doc.createElement("A11");
                   ((Node)n11).setNodeValue("Element A11");
                   Element n12 = doc.createElement("A12");
                   ((Node)n12).setNodeValue("Element A12");
                   ((Node)n1).appendChild( ((Node)n11) );
                   ((Node)n1).appendChild( ((Node)n12) );
                   Element n2 = doc.createElement("A2");
                   ((Node)n2).setNodeValue("Element A2");
                   Element n3 = doc.createElement("A3");
                   ((Node)n3).setNodeValue("Element A3");
                   ((Node)rn).appendChild( ((Node)n1) );
                   ((Node)rn).appendChild( ((Node)n2) );
                   ((Node)rn).appendChild( ((Node)n3) );
    //creating the xml file
                   Source source = new DOMSource((Element) doc.getElementsByTagName("RootNode").item(0));
                   StringWriter out = new StringWriter();
                   StreamResult result = new StreamResult(out);
                   Transformer transformer = TransformerFactory.newInstance().newTransformer();
                   transformer.setOutputProperty("encoding", "iso-8859-1");
                   transformer.setOutputProperty("indent", "yes");
                   //transformer.setOutputProperty("test.xml","1");
                   //transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
                   transformer.transform(source,result);
                   result.getWriter().toString();
    ==================
    Is it any problem with the implementation ? How to use fileoutputstream with this ?

    I have done like this:
    DocumentBuilderFactory docBuildFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = docBuildFactory.newDocumentBuilder();
    Document doc = builder.newDocument();
    Element root = (Element)doc.createElement("Root");
    doc.appendChild(root);
    Element address = (Element)doc.createElement("Address");
    address.appendChild((Element)doc.createElement("Street"));
    address.appendChild((Element)doc.createElement("PostCode"));
    address.appendChild((Element)doc.createElement("Town"));
    Element country = (Element)doc.createElement("Country");
    country.setAttribute("type","EU");
    Text cname = doc.createTextNode("Spain");
    country.appendChild(cname);
    address.appendChild(country);
    root.appendChild(address);
    TransformerFactory tranFactory = TransformerFactory.newInstance();
    Transformer aTransformer = tranFactory.newTransformer();
    aTransformer.setOutputProperty(OutputKeys.INDENT, "yes");
    Source src = new DOMSource(doc);
    Result dest = new StreamResult(new FileOutputStream(new File("test.xml")));
    aTransformer.transform(src, dest);

  • Automate the process of saving Framemaker documents (*.fm) as Xml Files

    Hi,
    I am new to framemaker. We have a list of Framemaker document files (*.fm files) coming  into a folder.  We need to pick up these files and convert to xml format (same as the saveAs opertion from the File menu).
    I have written the follwing function to Save fm files to xml
    Code to Save fm files to xml files
    function saveAsXml (doc) {
       // Get required parameters for the save function.
        var params = GetSaveDefaultParams();
        var returnParamsp = new PropVals();
        // Replace the .fm extension with .mif.
        var saveName = doc.Name.replace (/\.[^\.\\]+$/,".xml");
        var i = GetPropIndex(params, Constants.FS_FileType);
        params[i].propVal.ival = Constants.FV_SaveFmtXml;
        // Save the document as XML.
        doc.Save(saveName, params, returnParamsp);
    How to automate this process so that code checks -
    1) New fm files in the folder
    2) Saves the fm file as xml
    3) Moves the saved fm file to a different folder
    Thanks,
    GC
    [Message moved to Scripting Forum by moderator]

    Have a look at the sample script below. The "while" loop waits for the specified number of milliseconds, then reads the contents of a directory and processes every individual file in the directory. In my example, it just prints the file path to the console. You would replace this part with your Open / Save as / Move sequence.
    For more file system commands, refer to Adobe's Javascript Tools Guide, "File object functions".
    var stop = false;
    while( stop==false ) {
        // Wait for 20.000 ms
        $.sleep(20000);
        var fld = new Folder("c:/incoming");
        var filesInFld = fld.getFiles("*.fm");
        for(var f=0; f < filesInFld.length; f++) {
            // process the individual file
            $.writeln(filesInFld[f]);
        // Exit the  loop after 19:00
        var time = new Date();
        if( time.getHours() > 19 ) stop = true;

  • Java Tree's & XML Files ??

    Hi ye's -
    Listen I'm a little stuck - and need yer help ??? If ye's can .........please -
    The problem is this -
    I have a Massive XML File containing all the different Categories, Tags, Tag Descriptions, Indicators and valid Subfields, Repeatable Subfields.
    Now - I need to build a Tree to illustrate all this information - however within my code I don't want to Compare it against the elements int the XML file since I'll have tonnes of different elements, making my code enormous -
    Is there a way I can code in java to loop through the XML file and build up my Tree as it goes along ????
    Here is a sample of the code I was using - but surely theres an easier way ? Can't keep continuing like this ;o(
    Lorraine
    public void parseDomTreeMarc(Element rootElement)
    NodeList BiblioTags = rootElement.getChildNodes();
    DefaultMutableTreeNode Category = null;
    DefaultMutableTreeNode Tag = null;
    for(int i = 0; i < BiblioTags.getLength(); i++)
         if(BiblioTags.item(i).getNodeName().compareTo("Title") == 0)
              NodeList CategoriesList = BiblioTags.item(i).getChildNodes();
              Category = new DefaultMutableTreeNode(CategoriesList.item(i).getNodeValue());
              for(int j = 0; j < CategoriesList.getLength(); j++)
                   if(CategoriesList.item(j).getNodeName().compareTo("TagValue") == 0)
                        NodeList TagList = CategoriesList.item(j).getChildNodes();
                        for(int k = 0; k < TagList.getLength(); k++)
                             switch(TagList.item(k).getNodeType())
                                  case Node.TEXT_NODE:
                                  if(TagList.item(k).getNodeValue().compareTo("") != 0)
                                       Tag = new DefaultMutableTreeNode(TagList.item(k).getNodeValue());
                                       Category.add(Tag);
                             if(TagList.item(k).getNodeName().compareTo("TitleDescription") == 0)
                                       etc...
                                       doing same piece of code for all elements more or less ...
         //Create Marc Tree
    final JTree marcTree = new JTree(Category);
    marcTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    JScrollPane treeView1 = new JScrollPane(marcTree);
    this.getContentPane().add(treeView1, new XYConstraints(10, 350, 223, 197));

    Have emailed a jar file of sample code to the email address shown in your profie. Let me know if there's a better address to send it to
    Good luck!

  • How i can store a DOM Tree to XML file

    I want to insert a xml documet into another another xml document and then store it.
    for this i have parsed a xml document using com.sun.xml.parser and got its domtree in document doc1 by builder.getDocument(). After that i parsed another xml document and got it's domtree in document doc2 by builder.getDocument().
    now i created a Document type doc . I create dom tree in doc that contains all the nodes of doc1 and insert the doc2 at a position . If i m printing this doc i got the required document. Now i want to store this doc into a xml file. so i paas thid doc and filename in which i want to store it into a function
    public static void writeXmlToFile(String filename, Document document)
    try
                   // Prepare the DOM document for writing
         Source source = new DOMSource(document);
         // Prepare the output file
         File file = new File(filename);
         Result result = new StreamResult(file);
    // Write the DOM document to the file
         // Get Transformer
         Transformer xformer = TransformerFactory.newInstance().newTransformer();
              // Write to a file
         xformer.transform(source, result);
    catch (TransformerConfigurationException e)
         System.out.println("TransformerConfigurationException: " + e);
    catch (TransformerException e)
         System.out.println("TransformerException: " + e);
    but i m getting following error
    Exception in thread "main" java.lang.AbstractMethodError: com.sun.xml.tree.ElementNode.getNamespacesURI()Ljava/lang/String;
    at com.sun.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
    at com.sun.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
    at com.sun.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
    at com.sun.apache.xalan.internal.xsltc.trax.TranformerImpl.transformIdentity(Unknown Source)
    at com.sun.apache.xalan.internal.xsltc.trax.TranformerImpl.transformIdentity(Unknown Source)
    at com.sun.apache.xalan.internal.xsltc.trax.TranformerImpl.transformIdentity(Unknown Source)

    thanks for the reply
    i m able to do my job using
    import javax.xml.parsers.*;
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder1 = factory.newDocumentBuilder();
         doc = builder1.parse(uri);
    when i want to covert this doc into an xml file by passing this doc in the function below then it is ok..
    public static void writeXmlToFile(String filename, Document document)
    try
    // Prepare the DOM document for writing
    Source source = new DOMSource(document);
    // Prepare the output file
    File file = new File(filename);
    Result result = new StreamResult(file);
    // Write the DOM document to the file
    // Get Transformer
    Transformer xformer = TransformerFactory.newInstance().newTransformer();
    // Write to a file
    xformer.transform(source, result);
    catch (TransformerConfigurationException e)
    System.out.println("TransformerConfigurationException: " + e);
    catch (TransformerException e)
    System.out.println("TransformerException: " + e);
    but i want to use com.sun.xml.parser like
    import com.sun.xml.parser.*;
    import com.sun.xml.tree.XmlDocumentBuilder;
    XmlDocumentBuilder builder = new XmlDocumentBuilder();
    Parser parser = new com.sun.xml.parser.Parser();
    parser.setDocumentHandler(builder);
    builder.setParser(parser);
    builder.setDisableNamespaces(false);
    parser.parse(uri);
    doc = builder.getDocument();
    when i m trying to store this doc into an xml file by passing this doc into funtion writeXmlToFile( filename, doc) then the errors occur (that i hav told in the first post)
    plz help..

  • Saving a styled document to XML file

    Hi,
    I am trying to save a styled document to an XML file, and I don't know how. I can easily save the text with writer.writeCharacters(string), where writer is an XMLStreamWriter. But how to save any style information?
    If I use XMLEncode do just dump out the document, how do I write the startElements, endElements, etc? Can I have two streams to the same file?
    Or is there a way to save the styling information separately from the text (attributes?) so that it automatically matches up when both text and styles are read back in?
    HEre is the code I currently use:
       // write cards.
                    final JFileChooser fc = new JFileChooser();
                  int returnVal = fc.showSaveDialog(null);
                    if (returnVal == JFileChooser.APPROVE_OPTION) {
                     File saveFile = fc.getSelectedFile();
                     XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
                     try
                         FileWriter fileWriter=new FileWriter(saveFile);
                         XMLStreamWriter writer = outputFactory.createXMLStreamWriter(fileWriter);
                         writer.writeStartDocument("1.0");
                         writer.writeStartElement("Deck");
                       FlashCard onecard;
                  for (int i=0; i < current.cards.size(); i++)
                           onecard=(FlashCard)current.cards.get(i); 
                           writer.writeStartElement("Card");
                           writer.writeStartElement("front");
                          writer.writeCharacters (onecard.front );
                          writer.writeEndElement();
                          writer.writeStartElement("back");
                          writer.writeCharacters (onecard.back );
                          writer.writeEndElement();
                          writer.writeEndElement();
                       writer.writeEndElement();
                       writer.flush();
                       writer.close();
                        current.nameDeck=saveFile.getName();
                      } This is in a flashcard program and I use XML to separate the different cards and the fronts and backs of each card.
    Marlon

    Here's what I did for that: the StyledDocument is a tree structure, so I traversed that structure recursively and built an XML document with the same structure, using SAX events.Element e = textPane.getDocument().getDefaultRootElement();
    SAXTransformerFactory tf = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
    TransformerHandler handler = tf.newTransformerHandler();
    Transformer t = handler.getTransformer();
    t.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, "UTF-16");
    StringWriter sw = new StringWriter();
    handler.setResult(new StreamResult(sw));
    handler.startDocument();
    dumpElement(e, handler);
    handler.endDocument();And here's the dumpElement method that does the recursive business:private void dumpElement(Element e, ContentHandler ch) {
      try {
        AttributeSet as = e.getAttributes();
        AttributesImpl a = new AttributesImpl();
        Enumeration ase = as.getAttributeNames();
        while (ase.hasMoreElements()) {
          Object name = ase.nextElement();
          Object value = as.getAttribute(name);
          a.addAttribute("", "", name.toString(), "string", value.toString());
        ch.startElement("", "", "Element", a);
        int ec = e.getElementCount();
        if (ec == 0) {
          int start = e.getStartOffset();
          int len = e.getEndOffset() - start;
          if (start < textPane.getDocument().getLength()) {
            a = new AttributesImpl();
            a.addAttribute("", "", "Offset", "string", Integer.toString(start));
            try {
              ch.startElement("", "", "Text", a);
              String text = textPane.getDocument().getText(start, len);
              char[] textChars = new char[text.length()];
              text.getChars(0, text.length(), textChars, 0);
              ch.characters(textChars, 0, text.length());
              ch.endElement("", "", "Text");
            } catch(BadLocationException ble) {
        } else {
          for (int i=0; i<ec; i++) {
            dumpElement(e.getElement(i), ch);
        ch.endElement("", "", "Element");
      } catch(SAXException saxe) {
        saxe.printStackTrace();
    }You can adapt this to suit your requirements.

  • Saving user variable data in XML file

    I am using Captivate 5.5. Can I save user variable data of several variables on an XML file ?

    Can be done with Javascript, have a look at the Javascript articles by Jim Leichliter, here is one link:
    Retrieve variables in Captivate
    Lilybiri

  • How can i write the DOM tree to the XML File?

    Asslamo ala mn etb3a Alhoda.
    My problem priefly is that i can't write the DOM tree to XML file.
    I write following code to give the user the ability to input the name of data base which he want to create.
    If i wrote DB name,its atrributes and its values succefully to XML file ,then i'll read it succefully to RAM.
    It'll be simple DBMS.
    ***My code***
    import javax.swing.*;
    import javax.xml.parsers.*;
    import org.w3c.dom.Document;
    import org.w3c.dom.DOMException;
    import org.w3c.dom.Element;
    public class Main {
         * @param args
    public static void main(String[] args) {
         // TODO Auto-generated method stub     
         String DBname;
    DBname=JOptionPane.showInputDialog("Enter Your Data Base Name");
    OPerations O=new OPerations();
         O.creatDB(DBname);
    class OPerations {
    public void creatDB(String name){
         //get an empty Document
         DocumentBuilderFactory f; f=DocumentBuilderFactory.newInstance();
         try {
              builder = f.newDocumentBuilder();
              Document doc= builder.newDocument();
         //Build tree DOM With the root Node
              Element root=doc.createElement(name);
         //add the root element to thevdocument
              doc.appendChild(root);
    catch (ParserConfigurationException e) {
         // TODO Auto-generated catch block
              e.printStackTrace();
    }

    Do an identity transformation to output it:TransformerFactory tf = TransformerFactory.newInstance();
    Transformer tr = tf.newTransformer();
    tr.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(new File(filename))));(typed without syntax check)

  • Tree from XML

    I have a tree control that is rendered from an xml file with
    the following format:
    <element name="textnode1">value here</element>
    <element name="groupnode1">
    .....<element name="item">
    ..........<element name="itemnode1">value
    here</element>
    ..........<element name="itemnode2">value
    here</element>
    ..........<element name="itemnode3">value
    here</element>
    .....</element>
    </element>
    <element name="textnode1">value here</element>
    Using a simple labeling function, I render the tree nodes for
    each "element" labeling them with the "name" attribute. But, by
    default behavior, the tree also renders each node value ("value
    here") as a child of the "element" node.
    How can I tell the tree control to ignore the node values and
    only render tree nodes from the "element" nodes in the XML?

    By using a custom ITreeDataDescriptor.
    But if it was me, I might just process the xml into the
    correct form.
    Tracy

  • AIR 3.8 modifies XML file unexpectedly

    Hello all,
    we are developing a multi-platform offline business-to-business app in AIR. The 1.0 version is currently in the Apple AppStore: https://itunes.apple.com/nl/app/efashion/id659451223?l=en&mt=8
    We are working on the 1.1 update, but when we compile with AIR 3.8, we run into some unexpected behaviour that doesn't happen in AIR 3.7. The scenario is like this:
    - when a user logs in for the first time, the app downloads a large XML database (database.xml). When complete, the file is stored in the local filesystem.
    - then, a second XML file is loaded, containing a stock update for the database (stock.xml).
    - in AIR 3.8, when we start loading the second file (_loader.load(request);), the first XML is modified unexpectedly. Whole XML chunks disappear, tags disappear, XML chunks pop up elsewhere in the tree, etcetera, rendering the database.xml file completely unusable.
    In AIR 3.7, everything is fine.
    I've tried reproducing this bug in a simpler project, but haven't been able to do so yet. Meanwhile, we are curious to find out if anything changed internally in the handling of XML in AIR 3.8 that could cause this behaviour.
    Any help would be greatly appreciated!
    Thanks in advance,
    Olaf Wempe

    Can you please share the entire contents of your platform.xml(if using) and the commands you are using to package ANE as well as IPA? Also, can you try unzipping the ANE and then, checking its contents, platform.xml and the architectures present in sample.a using the file command just to confirm earlier version of ANE is not being used.
    Regards,
    Nimit

  • DocumentBuilder parser, DOM doucment object from a XML file error

    Hi guys
    I created a program which parses a xml and creates a DOM document object from
    it. The parser is validating.
    class xmlParser
        //create arrylist to store employee in
        private ArrayList<Employee> employeeStore = new ArrayList<Employee>();
        private DocumentBuilder parser;
        private static Document document;     
        //create an instant of Employee to be added to the arraylist
        private Employee theEmployee = new Employee();
        //create an instant of Address to be added to Employee to again be
        //added to Employee
        private Address employeeAddress = new Address();
        public xmlParser()
        public xmlParser(String myfile) throws IOException 
              //validate the XML document agaisnt the given dtd
              DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
              factory.setValidating(true);
              factory.setIgnoringElementContentWhitespace(true);
              try {
                  parser = factory.newDocumentBuilder();
              }catch(javax.xml.parsers.ParserConfigurationException d) {
                   System.out.println("error with new document builder");
              //create document object (DOM tree) from xml file
              try {
                  document = parser.parse(new File(myfile));
              }catch(org.xml.sax.SAXException e) {
                  System.out.println("Error with parser file still creating xml personnel2");
        } In my main method when i call:
    xmlParser parsertree = new xmlParser("personnel.xml"); the exception keeps getting thrown and i get my my message back "Error with parser file still creating xml personnel2"
    Can't seem to figure it out, any ideas would be great.
    Thanks alot

    Hi,
    A - Check that the xml file is located in the same directory where you
    run your app.
    B - Check that the xml file is correct (in XML way).
    Suggestion : you may print the exception message, it might help.
    Hope that help,
    Jack

  • I saved docs from a iMac to a flashdrive but when I plug the flashdrive into an iBookG4 and try to open the docs on the flashdrive, I get this message: Doc 2 cannot be opened. The required index.xml file is missing.

    I saved docs from a iMac to a flashdrive but when I plug the flashdrive into an iBookG4 and try to open the docs on the flashdrive, I get this message: Doc 2 cannot be opened. The required index.xml file is missing. Does this mean that I can't use the info on the flashdrive with the iBookG4 or can I do something to get the required index.xml file?
    Thanks
    jt

    It appears if you write the document with newer version Pages and try to open it older version Pages.

  • Error while saving the FM8 XML file

    Hello,
    While saving the FM8 XML file, an error message appears (see attached screen shot).
    Is there a solution to resolve this issue? Please suggest.

    Hi,
    This type of error is non-descript and could be caused by any number of things. It is impossible to troubleshoot from here based solely on that message. Let me ask a couple of questions, though:
    - Are you using structured FrameMaker? If so, are you using a structured app that has worked successfully before? In other words, did this just suddenly start happening to an otherwise-stable process?
    - Is there anything unusual about your layout; that is, anything other than a single text flow with graphics?
    Russ

  • Error while saving xml file using PDFDocument API

    Hi,
    I am trying to save xml file using byte array obtained from interactive form element in webdynpro java.
    The file gets saved but I get fllowing error message when I open the file.
    The XML page cannot be displayed
    Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
    An invalid character was found in text content. Error processing resource 'http://uxjciesk.wdf.sap.corp:50000/irj/go/km/doc...
    The code I am trying to achieve the functionality is:
    byte[] byteArray  = wdContext.currentContextElement().getPdfSource();
    IWDPDFDocumentHandler pdfDocumentHandler = WDPDFDocumentFactory.getDocumentHandler();
    IWDPDFDocumentAccessibleContext documentAccessibleContext = pdfDocumentHandler.getDocumentAccessibleContext();
    documentAccessibleContext.setPDF(byteArray);
    IWDPDFDocument pdfDocument = documentAccessibleContext.execute();
    ByteArrayInputStream dataInputStream = (ByteArrayInputStream) pdfDocument.getPDFAsStream();
    further, the datainputstream is used to store the file. I am able to save same xdp template in pdf file format successfully, the error only occurs for xml file storage.
    Please, advise.
    Regards,
    Urvashi

    Hi Urvashi,
        Try this code
              String contentStr = getXMLData(wdContext.currentContextElement().getPdfSource().read(false));
              String data = "";
              ByteArrayOutputStream pdfSourceOutputStream = new ByteArrayOutputStream();
              try {
                   InputStream pdfSourceInputStream = wdContext.currentContextElement().getData().read(false);
                   BufferedInputStream bufferedInputStream = new BufferedInputStream(wdContext.currentContextElement().getData().read(false));
                   int aByte;
                   while ((aByte = bufferedInputStream.read()) != -1) {
                        pdfSourceOutputStream.write(aByte);
                   pdfSourceOutputStream.flush();
                   pdfSourceOutputStream.close();
                   IWDPDFDocument pdfDocument = null;
                   try {
                        // Create an instance for PDFDocumnetHandler
                        IWDPDFDocumentHandler pdfDocumentHandler = WDPDFDocumentFactory.getDocumentHandler();
                        //Create an Inatance for PDFDocumentAccessibleContext
                        IWDPDFDocumentAccessibleContext documentAccessibleContext =     pdfDocumentHandler.getDocumentAccessibleContext();
                        //set the pdf data as OutputStream to the PDFDocumentAccessibleContext instance
                        documentAccessibleContext.setPDF(pdfSourceOutputStream);
                        //call the server to get the data                      
                        pdfDocument = documentAccessibleContext.execute();
                        //get the xml data in a InputStream
                        ByteArrayInputStream dataInputStream = (ByteArrayInputStream) pdfDocument.getData();
                   } catch (Exception e) {
                        data = "Null";
              } catch (IOException e) {
    Regards,
    Mathan

  • Help:UIModel.xml file for ADF Tree with three level depth

    Hello,
    I am trying to create a DCTree with structure like this:
    root....branch1----child11,child12
    ..........branch2......branch21---child212,child212
    ............................branch22---child221,child222
    Because I can not create more than one binding rule due to the problem that "Add New Rule" button disappears after the first rule is created when I use the tool under Createbinding/Input/Tree to create the DCTree.
    Could somebody post or send me a script of the UIModel.xml file of the tree structure above so that I can work around this problem?
    Thanks in advance,
    Deborah

    Hi,
    I haven't test it for more than 3 layers but I have never seen this limitation mantioned anywhere.
    I used HGrid and this is my code:
    1. UIX file (the relevant part highlighted):
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:html="http://www.w3.org/TR/REC-html40" expressionLanguage="el"
    xmlns:myTemplate="test">
    <templates xmlns="http://xmlns.oracle.com/uix/ui">
    <templateImport source="baseTemplate.uit"/>
    </templates>
    <content>
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
    <provider>
    <!-- Add DataProviders (<data> elements) here -->
    </provider>
    <contents>
    <document>
    <metaContainer>
    <!-- Set the page title -->
    <head title=""/>
    </metaContainer>
    <contents>
    <body>
    <contents>
    <form name="form0">
    <contents>
    <myTemplate:baseTmpl title="" xmlns:myTemplate="test">
    <contents>
    <rowLayout>
    <contents>
    <link text="Bets View" destination="browseCustBets.do"/>
    <spacer width="10" height="10"/>
    <link text="Customer Bets" destination="viewCustBets.do"/>
    </contents>
    </rowLayout>
    <rowLayout>
    <contents>
    <spacer width="10" height="10"/>
    </contents>
    </rowLayout>
    <rowLayout>
    <contents>
    <hGrid id="hg1" treeData="${uix.data.treeData}" proxy="${uix.eventResult.hGridProxy}">
    <columnHeaderData>
    <col text="Email"/>
    <col text="Bet Date"/>
    <col text="ID"/>
    <col text="Is Winner"/>
    <col text="Amount"/>
    <col text="Rate"/>
    </columnHeaderData>
    <columnHeaderStamp>
    <text text="${uix.current.text}"/>
    </columnHeaderStamp>
    <columnFormats>
    <columnFormat columnDataFormat="textFormat" width="140"/>
    <columnFormat columnDataFormat="textFormat" width="160"/>
    <columnFormat columnDataFormat="textFormat" width="40"/>
    <columnFormat columnDataFormat="textFormat" width="70"/>
    <columnFormat columnDataFormat="textFormat" width="70"/>
    <columnFormat columnDataFormat="textFormat" width="40"/>
    </columnFormats>
    <contents>
    <text text="${uix.current.Email}"/>
    <text text="${uix.current.BetDate}"/>
    <text text="${uix.current.BetID}"/>
    <text text="${uix.current.IsWinner}"/>
    <text text="${uix.current.Amount}"/>
    <text text="${uix.current.Rate}"/>
    </contents>
    </hGrid>
    </contents>
    </rowLayout>
    </contents>
    <tabs/>
    <pageButtons/>
    <globalButtons/>
    <pageHeader/>
    <start/>
    <end/>
    <about/>
    <copyright/>
    <privacy/>
    <corporateBranding/>
    <productBranding/>
    </myTemplate:baseTmpl>
    <formValue name="${bindings.statetokenid}" value="${bindings.statetoken}" id="_uixState"/>
    </contents>
    </form>
    </contents>
    </body>
    </contents>
    </document>
    </contents>
    <provider>
    <data name="treeData">
    <method class="view.CreateTreeData" method="getTreeData"/>
    </data>
    </provider>
    </dataScope>
    </content>
    <handlers>
    <event name="*">
    <method class="view.BetDetailsAction" method="doHGridEvent"/>
    </event>
    </handlers>
    </page>
    2. CreateTreeData class:
    It has a static method getTreeData() that returns a DataObject containing the tree nodes. This methode is mentiond in <provider> node in UIX/XML.
    package view;
    import java.util.Enumeration;
    import model.*;
    import oracle.cabo.servlet.BajaContext;
    import oracle.cabo.servlet.ServletConstants;
    import oracle.cabo.servlet.ui.BajaRenderingContext;
    import oracle.cabo.ui.RenderingContext;
    import oracle.cabo.ui.UIConstants;
    import oracle.cabo.ui.data.DataObject;
    import oracle.cabo.ui.data.servlet.HttpSessionDataObject;
    import oracle.cabo.ui.data.tree.SimpleTreeData;
    import oracle.jbo.ApplicationModule;
    import oracle.jbo.ViewObject;
    import oracle.adf.model.BindingContext;
    import oracle.adf.model.binding.DCDataControl;
    //import oracle.jbo.common.Configuration;
    import javax.servlet.http.HttpSession;
    import oracle.jbo.client.Configuration;
    public class CreateTreeData
    public CreateTreeData()
    public static DataObject getTreeData(RenderingContext context, String namespace, String name)
    // create root node
    SimpleTreeData root = new SimpleTreeData();
    int BetID = 0;
    // get the parameter from url
    BajaContext bContext = (BajaContext) context.getProperty(ServletConstants.BAJA_NAMESPACE,
    BajaRenderingContext.BAJA_CONTEXT_PROPERTY);
    HttpSession session = bContext.getServletRequest().getSession(true);
    try
    //BetID = new Integer(( bContext.getServletRequest( ) ).getParameter( "BetID" )).intValue();
    String s = ( bContext.getServletRequest( ) ).getQueryString();
    BetID = new Integer(s).intValue();
    session.setAttribute("BetID", s);
    //BetID = new Integer(session.getAttribute("BetID").toString()).intValue();
    catch ( Exception ex)
    // log the error on the console
    BetID = new Integer(session.getAttribute("BetID").toString()).intValue();
    //System.out.println( "Parameters cannot be retrieved" );
    //System.out.println( ex.getMessage() );
    String amDef = "model.AppModule";
    String config = "AppModuleLocal";
    ApplicationModule am = Configuration.createRootApplicationModule(amDef, config);
    AppModuleImpl myAm = (AppModuleImpl)am;
    root = myAm.createNodesData(BetID);
    myAm.remove();
    Configuration.releaseRootApplicationModule(am,true);
    // return the tree
    return root;
    3. createNodesData(int Id) is the actual function that creates the data structure containing the nodes.
    It is in AppModule. The actual tree is kept in one table and every node knows its parent ID. There is no limitation in depth.
    This function is called recursively until the tree is finished and the parameter Id is the Id of the parent node that I want to be listed. Tne top parent nodes has null in ParentID field.
    public SimpleTreeData createNodesData(int Id)
    SimpleTreeData tData = new SimpleTreeData();
    String baseSQL =
    "SELECT Bet.ID, Bet.CUST_LOGIN_ID, Bet.BET_CLASS_ID, Bet.PARENT_BET_ID," +
    "Bet.CHAMPIONSHIP_ID, Bet.AMOUNT, Bet.WIN_RATE, Bet.IS_WINNER, Bet.BET_DATE, " +
    "BetClass.NAME, CustLogin.EMAIL, CustLogin.ID AS CUST_LOGIN_ID " +
    "FROM BET Bet, CUST_LOGIN CustLogin, BET_CLASS BetClass " +
    "WHERE (Bet.CUST_LOGIN_ID = CustLogin.ID) AND (Bet.BET_CLASS_ID = BetClass.ID) ";
    if(Id!=0){
    String sqlStmt = baseSQL + " AND (Bet.ID = '"+ Id +"')";
    ViewObject betVo = this.createViewObjectFromQueryStmt("betVo", sqlStmt);
    betVo.executeQuery();
    if(betVo.hasNext())
    //SimpleTreeData tData = new SimpleTreeData();
    tData.setText(betVo.first().getAttribute("NAME").toString());
    if(betVo.first().getAttribute("PARENT_BET_ID")==null)
    tData.put("Email", betVo.first().getAttribute("EMAIL").toString());
    tData.put("BetDate", betVo.first().getAttribute("BET_DATE").toString());
    tData.put("BetID", betVo.first().getAttribute("ID").toString());
    tData.put("IsWinner", betVo.first().getAttribute("IS_WINNER").toString());
    tData.put("Amount", betVo.first().getAttribute("AMOUNT").toString());
    tData.put("Rate", betVo.first().getAttribute("WIN_RATE").toString());
    if(Integer.parseInt(betVo.first().getAttribute("BET_CLASS_ID").toString())>1){
    tData.setExpandable(UIConstants.EXPANDABLE_EXPANDED);
    betVo.remove();
    String sqlStmt = baseSQL + " AND (Bet.PARENT_BET_ID = '"+ Id +"')";
    ViewObject betVo = this.createViewObjectFromQueryStmt("betVo" + Id, sqlStmt);
    betVo.executeQuery();
    while(betVo.hasNext()){
    tData.addChild(createNodesData(Integer.parseInt(betVo.next().getAttribute("ID").toString())));
    betVo.remove();
    return tData;
    Hope this will help...

Maybe you are looking for

  • My Mac Power G4 Went to sleep and I Can't Wake it Up!

    Must have felt I didn't love it anymore. I bought it so long ago, I can't remember when - only that in the interim I've also acquired a Mac Notebook, an IMac that eventually "wore out" and a duo processor iMac to replace it. Still, I've also kept my

  • Capturing mono VHS footage, how do I convert audio to stereo?

    I am creating dvd's from some old VHS tapes, and the audio track is mono, I want to know how to convert audio to stereo? Do I start with the audio settings on Mono or stereo, and then what is the next step to get mono audio converted to stereo? As al

  • Year of Cash Effectivity and Due Date for payments in following year

    Hi experts! I have a problem with Year of Cash Effectivity when dealing with invoices which have Due Date in a different year from the posting date. I just need revenues and expenses to be recognized under the accrual basis of accounting (with the in

  • Button and Action Event

    Im using this code ic void actionPerformed (ActionEvent e)      //Object source = evt.getSource(); Cant use Object as it becomes ambiguous, being used by both CORBA and Java      Object source = e.getSource();      if (source == testButton)          

  • How to calculate variance in process order?

    hi i hav standard report ME1P,  i need to do some modifications in this standard prgrm i did all modifications except variance calculation... can any one expln me the logic of below code? IF xeipa-lprei IS INITIAL.       IF xeipa-peinh NE 0.