CVS: Tapestry/contrib/src/net/sf/tapestry/contrib/table/model/common ComponentTableRendererSource.java,NONE,1.1 AbstractTableColumn.java,NONE,1.1 BlockTableRendererSource.java,NONE,1.1

Mind Bridge <[email protected]>
Newsgroups gmane.comp.java.tapestry.cvs
Message-ID <[email protected]>
Update of /cvsroot/tapestry/Tapestry/contrib/src/net/sf/tapestry/contrib/table/model/common
In directory sc8-pr-cvs1:/tmp/cvs-serv6509/contrib/src/net/sf/tapestry/contrib/table/model/common

Added Files:
	ComponentTableRendererSource.java AbstractTableColumn.java 
	BlockTableRendererSource.java 
Log Message:


--- NEW FILE: ComponentTableRendererSource.java ---
package net.sf.tapestry.contrib.table.model.common;

import net.sf.tapestry.ComponentAddress;
import net.sf.tapestry.IRender;
import net.sf.tapestry.IRequestCycle;
import net.sf.tapestry.contrib.table.model.ITableColumn;
import net.sf.tapestry.contrib.table.model.ITableModelSource;
import net.sf.tapestry.contrib.table.model.ITableRendererListener;
import net.sf.tapestry.contrib.table.model.ITableRendererSource;

/**
 * 
 * @version $Id: ComponentTableRendererSource.java,v 1.1 2002/12/23 12:40:28 mindbridge Exp $
 * @author mindbridge
 * @since 2.3
 */
public class ComponentTableRendererSource implements ITableRendererSource
{
	private ComponentAddress m_objComponentAddress;

	public ComponentTableRendererSource(ITableRendererListener objComponent)
	{
		this(new ComponentAddress(objComponent));
	}

	public ComponentTableRendererSource(ComponentAddress objComponentAddress)
	{
		setComponentAddress(objComponentAddress);
	}

	/**
	 * @see net.sf.tapestry.contrib.table.model.column.ITableValueRendererSource#getValueRenderer(IRequestCycle, ITableModelSource, ITableColumn, Object)
	 */
	public IRender getRenderer(
		IRequestCycle objCycle,
		ITableModelSource objSource,
		ITableColumn objColumn,
		Object objRow)
	{
		ITableRendererListener objComponent =
			(ITableRendererListener) getComponentAddress().findComponent(
				objCycle);

		objComponent.initializeRenderer(objCycle, objSource, objColumn, objRow);

		return objComponent;
	}

	/**
	 * Returns the listenerAddress.
	 * @return ComponentAddress
	 */
	public ComponentAddress getComponentAddress()
	{
		return m_objComponentAddress;
	}

	/**
	 * Sets the listenerAddress.
	 * @param listenerAddress The listenerAddress to set
	 */
	public void setComponentAddress(ComponentAddress listenerAddress)
	{
		m_objComponentAddress = listenerAddress;
	}

}

--- NEW FILE: AbstractTableColumn.java ---
package net.sf.tapestry.contrib.table.model.common;

import java.io.Serializable;
import java.util.Comparator;

import net.sf.tapestry.IRender;
import net.sf.tapestry.IRequestCycle;
import net.sf.tapestry.contrib.table.model.*;
import net.sf.tapestry.contrib.table.model.ITableColumn;
import net.sf.tapestry.contrib.table.model.ITableModelSource;
import net.sf.tapestry.valid.RenderString;

/**
 * A base implementation of {@link net.sf.tapestry.contrib.table.model.ITableColumn}
 * that allows renderers to be set via aggregation.
 * 
 * @see net.sf.tapestry.contrib.table.model.column.ITableColumnRendererSource
 * @see net.sf.tapestry.contrib.table.model.column.ITableValueRendererSource
 * @version $Id: AbstractTableColumn.java,v 1.1 2002/12/23 12:40:28 mindbridge Exp $
 * @author mindbridge
 * @since 2.3
 */
public class AbstractTableColumn implements ITableColumn, Serializable
{
	private String m_strColumnName;
	private boolean m_bSortable;
	private Comparator m_objComparator;

	private ITableRendererSource m_objColumnRendererSource;
	private ITableRendererSource m_objValueRendererSource;

	public AbstractTableColumn()
	{
		this("", false, null);
	}

	public AbstractTableColumn(
		String strColumnName,
		boolean bSortable,
		Comparator objComparator)
	{
		this(strColumnName, bSortable, objComparator, null, null);
	}

	public AbstractTableColumn(
		String strColumnName,
		boolean bSortable,
		Comparator objComparator,
		ITableRendererSource objColumnRendererSource,
		ITableRendererSource objValueRendererSource)
	{
		setColumnName(strColumnName);
		setSortable(bSortable);
		setComparator(objComparator);
		setColumnRendererSource(objColumnRendererSource);
		setValueRendererSource(objValueRendererSource);
	}

	/**
	 * @see net.sf.tapestry.contrib.table.model.ITableColumn#getColumnName()
	 */
	public String getColumnName()
	{
		return m_strColumnName;
	}

	/**
	 * Sets the columnName.
	 * @param columnName The columnName to set
	 */
	public void setColumnName(String columnName)
	{
		m_strColumnName = columnName;
	}

	/**
	 * @see net.sf.tapestry.contrib.table.model.ITableColumn#getSortable()
	 */
	public boolean getSortable()
	{
		return m_bSortable;
	}

	/**
	 * Sets whether the column is sortable.
	 * @param sortable The sortable flag to set
	 */
	public void setSortable(boolean sortable)
	{
		m_bSortable = sortable;
	}

