On Fri, 24 Jun 2011 10:57:43 -0300, George Christman <gchrist...@cardaddy.com> wrote:

Would you mind elaborating a bit on getting the Funding ValueEncoder from
ValueEncoder source, or point me to an example? I'm not very familiar with the ValueEncoder and not finding much doc on your method.

Something like this (not tested):

<select t:type="Select" ... t:encoder="fundingEncoder"/>

final private static Funding OTHER = new Funding();
final private static String OTHER_ID = "-1";

@Inject
private ValueEncoderSource valueEncoderSource;

public ValueEncoder<Funding> getFundingEncoder() {
final ValueEndcoder<Funding> encoder = valueEncoderSource.getValueEncoder(Funding.class);
        return new FundingValueEncoder(encoder);
}

final private static FundingValueEncoder implements ValueEncoder<Funding> {
        final private ValueEncoder<Funding> delegate;
        public FundingValueEncoder(ValueEncoder<Funding> delegate) {
                this.delegate = delegate;
        }
        public String toClient(Funding value) {
                if (value == OTHER) {
                        return OTHER_ID;
                }
                else {
                        return delegate.toClient(value);
                }
        }
        public Funding toValue(String clientValue) {
                if (OTHER_ID.equals(clientValue) {
                        return OTHER;
                }
                else {
                        return delegate.toValue(clientValue);
                }
        }
}

--
Thiago H. de Paula Figueiredo
Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, and instructor
Owner, Ars Machina Tecnologia da Informação Ltda.
http://www.arsmachina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to