Example usage for javax.swing.tree DefaultTreeModel getRoot

List of usage examples for javax.swing.tree DefaultTreeModel getRoot

Introduction

In this page you can find the example usage for javax.swing.tree DefaultTreeModel getRoot.

Prototype

public Object getRoot() 

Source Link

Document

Returns the root of the tree.

Usage

From source file:org.icefaces.application.showcase.view.bean.ApplicationController.java

/**
 * Utility method to find a tree node by its ID.
 *
 * @param nodeId node Id of node to to find in tree.
 * @return node specified by ID or null of no node of that ID is found.
 *///from ww w  .  j a va  2  s .  c om
private DefaultMutableTreeNode findTreeNode(String nodeId) {
    ApplicationSessionModel applicationModel = (ApplicationSessionModel) FacesUtils
            .getManagedBean(BeanNames.APPLICATION_MODEL);
    Collection<DefaultTreeModel> trees = applicationModel.getNavigationTrees().values();

    DefaultMutableTreeNode node;
    DefaultMutableTreeNode rootNode;
    // search all trees defined by meta data using a depthFirst search.
    for (DefaultTreeModel treeModel : trees) {
        rootNode = (DefaultMutableTreeNode) treeModel.getRoot();
        Enumeration nodes = rootNode.depthFirstEnumeration();
        while (nodes.hasMoreElements()) {
            node = (DefaultMutableTreeNode) nodes.nextElement();
            NavigationTreeNode tmp = (NavigationTreeNode) node.getUserObject();
            if (tmp.getNodeId() != null && tmp.getNodeId().equals(nodeId)) {
                return node;
            }
        }
    }
    return null;
}

From source file:org.mbari.aved.ui.classifier.knowledgebase.SearchableConceptTreePanel.java

/**
 * Loads the branch of a particular concept. This method does the following
 * <ol>//from  w  ww  . j a va  2 s .  c  o m
 *      <li>Walks from the concept up the tree to the root concept, storing
 *      the concepts in a list. (This is very fast)</li>
 *  <li>Starts walking from the root down (using lazyExpand), searching each
 *      childnode for a matching primary name (which was stored in the first
 *      step</li>
 *  <li>If a matching primary name is found this stops otherwise
 *              it opens the next level and searches for the next mathc in the list.</li>
 *  <li></li>
 * </ol>
 * @param concept
 */
private void openNode(final Concept concept) {
    if (log.isDebugEnabled()) {
        log.debug("Opening node containing " + concept);
    }

    if (concept == null) {
        return;
    }

    // Get the list of concepts up to root
    final LinkedList conceptList = new LinkedList();
    Concept c = concept;

    while (c != null) {
        conceptList.add(c);
        c = (Concept) c.getParentConcept();
    }

    // Walk the tree from root on down opening nodes as we go
    final ListIterator i = conceptList.listIterator(conceptList.size());

    // Skip the root
    i.previous();

    final JTree tree = getJTree();
    final DefaultTreeModel treeModel = (DefaultTreeModel) tree.getModel();
    final DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) treeModel.getRoot();
    TreePath path = new TreePath(rootNode.getPath());

    tree.setSelectionPath(path);

    DefaultMutableTreeNode parentNode = rootNode;

    while (i.hasPrevious()) {
        c = (Concept) i.previous();

        final TreeConcept parentTreeConcept = (TreeConcept) parentNode.getUserObject();

        parentTreeConcept.lazyExpand(parentNode);

        // treeModel.reload(parentNode);
        final Enumeration enm = parentNode.children();

        while (enm.hasMoreElements()) {
            final DefaultMutableTreeNode node = (DefaultMutableTreeNode) enm.nextElement();
            final TreeConcept tc = (TreeConcept) node.getUserObject();

            if (tc.getName().equals(c.getPrimaryConceptNameAsString())) {
                parentNode = node;

                break;
            }
        }
    }

    final TreeNode _parentNode = parentNode;

    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            treeModel.reload(_parentNode);
            tree.scrollPathToVisible(new TreePath(_parentNode));
        }
    });
}

From source file:org.nuclos.client.explorer.ExplorerNode.java