	/**
	 * @see net.sf.tapestry.contrib.table.model.ITableColumn#getComparator()
	 */
	public Comparator getComparator()
	{
		return m_objComparator;
	}

	/**
	 * Sets the comparator.
	 * @param comparator The comparator to set
	 */
	public void setComparator(Comparator comparator)
	{
		m_objComparator = comparator;
	}

	/**
	 * @see net.sf.tapestry.contrib.table.model.ITableColumn#getColumnRenderer(IRequestCycle, ITableModelSource)
	 */
	public IRender getColumnRenderer(
		IRequestCycle objCycle,
		ITableModelSource objSource)
	{
		ITableRendererSource objRendererSource =
			getColumnRendererSource();
		if (objRendererSource == null)
		{
			// log error
			return new RenderString("");
		}

		return objRendererSource.getRenderer(objCycle, objSource, this, null);
	}

	/**
	 * @see net.sf.tapestry.contrib.table.model.ITableColumn#getValueRenderer(IRequestCycle, ITableModelSource, Object)
	 */
	public IRender getValueRenderer(
		IRequestCycle objCycle,
		ITableModelSource objSource,
		Object objRow)
	{
		ITableRendererSource objRendererSource = getValueRendererSource();
		if (objRendererSource == null)
		{
			// log error
			return new RenderString("");
		}

		return objRendererSource.getRenderer(
			objCycle,
			objSource,
			this,
			objRow);
	}

	/**
	 * Returns the columnRendererSource.
	 * @return ITableColumnRendererSource
	 */
	public ITableRendererSource getColumnRendererSource()
	{
		return m_objColumnRendererSource;
	}

	/**
	 * Sets the columnRendererSource.
	 * @param columnRendererSource The columnRendererSource to set
	 */
	public void setColumnRendererSource(ITableRendererSource columnRendererSource)
	{
		m_objColumnRendererSource = columnRendererSource;
	}

	/**
	 * Returns the valueRendererSource.
	 * @return ITableValueRendererSource
	 */
	public ITableRendererSource getValueRendererSource()
	{
		return m_objValueRendererSource;
	}

	/**
	 * Sets the valueRendererSource.
	 * @param valueRendererSource The valueRendererSource to set
	 */
	public void setValueRendererSource(ITableRendererSource valueRendererSource)
	{
		m_objValueRendererSource = valueRendererSource;
	}

}

--- NEW FILE: BlockTableRendererSource.java ---
package net.sf.tapestry.contrib.table.model.common;

import net.sf.tapestry.ComponentAddress;
import net.sf.tapestry.IRender;
import net.sf.tapestry.IRequestCycle;
import net.sf.tapestry.components.Block;
import net.sf.tapestry.components.BlockRenderer;
import net.sf.tapestry.contrib.table.model.ITableColumn;
import net.sf.tapestry.contrib.table.model.ITableModelSource;
import net.sf.tapestry.contrib.table.model.ITableRendererListener;
import net.sf.tapestry.contrib.table.model.ITableRendererSource;

/**
 * 
 * @version $Id: BlockTableRendererSource.java,v 1.1 2002/12/23 12:40:28 mindbridge Exp $
 * @author mindbridge
 * @since 2.3
 */
public class BlockTableRendererSource implements ITableRendererSource
{
	private ComponentAddress m_objBlockAddress;
	private ComponentAddress m_objListenerAddress;

	public BlockTableRendererSource(Block objBlock)
	{
		this(new ComponentAddress(objBlock));
	}

	public BlockTableRendererSource(
		Block objBlock,
		ITableRendererListener objListener)
	{
		this(new ComponentAddress(objBlock), new ComponentAddress(objListener));
	}

	public BlockTableRendererSource(ComponentAddress objBlockAddress)
	{
		this(objBlockAddress, null);
	}

	public BlockTableRendererSource(
		ComponentAddress objBlockAddress,
		ComponentAddress objListenerAddress)
	{
		setBlockAddress(objBlockAddress);
		setListenerAddress(objListenerAddress);
	}

	/**
	 * @see net.sf.tapestry.contrib.table.model.column.ITableValueRendererSource#getValueRenderer(IRequestCycle, ITableModelSource, ITableColumn, Object)
	 */
	public IRender getRenderer(
		IRequestCycle objCycle,
		ITableModelSource objSource,
		ITableColumn objColumn,
		Object objRow)
	{
		ComponentAddress objListenerAddress = getListenerAddress();
		if (objListenerAddress != null)
		{
			ITableRendererListener objListener =
				(ITableRendererListener) objListenerAddress.findComponent(
					objCycle);
			objListener.initializeRenderer(
				objCycle,
				objSource,
				objColumn,
				objRow);
		}

		Block objBlock = (Block) getBlockAddress().findComponent(objCycle);
		return new BlockRenderer(objBlock);
	}

	/**
	 * Returns the blockAddress.
	 * @return ComponentAddress
	 */
	public ComponentAddress getBlockAddress()
	{
		return m_objBlockAddress;
	}

	/**
	 * Sets the blockAddress.
	 * @param blockAddress The blockAddress to set
	 */
	public void setBlockAddress(ComponentAddress blockAddress)
	{
		m_objBlockAddress = blockAddress;
	}

	/**
	 * Returns the listenerAddress.
	 * @return ComponentAddress
	 */
	public ComponentAddress getListenerAddress()
	{
		return m_objListenerAddress;
	}

	/**
	 * Sets the listenerAddress.
	 * @param listenerAddress The listenerAddress to set
	 */
	public void setListenerAddress(ComponentAddress listenerAddress)
	{
		m_objListenerAddress = listenerAddress;
	}

}



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.