package com.googlecode.tawus.internal; import org.apache.tapestry5.Block; import org.apache.tapestry5.PropertyOverrides; import org.apache.tapestry5.ioc.Messages; /** * Delegates local properties to local * {@link org.apache.tapestry5.PropertyOverrides} and other properties to main * {@link org.apache.tapestry5.PropertyOverrides} */ public class PropertyOverridesDelegator implements PropertyOverrides { private final PropertyOverrides main; private final PropertyOverrides local; private final String actionProperty; /** * Constructor * * @param main * main {@link org.apache.tapestry5.PropertyOverrides} * @param local * local {@link org.apache.tapestry5.PropertyOverrides} * @param localProperties * properties to be locally overridden */ public PropertyOverridesDelegator(final PropertyOverrides main, final PropertyOverrides local, final String actionProperty) { this.main = main; this.local = local; this.actionProperty = actionProperty; } /** * {@inheritDoc} */ public Block getOverrideBlock(final String name) { if(actionProperty.replace(".", "").equalsIgnoreCase(name)) { return local.getOverrideBlock("actionCell"); } else { return main.getOverrideBlock(name); } } /** * {@inheritDoc} * * Local Messages are not used * * @return main messages */ public Messages getOverrideMessages() { return main.getOverrideMessages(); } }