Package org.itsnat.feashow.features.comp.trees

Source Code of org.itsnat.feashow.features.comp.trees.TreeTableItemRenderer

/*
* 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.comp.trees;

import javax.swing.tree.DefaultMutableTreeNode;
import org.itsnat.comp.tree.ItsNatTree;
import org.itsnat.comp.tree.ItsNatTreeCellRenderer;
import org.itsnat.core.ItsNatDocument;
import org.itsnat.core.domutil.ElementGroupManager;
import org.itsnat.core.domutil.ElementRenderer;
import org.itsnat.core.domutil.ItsNatTreeWalker;
import org.w3c.dom.Element;
import org.w3c.dom.html.HTMLTableCellElement;

public class TreeTableItemRenderer implements ItsNatTreeCellRenderer
{
    protected ElementRenderer renderer;

    public TreeTableItemRenderer(ItsNatDocument itsNatDoc)
    {
        ElementGroupManager factory = itsNatDoc.getElementGroupManager();
        this.renderer = factory.createDefaultElementRenderer();
    }

    public void renderTreeCell(ItsNatTree tree,int row, Object value,
            boolean selected,boolean expanded,boolean leaf,boolean hasFocus,Element labelElem,boolean isNew)
    {
        DefaultMutableTreeNode dataNode = (DefaultMutableTreeNode)value;
        TreeTableItem item = (TreeTableItem)dataNode.getUserObject();
        renderer.render(null,item.getPrincipal(),labelElem,isNew);

        Element labelParentElem = (Element)labelElem.getParentNode();

        if (labelParentElem instanceof HTMLTableCellElement)
        {
            /*
            <tr>
                <td><img src="..." /><img src="..." /><span><b>Label</b></span></td>
                <td><b>Other content</b></td>
            </tr>
            */
            HTMLTableCellElement tdSecondElem = (HTMLTableCellElement)ItsNatTreeWalker.getNextSiblingElement(labelParentElem);
            renderer.render(null,item.getSecondary(),tdSecondElem,isNew);
        }
        else
        {
            /*
            <p>
                <img src="..." /><img src="..." /><span><b>Label</b></span>
                <span>Other content</span>
            </p>
             */
            Element secondContentElem = ItsNatTreeWalker.getNextSiblingElement(labelElem);
            renderer.render(null,item.getSecondary(),secondContentElem,isNew);
        }
    }

    public void unrenderTreeCell(ItsNatTree tree,int row,Element treeNodeLabelElem)
    {
    }
}
TOP

Related Classes of org.itsnat.feashow.features.comp.trees.TreeTableItemRenderer

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.