| // Copyright 2004, 2005 The Apache Software Foundation |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| package org.apache.tapestry.contrib.table.model.common; |
| |
| import org.apache.tapestry.IRender; |
| import org.apache.tapestry.IRequestCycle; |
| import org.apache.tapestry.components.Block; |
| import org.apache.tapestry.components.BlockRenderer; |
| import org.apache.tapestry.contrib.table.model.ITableColumn; |
| import org.apache.tapestry.contrib.table.model.ITableModelSource; |
| import org.apache.tapestry.contrib.table.model.ITableRendererListener; |
| import org.apache.tapestry.contrib.table.model.ITableRendererSource; |
| import org.apache.tapestry.util.ComponentAddress; |
| |
| /** |
| * @author mindbridge |
| * @since 2.3 |
| */ |
| public class BlockTableRendererSource implements ITableRendererSource |
| { |
| |
| private static final long serialVersionUID = 1L; |
| |
| 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 org.apache.tapestry.contrib.table.model.ITableRendererSource#getRenderer(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; |
| } |
| |
| } |