public static TreePath findDescendant(DefaultTreeModel model, String idPath) {
    String[] idComponent = idPath.split("/");
    ExplorerNode<?> root = (ExplorerNode<?>) model.getRoot();
    if (idComponent.length == 0 || !idComponent[0].equals(root.getTreeNode().getIdentifier()))
        return null;

    ExplorerNode<?>[] path = new ExplorerNode<?>[idComponent.length];
    path[0] = root;//from w  w w.j av a 2  s.c  om
    for (int i = 1; i < path.length; i++) {
        ExplorerNode<?> child = path[i - 1].findChildNodeWithIdentifier(idComponent[i]);
        if (child == null)
            return null;
        path[i] = child;
    }

    return new TreePath(path);
}

From source file:org.openengsb.ui.admin.testClient.TestClientTest.java

@Test
public void testForEachDomainVisibleInCreatePartIsAnEntryInTree_shouldWork() throws Exception {
    setupAndStartTestClientPage();// ww w .  j ava  2s .co m
    tester.assertRenderedPage(TestClient.class);
    List<String> domains = new ArrayList<String>();
    List<String> availableInTree = new ArrayList<String>();
    List<DefaultMutableTreeNode> availableInTreeAsTreeNode = new ArrayList<DefaultMutableTreeNode>();

    Component domainsComponent = tester.getComponentFromLastRenderedPage("serviceManagementContainer:domains");
    int count = ((ArrayList<?>) domainsComponent.getDefaultModelObject()).size();

    // get all domains
    for (int i = 0; i < count; i++) {
        Component label = tester
                .getComponentFromLastRenderedPage("serviceManagementContainer:domains:" + i + ":domain.name");
        domains.add(label.getDefaultModelObjectAsString());
    }

    // get all services from the tree
    DefaultTreeModel serviceListTree = (DefaultTreeModel) tester
            .getComponentFromLastRenderedPage("methodCallForm:serviceList").getDefaultModelObject();
    count = serviceListTree.getChildCount(serviceListTree.getRoot());
    for (int i = 0; i < count; i++) {
        DefaultMutableTreeNode child = (DefaultMutableTreeNode) serviceListTree
                .getChild(serviceListTree.getRoot(), i);
        String userObject = (String) child.getUserObject();
        availableInTreeAsTreeNode.add(child);
        availableInTree.add(userObject);
    }

    for (int i = 0; i < domains.size(); i++) {
        String domain = domains.get(i);
        assertThat(availableInTree.contains(domain), is(true));
        assertThat(serviceListTree.getChildCount(availableInTreeAsTreeNode.get(i)), greaterThan(0));
    }
}

From source file:org.openmicroscopy.shoola.agents.treeviewer.browser.BrowserUI.java

/**
 * Returns the root node of the tree./*from www .j  av  a 2s  .co m*/
 * 
 * @return See above.
 */
TreeImageDisplay getTreeRoot() {
    if (treeDisplay == null)
        return null;
    DefaultTreeModel dtm = (DefaultTreeModel) treeDisplay.getModel();
    if (dtm == null)
        return null;
    return (TreeImageDisplay) dtm.getRoot();
}

From source file:org.openmicroscopy.shoola.agents.treeviewer.browser.BrowserUI.java

