package com.explido.components.tabpanel; import org.apache.tapestry.BaseComponent; import org.apache.tapestry.IAsset; import org.apache.tapestry.components.Block; import java.util.List; public abstract class TabPanel extends BaseComponent { // Persistent public abstract String getSelectedBlockId(); public abstract void setSelectedBlockId(String id); public abstract List getBlockIds(); // Current block id within the loop public abstract String getBlockId(); public abstract IAsset getActiveTabLeftImage(); public abstract void setActiveTabLeftImage(IAsset asset); public abstract IAsset getInactiveTabLeftImage(); public abstract void setInactiveTabLeftImage(IAsset asset); public abstract IAsset getActiveTabMidImage(); public abstract void setActiveTabMidImage(IAsset asset); public abstract IAsset getInactiveTabMidImage(); public abstract void setInactiveTabMidImage(IAsset asset); public abstract IAsset getActiveTabRightImage(); public abstract void setActiveTabRightImage(IAsset asset); public abstract IAsset getInactiveTabRightImage(); public abstract void setInactiveTabRightImage(IAsset asset); public Block getSelectedBlock() { String selectedId = getSelectedBlockId(); if (selectedId == null) selectedId = (String)getBlockIds().get(0); return (Block) getContainer().getComponent(selectedId); } public boolean isTabSelected() { String selectedId = getSelectedBlockId(); if (selectedId == null) selectedId = (String) getBlockIds().get(0); return getBlockId().equals(selectedId); } public void doClick(String selectedId) { setSelectedBlockId(selectedId); } public IAsset getLeftTabAsset() { return isTabSelected() ? getActiveTabLeftImage() : getInactiveTabLeftImage(); } public IAsset getMidTabAsset() { return isTabSelected() ? getActiveTabMidImage() : getInactiveTabMidImage(); } public IAsset getRightTabAsset() { return isTabSelected() ? getActiveTabRightImage() : getInactiveTabRightImage(); } }