This should be possible by going over an EnumSet (or anything else Iterable) with the loop component
and rendering an option component in every iteration. Something like
@Property
private EnumSet<EnumType> enums;
@Property
private EnumType enum;
@Property
private EnumType loopValue;
<t:radiogroup value="enum">
<t:loop source="enums" value="loopValue">
<t:radio value="loopValue" />
</t:loop>
</t:radiogroup>
I just wrote that down from memory, no guarantee that this works but you might
try it.
HTH,
Uli
Alexey Hanin schrieb:
But what if I'll have to deal with variable length radio groups where
item value can't be hard-coded?
On Wed, Oct 8, 2008 at 4:43 PM, Ulrich Stärk <[EMAIL PROTECTED]> wrote:
I believe you'll have to write a TypeCoercer from String to EnumType and
back and contribute that to the TypeCoercer service. See
http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/services/TapestryModule.html
for examples how to do this.
But if you can live with your values not being literal strings, you could
just follow the example here:
http://tapestry.apache.org/tapestry5/tapestry-core/ref/org/apache/tapestry5/corelib/components/Radio.html
HTH,
Uli
Am Mi, 8.10.2008, 15:10, schrieb Alexey Hanin:
Hello,
I'm trying to use RadioGroup with Enum values and getting
ClassCastException: java.lang.String cannot be cast to java.lang.Enum.
My page is as follows:
public class Page {
private EnumValueEncoder<EnumType> enumTypeEncoder = new
EnumValueEncoder<EnumType>(EnumType.class);
private EnumType enumType;
public EnumType getEnumType() {
return enumType;
}
public void setEnumType(EnumType enumType) {
this.enumType = enumType;
}
public EnumValueEncoder<EnumType> getEnumTypeEncoder() {
return enumTypeEncoder;
}
}
public enum EnumType {
A, B
}
<t:radiogroup t:id="enumType" t:encoder="enumTypeEncoder">
<input t:type="radio" t:value="literal:A"/>
<input t:type="radio" t:value="literal:B"/>
</t:radiogroup>
I supposed literal representation must be evaluated to corresponding
enum values and wise-versa, but I got a ClassCastException.
I found this way logical and I really don't want to use getters for
every element of enum. Is there any ways to achieve this?
Tapestry version is 5.0.15
Regards,
Alexey.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]