/**
 * Sorts the nodes in the tree view  according to the specified index.
 * /* w  w w  . ja  va 2 s .  c  om*/
 * @param type    One out of the following constants: 
 *             {@link  Browser#SORT_NODES_BY_DATE} or 
 *             {@link  Browser#SORT_NODES_BY_NAME}.
 */
void sortNodes(int type) {
    boolean b = type == Browser.SORT_NODES_BY_DATE;
    sorter.setByDate(b);
    sorter.setAscending(!b);
    DefaultTreeModel dtm = (DefaultTreeModel) treeDisplay.getModel();
    TreeImageDisplay root = (TreeImageDisplay) dtm.getRoot();
    int n = root.getChildCount();
    TreeImageDisplay node;
    List children;
    Iterator j;
    List all;
    switch (model.getBrowserType()) {
    case Browser.IMAGES_EXPLORER:
    case Browser.FILES_EXPLORER:
        for (int i = 0; i < n; i++) {
            node = (TreeImageDisplay) root.getChildAt(i);
            children = node.getChildrenDisplay();
            j = children.iterator();
            TreeImageDisplay child;
            while (j.hasNext()) {
                child = (TreeImageDisplay) j.next();
                if (child instanceof TreeImageTimeSet || child instanceof TreeFileSet)
                    sortNode((TreeImageSet) child);
            }
        }
        break;
    case Browser.ADMIN_EXPLORER:
        for (int i = 0; i < n; i++) {
            node = (TreeImageDisplay) root.getChildAt(i);
            children = node.getChildrenDisplay();
            node.removeAllChildren();
            dtm.reload(node);
            if (!children.isEmpty()) {
                if (node.getUserObject() instanceof GroupData) {
                    all = prepareSortedList(sorter.sort(children));
                    buildTreeNode(node, all, dtm);
                } else {
                    buildTreeNode(node, sorter.sort(children), dtm);
                }
            } else
                buildEmptyNode(node);
            j = nodesToReset.iterator();
            while (j.hasNext()) {
                setExpandedParent((TreeImageDisplay) j.next(), true);
            }
        }
        break;
    default:
        for (int i = 0; i < n; i++) {
            node = (TreeImageDisplay) root.getChildAt(i);
            children = node.getChildrenDisplay();
            node.removeAllChildren();
            dtm.reload(node);
            if (!children.isEmpty()) {
                if (node.getUserObject() instanceof ExperimenterData) {
                    List<Object> sets = new ArrayList<Object>();
                    List<Object> toSort = new ArrayList<Object>();
                    Iterator k = children.iterator();
                    while (k.hasNext()) {
                        Object object = (Object) k.next();
                        if (object instanceof TreeFileSet) {
                            sets.add((TreeFileSet) object);
                        } else
                            toSort.add(object);
                    }
                    sets.addAll(sorter.sort(toSort));
                    Collections.reverse(sets);
                    all = prepareSortedList(sets);
                    buildTreeNode(node, all, dtm);
                } else {
                    buildTreeNode(node, sorter.sort(children), dtm);
                }
            } else
                buildEmptyNode(node);
            j = nodesToReset.iterator();
            while (j.hasNext()) {
                setExpandedParent((TreeImageDisplay) j.next(), true);
            }
        }
    }
}

From source file:org.openmicroscopy.shoola.agents.treeviewer.util.MoveGroupSelectionDialog.java

/**
 * Creates a new container corresponding to {@link #containerType}.
 * /*from w  w  w  .ja  v a  2 s .  com*/
 * @param name The name of the container.
 */
private void create(String name) {
    if (containerType == null)
        return;
    if (ProjectData.class.equals(containerType)) {
        toCreate = new ProjectData();
        ((ProjectData) toCreate).setName(name);
    } else if (ScreenData.class.equals(containerType)) {
        toCreate = new ScreenData();
        ((ScreenData) toCreate).setName(name);
    } else if (DatasetData.class.equals(containerType)) {
        toCreate = new DatasetData();
        ((DatasetData) toCreate).setName(name);
    }
    DefaultTreeModel dtm = (DefaultTreeModel) treeDisplay.getModel();
    TreeImageDisplay root = (TreeImageDisplay) dtm.getRoot();
    TreeImageSet node = new TreeImageSet(toCreate);
    node.setDisplayItems(false);
    dtm.insertNodeInto(node, root, root.getChildCount());
    node = (TreeImageSet) root.getChildAt(root.getChildCount() - 1);
    treeDisplay.setSelectionPath(new TreePath(node.getPath()));
    if (noDisplay) {
        noDisplay = false;
        Container c = getContentPane();
        c.remove(body);
        c.remove(1);
        c.add(new JScrollPane(treeDisplay), BorderLayout.CENTER);
        c.add(buildToolBar(), BorderLayout.SOUTH);
        validate();
        repaint();

    }
}

From source file:org.openmicroscopy.shoola.agents.util.SelectionWizardUI.java

/**
 * Updates the specified tree.//from   www. j a  v a 2  s.c  o  m
 *
 * @param tree The tree to update.
 * @param nodes The collection of nodes to handle.
 */
private void populateTreeItems(JTree tree, List<TreeImageDisplay> nodes) {
    DefaultTreeModel dtm = (DefaultTreeModel) tree.getModel();
    TreeImageDisplay parent = (TreeImageDisplay) dtm.getRoot();
    parent.removeAllChildrenDisplay();
    parent.removeAllChildren();
    Iterator<TreeImageDisplay> i = nodes.iterator();
    TreeImageDisplay node, child;
    Iterator<TreeImageDisplay> j;
    Set<TreeImageDisplay> toExpand = new HashSet<TreeImageDisplay>();
    while (i.hasNext()) {
        node = i.next();
        node.setDisplayItems(false);
        Object ho = node.getUserObject();
        if (ho instanceof TagAnnotationData) {
            TagAnnotationData tag = (TagAnnotationData) ho;
            if (!TagAnnotationData.INSIGHT_TAGSET_NS.equals(tag.getNameSpace()) || node.hasChildrenDisplay()) {
                dtm.insertNodeInto(node, parent, parent.getChildCount());
            }
        } else {
            dtm.insertNodeInto(node, parent, parent.getChildCount());
        }
        if (node.hasChildrenDisplay()) {
            node.removeAllChildren();
            tree.expandPath(new TreePath(node.getPath()));
            Collection<TreeImageDisplay> l = node.getChildrenDisplay();
            l = sorter.sort(l);
            j = l.iterator();
            while (j.hasNext()) {
                child = j.next();
                child.setDisplayItems(false);
                if (!isSelected(child) && !isFiltered(child)) {
                    dtm.insertNodeInto(child, node, node.getChildCount());
                    toExpand.add(node);
                    tree.expandPath(new TreePath(node.getPath()));
                }
            }
        }
    }
    dtm.reload();
    i = toExpand.iterator();
    while (i.hasNext()) {
        tree.expandPath(new TreePath(i.next().getPath()));
    }
}

From source file:org.sakaiproject.scorm.ui.player.components.ActivityTree.java

public TreeNode selectNode(String activityId) {
    if (activityId == null)
        return null;

    Model model = (Model) this.getModel();
    DefaultTreeModel treeModel = (DefaultTreeModel) model.getObject();
    DefaultMutableTreeNode root = (DefaultMutableTreeNode) treeModel.getRoot();

    for (Enumeration<DefaultMutableTreeNode> e = root.breadthFirstEnumeration(); e.hasMoreElements();) {
        DefaultMutableTreeNode node = e.nextElement();
        SeqActivity activity = (SeqActivity) node.getUserObject();

        if (log.isDebugEnabled()) {
            log.debug("Activity: " + activity.getID());
            log.debug("Title: " + activity.getTitle());
            log.debug("Is Constrain Choice: " + activity.getConstrainChoice());
            log.debug("Is Control Forward Only: " + activity.getControlForwardOnly());
            log.debug("Is Control Mode Choice: " + activity.getControlModeChoice());
            log.debug("Is Control Mode Choice Exit: " + activity.getControlModeChoiceExit());
            log.debug("Is Control Mode Flow: " + activity.getControlModeFlow());
        }//from   ww w . ja v a 2s  . c  om

        String id = activity == null ? null : activity.getID();

        if (id != null && id.equals(activityId)) {
            if (!getTreeState().isNodeSelected(node))
                getTreeState().selectNode(node, true);
            return node;
        }
    }

    return null;
}

From source file:results.report.java

/**
 * Private function to generate the application report
 * @param filename/*ww w  . j a v  a 2s . c o m*/
 * @return 
 */
private boolean generateApplicationsReport(String filename) {
    //--Note: generate also a paste to wiki report
    //--Sample..
    //  Multiple Sequence Alignment (MSA)
    // *test - v 1.0 - [http://www.example.com link title]
    try {
        //--The tools tree: easier because it's already shorted
        Toolbox toolbox = new Toolbox();
        JTree applications_tree = toolbox.getApplicationTree();
        DefaultTreeModel mode = (DefaultTreeModel) applications_tree.getModel();
        ToolboxMutableTreeNode treeroot = (ToolboxMutableTreeNode) mode.getRoot();

        //--Exceptions (do not put in the report)
        String[] exception_name = { "Blast Download", "Blast (Web Ncbi)", "Create Local BlastDB", "LocalBlast",
                "dbFetch (Web EBI)", "EB-Eye (Web EBI)", "Ncbi eUtils", "Fetch Sequences Ncbi", "DNAML-Erate",
                "Custom Program _Old_", "Kalign - Custom Program" };
        HashMap<String, Boolean> dict_exception_name = new HashMap<String, Boolean>();
        for (String s : exception_name)
            dict_exception_name.put(s, Boolean.TRUE);

        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().equals("Alignment")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    if (dict_exception_name.containsKey(prop.getName().trim())) {
                        prop.put("done_report", true);
                    }
                }
            }
        } //--End exception

        //--HTML
        Util report = new Util(filename);
        Util report_wiki = new Util(filename + ".wiki");
        System.out.println(filename);
        report.println(
                "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>");
        report.println(this.generateTopApplicationReport("Included Applications"));
        //--Report style 1
        //-- Table (1)            
        report.println(
                "<table style='text-align: left; width: 100%; font-size: 14px;' border='1' cellpadding='0' cellspacing='0' >"
                        + "<tbody><tr>"
                        + "<td style='background-color: silver; text-align: center; color: black;'><big><span style='font-weight: bold;'>Nucleic or Proteic Sequences</span></big></td>"
                        + "<td style='background-color: silver; text-align: center; color: black;'><big><span style='font-weight: bold;'>Phylogenetic Trees</span></big></td>"
                        + "<td style='background-color: silver; text-align: center; color: black;'><big><span style='font-weight: bold;'>Model of Evolutionary Pressure</span></big></td>");
        report.println("</tr>");

        //--wiki report
        report_wiki.println("<!-- Application report created on " + Util.returnCurrentDateAndTime() + " -->");

        //--Print MSA 
        report.println(
                "<td style='vertical-align: top; text-align: center;'><span style='font-weight: bold; '><br />Multiple Sequence Alignment (MSA)</span><br /><br />");
        report_wiki.println("\nMultiple Sequence Alignment (MSA)\n");
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().equals("Alignment")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    prop.put("done_report", true);
                    report.println(pretty_prop(prop));
                    report_wiki.println(pretty_wiki_prop(prop));
                }
            }
        }

        //--Print HGT
        report.println(
                "<span style='font-weight: bold;'><br />Detection of Horizontal Gene Transfers</span><br /><br />");
        report_wiki.println("\nDetection of Horizontal Gene Transfers\n");
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().startsWith("Horizontal Gene")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    prop.put("done_report", true);
                    report.println(pretty_prop(prop));
                    report_wiki.println(pretty_wiki_prop(prop));
                }
            }
        }
        report.println("</td>");
        report.println(
                "<td style='vertical-align: top; text-align: center;'><span style='font-weight: bold;'><br />Phylogenetic Trees</span><br /><br />");
        report_wiki.println("\nPhylogenetic Trees\n");
        //--Print Phylogenetic Trees
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().equals("Tree")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    if (!prop.getName().contains("Viewer")) {
                        report.println(pretty_prop(prop));
                        report_wiki.println(pretty_wiki_prop(prop));
                        prop.put("done_report", true);
                    }
                }
            }
        }

        report.println(
                "<br><span style='font-style: italic;'><span style='font-style: italic;'></span>Felsenstein's Lab<br /></span><a href='http://evolution.genetics.washington.edu/phylip.html'>Phylip package</a><br /><br />");
        report_wiki.println("\nFelsenstein's Lab [http://evolution.genetics.washington.edu/ link]\n");
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().startsWith("Tree - Phylip")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    if (prop.getName().contains("Phylip")) {
                        report.println(pretty_prop(prop));
                        report_wiki.println(pretty_wiki_prop(prop));
                        prop.put("done_report", true);
                    }
                }
            }
        }
        //--Special dnaml-erate...
        report.println(
                "<br><span style='font-style: italic;'>Eddy's Lab</span><br><a href='http://selab.janelia.org/software.html'>DNAML-Erate&nbsp;</a><a href='http://selab.janelia.org/software.html'>v1.0</a><br /></div><br />");
        //--Note--special for Eddy's Lab
        report_wiki.println("\nEddy's Lab\n");
        report_wiki.println("* [http://selab.janelia.org/software.html DNAML-Erate]  v1.0\n");

        report.println("<span style='font-weight: bold;'><br />Tree Distance</span><br /><br />");
        report_wiki.println("\nTree Distance\n");
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().startsWith("Tree - Distance")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    prop.put("done_report", true);
                    report.println(pretty_prop(prop));
                    report_wiki.println(pretty_wiki_prop(prop));
                }
            }
        }
        report.println("<span style='font-weight: bold;'><br />Tree Visualization</span><br /><br />");
        report_wiki.println("\nTree Visualization\n");
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().equals("Tree")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    if (prop.getName().contains("Viewer")) {
                        prop.put("done_report", true);
                        report.println(pretty_prop(prop));
                        report_wiki.println(pretty_wiki_prop(prop));
                    }
                }
            }
        }
        report.println("</td>");
        // Evolutionnary model
        report.println(
                "<td style='vertical-align: top; text-align: center;'><span style='font-weight: bold;'><br />Evolutionary Model Inference</span><br /><br />");
        report_wiki.println("\nEvolutionary Model Inference\n");
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().startsWith("Evolutionary Model Testing")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    prop.put("done_report", true);
                    report.println(pretty_prop(prop));
                    report_wiki.println(pretty_wiki_prop(prop));
                }
            }
        }
        report.println("<span style='font-weight: bold;'><br />Selective Pressure</span><br /><br />");
        report_wiki.println("\nSelective Pressure\n");
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().startsWith("Selective Pressure")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    prop.put("done_report", true);
                    report.println(pretty_prop(prop));
                    report_wiki.println(pretty_wiki_prop(prop));
                }
            }
        }
        report.println("<span style='font-weight: bold;'><br />Ancestral Reconstruction</span><br /><br />");
        report_wiki.println("\nAncestral Reconstruction\n");
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications
            if (cat.getProperties().getName().startsWith("Ancestral Reconstruction")) {
                for (int j = 0; j < cat.getChildCount(); j++) {
                    ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                    workflow_properties prop = appli.getProperties();
                    prop.put("done_report", true);
                    report.println(pretty_prop(prop));
                    report_wiki.println(pretty_wiki_prop(prop));
                }
            }
        }
        report.println("<span style='font-weight: bold;'><br />Others</span><br /><br />");
        report_wiki.println("\nOthers\n");
        for (int i = 0; i < treeroot.getChildCount(); i++) {
            ToolboxMutableTreeNode cat = (ToolboxMutableTreeNode) treeroot.getChildAt(i);
            //--Get applications other
            for (int j = 0; j < cat.getChildCount(); j++) {
                ToolboxMutableTreeNode appli = (ToolboxMutableTreeNode) cat.getChildAt(j);
                workflow_properties prop = appli.getProperties();
                if (!prop.getBoolean("done_report") && !prop.getBoolean("InternalArmadilloApplication")
                        && !prop.getName().equalsIgnoreCase("DNAML-Erate")) {
                    //System.out.println(prop.getBoolean("InternalArmadilloApplication"));
                    report.println(pretty_prop(prop));
                    report_wiki.println(pretty_wiki_prop(prop));
                }
            }

        }
        report.println("</td>");
        //--Close the table (1)
        //report.println("</tr></tbody></table></span><a href='included_os.html'>(extented report including OS specific)</a><br /><br />");
        //--Table (2) - static
        // BLAST
        report.println(
                "<table style='text-align: left; width: 100%; font-size: 14px;' border='1' cellpadding='0' cellspacing='0'><tbody><tr>"
                        + "<span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'></span><td style='background-color: silver; text-align: center; color: black;'><big><big><span style='font-weight: bold;'>BLAST</span></big></big></td>"
                        + "<span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'></span><td style='vertical-align: top; text-align: center;'><span style='font-weight: bold;'><br /></span>"
                        + "<div style='text-align: left;'><span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'>&nbsp;&nbsp;&nbsp;"
                        + "<a href='http://eutils.ncbi.nlm.nih.gov/'>NCBI** BLAST</a><br />&nbsp;&nbsp;&nbsp; <a href='http://www.ebi.ac.uk/Tools/blastall/index.html'>EBI BLAST</a> &nbsp;&nbsp;&nbsp;<a href='http://www.ebi.ac.uk/inc/help/search_help.html'></a><br />"
                        + "<span style='font-weight: bold;'></span></span><br />"
                        + "<span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'><span style='font-weight: bold;'></span></span></div>"
                        + "</td></tr></tbody></table><br /><br />");
        //--Web database
        report.println(
                "<table style='text-align: left; width: 100%; font-size: 14px;' border='1' cellpadding='0' cellspacing='0'><tbody><tr>"
                        + "<span style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;' class='Apple-style-span'></span><td style='background-color: silver; text-align: center; color: black;'><big><big><span style='font-weight: bold;'>Database services</span></big></big></td>"
                        + "<span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'></span><td style='vertical-align: top; text-align: center;'><span style='font-weight: bold;'><br /></span>"
                        + "<div style='text-align: left;'><span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'>&nbsp;&nbsp;&nbsp;"
                        + "<a href='http://eutils.ncbi.nlm.nih.gov/'>NCBI Entrez Programming Utilities</a><br />"
                        + "&nbsp;&nbsp;&nbsp;&nbsp;<a href='http://www.ebi.ac.uk/inc/help/search_help.html'>EBI EB-eye database&nbsp;search services</a><br />"
                        + "&nbsp;&nbsp;&nbsp;<a href='http://www.ebi.ac.uk/cgi-bin/dbfetch'> EBI dbFetch</a> <br />"
                        + "<span style='font-weight: bold;'></span></span><br /><span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'><span style='font-weight: bold;'></span></span></div></td></tr>"
                        + "</tbody></table><br /></div></div><div style='clear: both;'><span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'><span class='Apple-style-span' style='font-family: helvetica,'trebuchet MS',arial,sans-serif; font-size: 11px; text-align: left; white-space: nowrap;'></span></span><span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'><span class='Apple-style-span' style='font-family: helvetica,'trebuchet MS',arial,sans-serif; font-size: 11px; text-align: left; white-space: nowrap;'>*&nbsp;<span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'><span class='Apple-style-span' style='font-family: helvetica,'trebuchet MS',arial,sans-serif; font-size: 11px; text-align: left; white-space: nowrap;'><a target='_top' href='http://www.ebi.ac.uk/' title='European Bioinformatics Institute Home Page' style='color: rgb(64, 64, 64); background-color: rgb(222, 222, 222); text-decoration: underline;'>European            Bioinformatics Institute</a><br /></span></span></span></span><span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'><span class='Apple-style-span' style='font-family: helvetica,'trebuchet MS',arial,sans-serif; font-size: 11px; text-align: left; white-space: nowrap;'>**</span></span> &nbsp;<span class='Apple-style-span' style='border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;'><span class='Apple-style-span' style='font-family: helvetica,'trebuchet MS',arial,sans-serif; font-size: 11px; text-align: left; white-space: nowrap;'><a target='_top' href='http://www.ncbi.nlm.nih.gov/' title='European Bioinformatics Institute Home Page' style='color: rgb(64, 64, 64); background-color: rgb(222, 222, 222); text-decoration: underline;'>National Center for Biotechnology Information </a></span></span><br /></div></div>");

        report.println(this.foot());
        report.println("</body></html>");
        report.close();
        report_wiki.close();

    } catch (Exception e) {
        e.printStackTrace();
        Config.log("Error in generation application report (1) " + filename + "\n" + e.getMessage() + "\n"
                + e.getLocalizedMessage());
        return false;
    }
    return true;
}