Package org.itsnat.impl.comp.table

Source Code of org.itsnat.impl.comp.table.ItsNatTableHeaderUIImpl

/*
  ItsNat Java Web Application Framework
  Copyright (C) 2007-2011 Jose Maria Arranz Santamaria, Spanish citizen

  This software is free software; you can redistribute it and/or modify it
  under the terms of the GNU Lesser General Public License as
  published by the Free Software Foundation; either version 3 of
  the License, or (at your option) any later version.
  This software is distributed 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. See the GNU
  Lesser General Public License for more details. You should have received
  a copy of the GNU Lesser General Public License along with this program.
  If not, see <http://www.gnu.org/licenses/>.
*/

package org.itsnat.impl.comp.table;

import org.itsnat.impl.comp.list.ItsNatListBasedCellUIImpl;
import org.itsnat.impl.comp.list.ItsNatListBasedUIImpl;
import org.itsnat.comp.table.ItsNatTable;
import org.itsnat.comp.table.ItsNatTableHeader;
import org.itsnat.comp.table.ItsNatTableHeaderCellRenderer;
import org.itsnat.comp.table.ItsNatTableStructure;
import org.itsnat.comp.table.ItsNatTableHeaderCellUI;
import org.itsnat.comp.table.ItsNatTableHeaderUI;
import org.itsnat.impl.core.doc.ItsNatDocumentImpl;
import org.itsnat.impl.core.domutil.ListElementInfoMasterImpl;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

/**
*
* @author jmarranz
*/
public abstract class ItsNatTableHeaderUIImpl extends ItsNatListBasedUIImpl implements ItsNatTableHeaderUI
{
    protected boolean enabled = true;

    /**
     * Creates a new instance of ItsNatTableHeaderUIImpl
     */
    public ItsNatTableHeaderUIImpl(ItsNatTableHeaderImpl parentComp,Element rowElement)
    {
        super(parentComp);

        ItsNatTableImpl tableComp = (ItsNatTableImpl)parentComp.getItsNatTable();
        ItsNatTableStructure structure = tableComp.getItsNatTableStructure();
        ItsNatTableStructureCoreAdapterImpl structAdapter;
        structAdapter = new ItsNatTableStructureCoreAdapterImpl(structure,null,parentComp);

        ItsNatDocumentImpl itsNatDoc = getItsNatDocumentImpl();
        this.elementList = itsNatDoc.getElementGroupManagerImpl().createElementListInternal(rowElement,true,structAdapter,null);
    }

    public ItsNatTableHeader getItsNatTableHeader()
    {
        return (ItsNatTableHeader)parentComp;
    }

    public ItsNatTable getItsNatTable()
    {
        return getItsNatTableHeader().getItsNatTable();
    }

    public ItsNatTableStructure getItsNatTableStructure()
    {
        return getItsNatTable().getItsNatTableStructure();
    }

    public ItsNatTableHeaderCellRenderer getItsNatTableHeaderCellRenderer()
    {
        return getItsNatTableHeader().getItsNatTableHeaderCellRenderer();
    }

    public void setElementValueAt(int column,Object columnValue,boolean isSelected,boolean cellHasFocus,Element element,boolean isNew)
    {
        ItsNatTableHeader tableHeader = getItsNatTableHeader();
        Element contentElem = getContentElementAt(column,element);

        elementList.prepareRendering(contentElem,isNew);

        ItsNatTableHeaderCellRenderer renderer = getItsNatTableHeaderCellRenderer();
        if (renderer != null)
            renderer.renderTableHeaderCell(tableHeader,column,columnValue,isSelected,cellHasFocus,contentElem,isNew);
    }

    public Element getContentElementAt(int index,Element elem)
    {
        return getItsNatTableStructure().getHeaderColumnContentElement(getItsNatTableHeader(),index,elem);
    }

    public ItsNatListBasedCellUIImpl createItsNatListCellUI(ListElementInfoMasterImpl elementInfo)
    {
        return new ItsNatTableHeaderCellUIImpl(elementInfo,this);
    }

    public ItsNatTableHeaderCellUI getItsNatTableHeaderCellUIAt(int index)
    {
        return (ItsNatTableHeaderCellUI)getItsNatListBasedCellUIAt(index);
    }

    public ItsNatTableHeaderCellUI getItsNatTableHeaderCellUIFromNode(Node node)
    {
        return (ItsNatTableHeaderCellUI)getItsNatListBasedCellUIFromNode(node);
    }

