Package org.itsnat.feashow.features.core.domutils

Source Code of org.itsnat.feashow.features.core.domutils.PatternBasedElementTreeTreeNode

/*
* This file is not part of the ItsNat framework.
*
* Original source code use and closed source derivatives are authorized
* to third parties with no restriction or fee.
* The original source code is owned by the author.
*
* This program is distributed AS IS in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* (C) Innowhere Software a service of Jose Maria Arranz Santamaria, Spanish citizen.
*/

package org.itsnat.feashow.features.core.domutils;

import org.itsnat.core.ItsNatDocument;
import org.itsnat.core.domutil.ElementGroupManager;
import org.itsnat.core.domutil.ElementTree;
import org.itsnat.core.domutil.ElementTreeNode;
import org.itsnat.core.domutil.ElementTreeNodeList;
import org.itsnat.core.domutil.ElementTreeNodeRenderer;
import org.itsnat.core.domutil.ElementTreeNodeStructure;
import org.itsnat.core.domutil.ItsNatDOMUtil;
import org.itsnat.core.domutil.ItsNatTreeWalker;
import org.itsnat.feashow.FeatureTreeNode;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class PatternBasedElementTreeTreeNode extends FeatureTreeNode
{
    public PatternBasedElementTreeTreeNode()
    {
    }

    public void startExamplePanel()
    {
        buildTree("treeId",false,null,null);
        buildTree("treeId2",false,null,null);
        buildTree("treeId3",false,null,null);
        buildTree("treeId4",false,null,null);
        buildTreeFixedRoot("treeId5",null,null);
        buildTreeRootless("treeId6",false,null,null);

        ElementTreeNodeRenderer customRenderer = new ElementTreeNodeRenderer()
        {
            public void renderTreeNode(ElementTreeNode treeNode,Object value,Element labelElem,boolean isNew)
            {
                int level = treeNode.getDeepLevel();

                String style;
                if (level == 0)
                    style = "font-size:large;";
                else if (level == 1)
                    style = "font-weight:bold;";
                else
                    style = "font-style:italic;";

                labelElem.setAttribute("style",style);
                ItsNatDOMUtil.setTextContent(labelElem,value.toString());
            }

            public void unrenderTreeNode(ElementTreeNode treeNode,Element labelElem)
            {
            }
        };

        ElementTreeNodeStructure customStructure = new ElementTreeNodeStructure()
        {
            public Element getContentElement(ElementTreeNode treeNode,Element nodeElem)
            {
                Element child = ItsNatTreeWalker.getFirstChildElement(nodeElem);
                return ItsNatTreeWalker.getFirstChildElement(child);
            }
            public Element getHandleElement(ElementTreeNode treeNode,Element nodeElem)
            {
                return null;
            }
            public Element getIconElement(ElementTreeNode treeNode,Element nodeElem)
            {
                return null;
            }
            public Element getLabelElement(ElementTreeNode treeNode,Element nodeElem)
            {
                return getContentElement(treeNode,nodeElem);
            }
            public Element getChildListElement(ElementTreeNode treeNode,Element nodeElem)
            {
                Element contentParentElem = getContentElement(treeNode,nodeElem);
                return ItsNatTreeWalker.getNextSiblingElement(contentParentElem);
            }
        };

        buildTree("treeId7",false,customStructure,customRenderer);

        // TreeTable with <table>
        buildTree("treeId8",true,null,customRenderer);

        // TreeTable without <table>
        buildTree("treeId9",true,null,customRenderer);
    }

    public void buildTree(String parentId,boolean treeTable,ElementTreeNodeStructure customStructure,ElementTreeNodeRenderer customRenderer)
    {
        ItsNatDocument itsNatDoc = getItsNatDocument();
        Document doc = itsNatDoc.getDocument();
        Element parent = doc.getElementById(parentId);
        ElementGroupManager factory = itsNatDoc.getElementGroupManager();
        ElementTree elemTree = factory.createElementTree(treeTable,parent,true,customStructure,customRenderer);
        ElementTreeNode rootNode = elemTree.addRootNode("Spain");

        buildTree(rootNode);
    }

    public void buildTreeFixedRoot(String parentId,ElementTreeNodeStructure customStructure,ElementTreeNodeRenderer customRenderer)
    {
        ItsNatDocument itsNatDoc = getItsNatDocument();
        Document doc = itsNatDoc.getDocument();
        Element parent = doc.getElementById(parentId);
        ElementGroupManager factory = itsNatDoc.getElementGroupManager();
        ElementTreeNode rootNode = factory.createElementTreeNode(parent,true,customStructure,customRenderer);
        rootNode.setValue("Spain");
        buildTree(rootNode);
    }

    public void buildTreeRootless(String parentId,boolean treeTable,ElementTreeNodeStructure customStructure,ElementTreeNodeRenderer customRenderer)
    {
        ItsNatDocument itsNatDoc = getItsNatDocument();
        Document doc = itsNatDoc.getDocument();
        Element parent = doc.getElementById(parentId);
        ElementGroupManager factory = itsNatDoc.getElementGroupManager();
        ElementTreeNodeList rootList = factory.createElementTreeNodeList(treeTable,parent,true,customStructure,customRenderer);

        buildTree(rootList);
    }

    public void buildTree(ElementTreeNode rootNode)
    {
        ElementTreeNodeList rootChildren = rootNode.getChildTreeNodeList();
        buildTree(rootChildren);
    }

    public void buildTree(ElementTreeNodeList rootChildren)
    {
        ElementTreeNode provincesNode = rootChildren.addTreeNode("Autonomous Communities");
        ElementTreeNodeList provinces = provincesNode.getChildTreeNodeList();
        provinces.addTreeNode("Asturias");
        provinces.addTreeNode("Cantabria");
        provinces.addTreeNode("Castilla La Mancha");

        ElementTreeNode ccaaNode = rootChildren.addTreeNode("Cities");
        ElementTreeNodeList ccaas = ccaaNode.getChildTreeNodeList();
        ccaas.addTreeNode("Madrid");
        ccaas.addTreeNode("Barcelona");
        ccaas.addTreeNode("Sevilla");
    }

    public void endExamplePanel()
    {
    }

}
TOP

Related Classes of org.itsnat.feashow.features.core.domutils.PatternBasedElementTreeTreeNode

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.