Package org.itsnat.feashow.features.comp.lists

Source Code of org.itsnat.feashow.features.comp.lists.PersonRenderer

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

import javax.swing.DefaultListModel;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import org.itsnat.comp.ItsNatComponentManager;
import org.itsnat.comp.list.ItsNatList;
import org.itsnat.comp.list.ItsNatListCellRenderer;
import org.itsnat.comp.list.ItsNatListMultSel;
import org.itsnat.comp.text.ItsNatHTMLInputText;
import org.itsnat.core.ItsNatDocument;
import org.itsnat.core.domutil.ItsNatDOMUtil;
import org.itsnat.feashow.features.comp.shared.Person;
import org.w3c.dom.Element;
import org.w3c.dom.Node;


public class PersonRenderer implements ItsNatListCellRenderer
{
    public PersonRenderer()
    {
    }

    public static ItsNatHTMLInputText getInputText(String id,Node containerNode,ItsNatList list)
    {
        Element firstName = ItsNatDOMUtil.getElementById(id,containerNode);
        ItsNatComponentManager compMgr = list.getItsNatComponentManager();
        return (ItsNatHTMLInputText)compMgr.findItsNatComponent(firstName);
    }

    public void renderListCell(ItsNatList list, int index, Object value, boolean isSelected, boolean hasFocus, Element cellContentElem, boolean isNew)
    {
        ItsNatListMultSel listMult = (ItsNatListMultSel)list;

        final DefaultListModel listModel = (DefaultListModel)listMult.getListModel();
        final Person person = (Person)listModel.getElementAt(index);

        if (isNew)
        {
            ItsNatDocument itsNatDoc = listMult.getItsNatDocument();

            if (!itsNatDoc.getItsNatDocumentTemplate().isAutoBuildComponents())
            {
                ItsNatComponentManager compMgr = listMult.getItsNatComponentManager();
                compMgr.buildItsNatComponents(cellContentElem);
            }

            final ItsNatHTMLInputText firstNameComp = getInputText("firstNameId",cellContentElem,listMult);
            final ItsNatHTMLInputText lastNameComp = getInputText("lastNameId",cellContentElem,listMult);

            firstNameComp.setText(person.getFirstName());
            lastNameComp.setText(person.getLastName());

            DocumentListener firstNameListener = new DocumentListener()
            {
                public void insertUpdate(DocumentEvent e)
                {
                    update();
                }

                public void removeUpdate(DocumentEvent e)
                {
                    update();
                }

                public void changedUpdate(DocumentEvent e)
                {
                    update();
                }

                public void update()
                {
                    person.setFirstName(firstNameComp.getText());
                }
            };

            firstNameComp.getDocument().addDocumentListener(firstNameListener);

            DocumentListener lastNameListener = new DocumentListener()
            {
                public void insertUpdate(DocumentEvent e)
                {
                    update();
                }

                public void removeUpdate(DocumentEvent e)
                {
                    update();
                }

                public void changedUpdate(DocumentEvent e)
                {
                    update();
                }

                public void update()
                {
                    person.setLastName(lastNameComp.getText());
                }

            };

            lastNameComp.getDocument().addDocumentListener(lastNameListener);
        }
        else
        {
            ItsNatHTMLInputText firstNameComp = getInputText("firstNameId",cellContentElem,listMult);
            ItsNatHTMLInputText lastNameComp = getInputText("lastNameId",cellContentElem,listMult);

            firstNameComp.setText(person.getFirstName());
            lastNameComp.setText(person.getLastName());
        }
    }

    public void unrenderListCell(ItsNatList list,int index,Element cellContentElem)
    {
        ItsNatDocument itsNatDoc = list.getItsNatDocument();
        if (!itsNatDoc.getItsNatDocumentTemplate().isAutoBuildComponents())
        {
            ItsNatComponentManager compMgr = list.getItsNatComponentManager();
            compMgr.removeItsNatComponents(cellContentElem,true);
        }
    }
}
TOP

Related Classes of org.itsnat.feashow.features.comp.lists.PersonRenderer

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.