    public Element getContentElementAt(int index)
    {
        return super.getContentElementAtBase(index);
    }

    /**
     * ESTE METODO FUE PUBLICO ANTES
     *
     * Renders the specified value into the header column element with the given position.
     *
     * @param index index of the element.
     * @param value the value to render.
     * @param isSelected if this header column is selected.
     * @param hasFocus if this header has the focus. Current ItsNat implementation ever passes false.
     * @see org.itsnat.core.domutil.ElementList#setElementValueAt(int,Object)
     */
    public void setElementValueAt(int index, Object anObject, boolean isSelected, boolean cellHasFocus)
    {
        super.setElementValueAtBase(index,anObject,isSelected,cellHasFocus);
    }

    public boolean isEmpty()
    {
        return super.isEmptyBase();
    }

    public int getLength()
    {
        return super.getLengthBase();
    }

    /**
     * ESTE METODO FUE PUBLICO ANTES
     *
     * Sets the number of header columns.
     *
     * @param len the new number of header columns.
     * @see org.itsnat.core.domutil.ElementList#setLength(int)
     */
    public void setLength(int len)
    {
        super.setLengthBase(len);
    }

    public Element getElementAt(int index)
    {
        return super.getElementAtBase(index);
    }

    /**
     * ESTE METODO FUE PUBLICO ANTES
     *
     * Inserts a new header column element at the specified position rendering
     * the specified column value.
     *
     * @param index index of the new header column.
     * @param value the column value to render as markup.
     * @return the new element.
     * @see org.itsnat.core.domutil.ElementList#insertElementAt(int,Object)
     */
    public Element insertElementAt(int index,Object anObject)
    {
        return super.insertElementAtBase(index,anObject);
    }

    public void unrenderTableHeaderCell(int column)
    {
        ItsNatTableHeaderCellRenderer renderer = getItsNatTableHeaderCellRenderer();
        if (renderer == null) return;

        Element cellElem = getElementAt(column);
        if (cellElem == null) return;

        Element contentElem = getContentElementAt(column,cellElem);
        renderer.unrenderTableHeaderCell(getItsNatTableHeader(),column,contentElem);
    }

    /**
     * ESTE METODO FUE PUBLICO ANTES
     *
     * Removes the specified header column.
     *
     * @param index index of the header column to remove.
     * @return the removed element or null if index is out of bounds.
     * @see org.itsnat.core.domutil.ElementListBase#removeElementAt(int)
     */
    public Element removeElementAt(int index)
    {
        return super.removeElementAtBase(index);
    }

    /**
     * ESTE METODO FUE PUBLICO ANTES
     *
     * Removes the header column elements between the specified indexes.
     *
     * @param fromIndex low index (inclusive).
     * @param toIndex high index (inclusive).
     * @see org.itsnat.core.domutil.ElementListBase#removeElementRange(int,int)
     */
    public void removeElementRange(int fromIndex,int toIndex)
    {
        ItsNatTableHeaderCellRenderer renderer = getItsNatTableHeaderCellRenderer();
        if (renderer != null)
        {
            for(int i = fromIndex; i <= toIndex; i++)
                unrenderTableHeaderCell(i);
        }

        super.removeElementRangeBase(fromIndex,toIndex);
    }


    /**
     * ESTE METODO FUE PUBLICO ANTES
     *
     * Removes all header columns. The header is now empty.
     * @see org.itsnat.core.domutil.ElementListBase#removeAllElements()
     */
    public void removeAllElements()
    {
        ItsNatTableHeaderCellRenderer renderer = getItsNatTableHeaderCellRenderer();
        if (renderer != null)
        {
            int len = getLength();
            for(int i = 0; i < len; i++)
                unrenderTableHeaderCell(i);
        }

        super.removeAllElementsBase();
    }

    public boolean isUsePatternMarkupToRender()
    {
        return super.isUsePatternMarkupToRenderBase();
    }

    public void setUsePatternMarkupToRender(boolean value)
    {
        super.setUsePatternMarkupToRenderBase(value);
    }

    public void setEnabled(boolean b)
    {
        this.enabled = b;
    }

    public boolean isEnabled()
    {
        return enabled;
    }
}
TOP

Related Classes of org.itsnat.impl.comp.table.ItsNatTableHeaderUIImpl

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.