You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Tobias Wehrum <Le...@dragonlab.de> on 2008/04/15 18:37:53 UTC

T5: Teaching the BeanModel to always add my class

Hi there,

I have a class named "Status" which implements toString(). But still 
when I have class A, which has a property of type Status, I always have 
to add the Status property to the BeanModel with model.add("myStatus").

Obviously implementing toString() isn't enough to teach my the BeanModel 
a new trick. So I tried to contribute a TypeCoercer and a 
TranslatorSource, but neither of them seems to work.

My try on TypeCoercer:

--------------------------------------------------
    public static void 
contributeTypeCoercer(Configuration<CoercionTuple> configuration)
    {
        Coercion<Status, String> coercionStatusString = new 
Coercion<Status, String>()
        {
            public String coerce(Status input)
            {
                return input.toString();
            }
        };
           
        configuration.add(new CoercionTuple<Status, 
String>(Status.class, String.class, coercionStatusString));    
    }
--------------------------------------------------


My try on TranslatorSource:

--------------------------------------------------
    public static void 
contributeTranslatorDefaultSource(MappedConfiguration<Class, Translator> 
configuration) {
        configuration.add(Status.class, new StatusTranslator());
    }
   
    public static void 
contributeTranslatorSource(MappedConfiguration<String, Translator> 
configuration) {
        configuration.add("status", new StatusTranslator());
    }
--------------------------------------------------

--------------------------------------------------
public class StatusTranslator implements Translator<Status> {

    public Class<Status> getType() {
        return Status.class;
    }

    public Status parseClient(String arg0, Messages arg1)
            throws ValidationException {
        throw new ValidationException("StatusTranslator cannot implement 
parseClient()");
    }

    public String toClient(Status arg0) {
        return arg0.toString();
    }

}
--------------------------------------------------


Am I missing something? Or am I on a complete wrong path?
Any hints on how to solve my problem are welcome.

Thanks in advance,
Tobias

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


Re: T5: Teaching the BeanModel to always add my class

Posted by Tobias Wehrum <Le...@dragonlab.de>.
Hi Filip,

it's good to hear that it is just a leftover, so I can ignore it and 
stop wondering.

Thanks again for your help!
Tobias

Filip S. Adamsen schrieb:
> Hi,
>
> On 2008-04-15 19:13, Tobias Wehrum wrote:
>> Thank you, Filip!
>>
>> Looking through the page you suggested, I found the missing piece of 
>> code:
>>
>> --------------------------------------------------
>> public static void 
>> contributeDefaultDataTypeAnalyzer(MappedConfiguration<Class, String> 
>> configuration)
>>      {
>>        configuration.add(Status.class, "status");
>>      }
>> --------------------------------------------------
>>
>> And now it works! :)
>
> Great. :)
>
>> Just because I'm curious: What does contributeTranslatorDefaultSource 
>> do? Using it didn't seem to have any effect.
>
> Well, it's a leftover from earlier on when you had to contribute to 
> both TranslatorSource and TranslatorDefaultSource. It was kind of 
> awkward so it was changed.
>
>> Tobias
>
> -Filip
>
>> Tobias Wehrum schrieb:
>>> Hi there,
>>>
>>> yes, maybe I caused confusion. To further point out what I'm trying 
>>> to do: I just want to output whatever value Status.toString() will 
>>> return to me, for example in a grid. When I add the property to the 
>>> BeanModel, tapestry has no problems calling toString() 
>>> automatically; but at the moment, like I said, I have to add it 
>>> first to the BeanModel, and I want to automatize this. (When it 
>>> comes to input, I will implement t:parameter for it.)
>>>
>>> Regards,
>>> Tobias
>>>
>>> Filip S. Adamsen schrieb:
>>>> Oh, sorry, didn't catch that all you want to edit is a String 
>>>> property from another class. I don't know what else there is to do, 
>>>> then.
>>>>
>>>> -Filip
>>>>
>>>> On 2008-04-15 18:41, Filip S. Adamsen wrote:
>>>>> Hi,
>>>>>
>>>>> You might need to add a new property editor, see Adding New 
>>>>> Property Editors at 
>>>>> http://tapestry.apache.org/tapestry5/tapestry-core/guide/beaneditform.html. 
>>>>>
>>>>>
>>>>> -Filip
>>>>>
>>>>> On 2008-04-15 18:37, Tobias Wehrum wrote:
>>>>>> Hi there,
>>>>>>
>>>>>> I have a class named "Status" which implements toString(). But 
>>>>>> still when I have class A, which has a property of type Status, I 
>>>>>> always have to add the Status property to the BeanModel with 
>>>>>> model.add("myStatus").
>>>>>>
>>>>>> Obviously implementing toString() isn't enough to teach my the 
>>>>>> BeanModel a new trick. So I tried to contribute a TypeCoercer and 
>>>>>> a TranslatorSource, but neither of them seems to work.
>>>>>>
>>>>>> My try on TypeCoercer:
>>>>>>
>>>>>> --------------------------------------------------
>>>>>>    public static void 
>>>>>> contributeTypeCoercer(Configuration<CoercionTuple> configuration)
>>>>>>    {
>>>>>>        Coercion<Status, String> coercionStatusString = new 
>>>>>> Coercion<Status, String>()
>>>>>>        {
>>>>>>            public String coerce(Status input)
>>>>>>            {
>>>>>>                return input.toString();
>>>>>>            }
>>>>>>        };
>>>>>>                  configuration.add(new CoercionTuple<Status, 
>>>>>> String>(Status.class, String.class, coercionStatusString));       }
>>>>>> --------------------------------------------------
>>>>>>
>>>>>>
>>>>>> My try on TranslatorSource:
>>>>>>
>>>>>> --------------------------------------------------
>>>>>>    public static void 
>>>>>> contributeTranslatorDefaultSource(MappedConfiguration<Class, 
>>>>>> Translator> configuration) {
>>>>>>        configuration.add(Status.class, new StatusTranslator());
>>>>>>    }
>>>>>>      public static void 
>>>>>> contributeTranslatorSource(MappedConfiguration<String, 
>>>>>> Translator> configuration) {
>>>>>>        configuration.add("status", new StatusTranslator());
>>>>>>    }
>>>>>> --------------------------------------------------
>>>>>>
>>>>>> --------------------------------------------------
>>>>>> public class StatusTranslator implements Translator<Status> {
>>>>>>
>>>>>>    public Class<Status> getType() {
>>>>>>        return Status.class;
>>>>>>    }
>>>>>>
>>>>>>    public Status parseClient(String arg0, Messages arg1)
>>>>>>            throws ValidationException {
>>>>>>        throw new ValidationException("StatusTranslator cannot 
>>>>>> implement parseClient()");
>>>>>>    }
>>>>>>
>>>>>>    public String toClient(Status arg0) {
>>>>>>        return arg0.toString();
>>>>>>    }
>>>>>>
>>>>>> }
>>>>>> --------------------------------------------------
>>>>>>
>>>>>>
>>>>>> Am I missing something? Or am I on a complete wrong path?
>>>>>> Any hints on how to solve my problem are welcome.
>>>>>>
>>>>>> Thanks in advance,
>>>>>> Tobias
>>>>>>
>>>>>> --------------------------------------------------------------------- 
>>>>>>
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


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


Re: T5: Teaching the BeanModel to always add my class

Posted by "Filip S. Adamsen" <fs...@fsadev.com>.
Hi,

On 2008-04-15 19:13, Tobias Wehrum wrote:
> Thank you, Filip!
> 
> Looking through the page you suggested, I found the missing piece of code:
> 
> --------------------------------------------------
> public static void 
> contributeDefaultDataTypeAnalyzer(MappedConfiguration<Class, String> 
> configuration)
>      {
>        configuration.add(Status.class, "status");
>      }
> --------------------------------------------------
> 
> And now it works! :)

Great. :)

> Just because I'm curious: What does contributeTranslatorDefaultSource 
> do? Using it didn't seem to have any effect.

Well, it's a leftover from earlier on when you had to contribute to both 
TranslatorSource and TranslatorDefaultSource. It was kind of awkward so 
it was changed.

> Tobias

-Filip

> Tobias Wehrum schrieb:
>> Hi there,
>>
>> yes, maybe I caused confusion. To further point out what I'm trying to 
>> do: I just want to output whatever value Status.toString() will return 
>> to me, for example in a grid. When I add the property to the 
>> BeanModel, tapestry has no problems calling toString() automatically; 
>> but at the moment, like I said, I have to add it first to the 
>> BeanModel, and I want to automatize this. (When it comes to input, I 
>> will implement t:parameter for it.)
>>
>> Regards,
>> Tobias
>>
>> Filip S. Adamsen schrieb:
>>> Oh, sorry, didn't catch that all you want to edit is a String 
>>> property from another class. I don't know what else there is to do, 
>>> then.
>>>
>>> -Filip
>>>
>>> On 2008-04-15 18:41, Filip S. Adamsen wrote:
>>>> Hi,
>>>>
>>>> You might need to add a new property editor, see Adding New Property 
>>>> Editors at 
>>>> http://tapestry.apache.org/tapestry5/tapestry-core/guide/beaneditform.html. 
>>>>
>>>>
>>>> -Filip
>>>>
>>>> On 2008-04-15 18:37, Tobias Wehrum wrote:
>>>>> Hi there,
>>>>>
>>>>> I have a class named "Status" which implements toString(). But 
>>>>> still when I have class A, which has a property of type Status, I 
>>>>> always have to add the Status property to the BeanModel with 
>>>>> model.add("myStatus").
>>>>>
>>>>> Obviously implementing toString() isn't enough to teach my the 
>>>>> BeanModel a new trick. So I tried to contribute a TypeCoercer and a 
>>>>> TranslatorSource, but neither of them seems to work.
>>>>>
>>>>> My try on TypeCoercer:
>>>>>
>>>>> --------------------------------------------------
>>>>>    public static void 
>>>>> contributeTypeCoercer(Configuration<CoercionTuple> configuration)
>>>>>    {
>>>>>        Coercion<Status, String> coercionStatusString = new 
>>>>> Coercion<Status, String>()
>>>>>        {
>>>>>            public String coerce(Status input)
>>>>>            {
>>>>>                return input.toString();
>>>>>            }
>>>>>        };
>>>>>                  configuration.add(new CoercionTuple<Status, 
>>>>> String>(Status.class, String.class, coercionStatusString));       }
>>>>> --------------------------------------------------
>>>>>
>>>>>
>>>>> My try on TranslatorSource:
>>>>>
>>>>> --------------------------------------------------
>>>>>    public static void 
>>>>> contributeTranslatorDefaultSource(MappedConfiguration<Class, 
>>>>> Translator> configuration) {
>>>>>        configuration.add(Status.class, new StatusTranslator());
>>>>>    }
>>>>>      public static void 
>>>>> contributeTranslatorSource(MappedConfiguration<String, Translator> 
>>>>> configuration) {
>>>>>        configuration.add("status", new StatusTranslator());
>>>>>    }
>>>>> --------------------------------------------------
>>>>>
>>>>> --------------------------------------------------
>>>>> public class StatusTranslator implements Translator<Status> {
>>>>>
>>>>>    public Class<Status> getType() {
>>>>>        return Status.class;
>>>>>    }
>>>>>
>>>>>    public Status parseClient(String arg0, Messages arg1)
>>>>>            throws ValidationException {
>>>>>        throw new ValidationException("StatusTranslator cannot 
>>>>> implement parseClient()");
>>>>>    }
>>>>>
>>>>>    public String toClient(Status arg0) {
>>>>>        return arg0.toString();
>>>>>    }
>>>>>
>>>>> }
>>>>> --------------------------------------------------
>>>>>
>>>>>
>>>>> Am I missing something? Or am I on a complete wrong path?
>>>>> Any hints on how to solve my problem are welcome.
>>>>>
>>>>> Thanks in advance,
>>>>> Tobias
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 

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


Re: T5: Teaching the BeanModel to always add my class

Posted by Tobias Wehrum <Le...@dragonlab.de>.
Thank you, Filip!

Looking through the page you suggested, I found the missing piece of code:

--------------------------------------------------
public static void 
contributeDefaultDataTypeAnalyzer(MappedConfiguration<Class, String> 
configuration)
      {
        configuration.add(Status.class, "status");
      }
--------------------------------------------------

And now it works! :)

Just because I'm curious: What does contributeTranslatorDefaultSource 
do? Using it didn't seem to have any effect.

Tobias

Tobias Wehrum schrieb:
> Hi there,
>
> yes, maybe I caused confusion. To further point out what I'm trying to 
> do: I just want to output whatever value Status.toString() will return 
> to me, for example in a grid. When I add the property to the 
> BeanModel, tapestry has no problems calling toString() automatically; 
> but at the moment, like I said, I have to add it first to the 
> BeanModel, and I want to automatize this. (When it comes to input, I 
> will implement t:parameter for it.)
>
> Regards,
> Tobias
>
> Filip S. Adamsen schrieb:
>> Oh, sorry, didn't catch that all you want to edit is a String 
>> property from another class. I don't know what else there is to do, 
>> then.
>>
>> -Filip
>>
>> On 2008-04-15 18:41, Filip S. Adamsen wrote:
>>> Hi,
>>>
>>> You might need to add a new property editor, see Adding New Property 
>>> Editors at 
>>> http://tapestry.apache.org/tapestry5/tapestry-core/guide/beaneditform.html. 
>>>
>>>
>>> -Filip
>>>
>>> On 2008-04-15 18:37, Tobias Wehrum wrote:
>>>> Hi there,
>>>>
>>>> I have a class named "Status" which implements toString(). But 
>>>> still when I have class A, which has a property of type Status, I 
>>>> always have to add the Status property to the BeanModel with 
>>>> model.add("myStatus").
>>>>
>>>> Obviously implementing toString() isn't enough to teach my the 
>>>> BeanModel a new trick. So I tried to contribute a TypeCoercer and a 
>>>> TranslatorSource, but neither of them seems to work.
>>>>
>>>> My try on TypeCoercer:
>>>>
>>>> --------------------------------------------------
>>>>    public static void 
>>>> contributeTypeCoercer(Configuration<CoercionTuple> configuration)
>>>>    {
>>>>        Coercion<Status, String> coercionStatusString = new 
>>>> Coercion<Status, String>()
>>>>        {
>>>>            public String coerce(Status input)
>>>>            {
>>>>                return input.toString();
>>>>            }
>>>>        };
>>>>                  configuration.add(new CoercionTuple<Status, 
>>>> String>(Status.class, String.class, coercionStatusString));       }
>>>> --------------------------------------------------
>>>>
>>>>
>>>> My try on TranslatorSource:
>>>>
>>>> --------------------------------------------------
>>>>    public static void 
>>>> contributeTranslatorDefaultSource(MappedConfiguration<Class, 
>>>> Translator> configuration) {
>>>>        configuration.add(Status.class, new StatusTranslator());
>>>>    }
>>>>      public static void 
>>>> contributeTranslatorSource(MappedConfiguration<String, Translator> 
>>>> configuration) {
>>>>        configuration.add("status", new StatusTranslator());
>>>>    }
>>>> --------------------------------------------------
>>>>
>>>> --------------------------------------------------
>>>> public class StatusTranslator implements Translator<Status> {
>>>>
>>>>    public Class<Status> getType() {
>>>>        return Status.class;
>>>>    }
>>>>
>>>>    public Status parseClient(String arg0, Messages arg1)
>>>>            throws ValidationException {
>>>>        throw new ValidationException("StatusTranslator cannot 
>>>> implement parseClient()");
>>>>    }
>>>>
>>>>    public String toClient(Status arg0) {
>>>>        return arg0.toString();
>>>>    }
>>>>
>>>> }
>>>> --------------------------------------------------
>>>>
>>>>
>>>> Am I missing something? Or am I on a complete wrong path?
>>>> Any hints on how to solve my problem are welcome.
>>>>
>>>> Thanks in advance,
>>>> Tobias
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


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


Re: T5: Teaching the BeanModel to always add my class

Posted by Tobias Wehrum <Le...@dragonlab.de>.
Hi there,

yes, maybe I caused confusion. To further point out what I'm trying to 
do: I just want to output whatever value Status.toString() will return 
to me, for example in a grid. When I add the property to the BeanModel, 
tapestry has no problems calling toString() automatically; but at the 
moment, like I said, I have to add it first to the BeanModel, and I want 
to automatize this. (When it comes to input, I will implement 
t:parameter for it.)

Regards,
Tobias

Filip S. Adamsen schrieb:
> Oh, sorry, didn't catch that all you want to edit is a String property 
> from another class. I don't know what else there is to do, then.
>
> -Filip
>
> On 2008-04-15 18:41, Filip S. Adamsen wrote:
>> Hi,
>>
>> You might need to add a new property editor, see Adding New Property 
>> Editors at 
>> http://tapestry.apache.org/tapestry5/tapestry-core/guide/beaneditform.html. 
>>
>>
>> -Filip
>>
>> On 2008-04-15 18:37, Tobias Wehrum wrote:
>>> Hi there,
>>>
>>> I have a class named "Status" which implements toString(). But still 
>>> when I have class A, which has a property of type Status, I always 
>>> have to add the Status property to the BeanModel with 
>>> model.add("myStatus").
>>>
>>> Obviously implementing toString() isn't enough to teach my the 
>>> BeanModel a new trick. So I tried to contribute a TypeCoercer and a 
>>> TranslatorSource, but neither of them seems to work.
>>>
>>> My try on TypeCoercer:
>>>
>>> --------------------------------------------------
>>>    public static void 
>>> contributeTypeCoercer(Configuration<CoercionTuple> configuration)
>>>    {
>>>        Coercion<Status, String> coercionStatusString = new 
>>> Coercion<Status, String>()
>>>        {
>>>            public String coerce(Status input)
>>>            {
>>>                return input.toString();
>>>            }
>>>        };
>>>                  configuration.add(new CoercionTuple<Status, 
>>> String>(Status.class, String.class, coercionStatusString));       }
>>> --------------------------------------------------
>>>
>>>
>>> My try on TranslatorSource:
>>>
>>> --------------------------------------------------
>>>    public static void 
>>> contributeTranslatorDefaultSource(MappedConfiguration<Class, 
>>> Translator> configuration) {
>>>        configuration.add(Status.class, new StatusTranslator());
>>>    }
>>>      public static void 
>>> contributeTranslatorSource(MappedConfiguration<String, Translator> 
>>> configuration) {
>>>        configuration.add("status", new StatusTranslator());
>>>    }
>>> --------------------------------------------------
>>>
>>> --------------------------------------------------
>>> public class StatusTranslator implements Translator<Status> {
>>>
>>>    public Class<Status> getType() {
>>>        return Status.class;
>>>    }
>>>
>>>    public Status parseClient(String arg0, Messages arg1)
>>>            throws ValidationException {
>>>        throw new ValidationException("StatusTranslator cannot 
>>> implement parseClient()");
>>>    }
>>>
>>>    public String toClient(Status arg0) {
>>>        return arg0.toString();
>>>    }
>>>
>>> }
>>> --------------------------------------------------
>>>
>>>
>>> Am I missing something? Or am I on a complete wrong path?
>>> Any hints on how to solve my problem are welcome.
>>>
>>> Thanks in advance,
>>> Tobias
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


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


Re: T5: Teaching the BeanModel to always add my class

Posted by "Filip S. Adamsen" <fs...@fsadev.com>.
Oh, sorry, didn't catch that all you want to edit is a String property 
from another class. I don't know what else there is to do, then.

-Filip

On 2008-04-15 18:41, Filip S. Adamsen wrote:
> Hi,
> 
> You might need to add a new property editor, see Adding New Property 
> Editors at 
> http://tapestry.apache.org/tapestry5/tapestry-core/guide/beaneditform.html.
> 
> -Filip
> 
> On 2008-04-15 18:37, Tobias Wehrum wrote:
>> Hi there,
>>
>> I have a class named "Status" which implements toString(). But still 
>> when I have class A, which has a property of type Status, I always 
>> have to add the Status property to the BeanModel with 
>> model.add("myStatus").
>>
>> Obviously implementing toString() isn't enough to teach my the 
>> BeanModel a new trick. So I tried to contribute a TypeCoercer and a 
>> TranslatorSource, but neither of them seems to work.
>>
>> My try on TypeCoercer:
>>
>> --------------------------------------------------
>>    public static void 
>> contributeTypeCoercer(Configuration<CoercionTuple> configuration)
>>    {
>>        Coercion<Status, String> coercionStatusString = new 
>> Coercion<Status, String>()
>>        {
>>            public String coerce(Status input)
>>            {
>>                return input.toString();
>>            }
>>        };
>>                  configuration.add(new CoercionTuple<Status, 
>> String>(Status.class, String.class, coercionStatusString));       }
>> --------------------------------------------------
>>
>>
>> My try on TranslatorSource:
>>
>> --------------------------------------------------
>>    public static void 
>> contributeTranslatorDefaultSource(MappedConfiguration<Class, 
>> Translator> configuration) {
>>        configuration.add(Status.class, new StatusTranslator());
>>    }
>>      public static void 
>> contributeTranslatorSource(MappedConfiguration<String, Translator> 
>> configuration) {
>>        configuration.add("status", new StatusTranslator());
>>    }
>> --------------------------------------------------
>>
>> --------------------------------------------------
>> public class StatusTranslator implements Translator<Status> {
>>
>>    public Class<Status> getType() {
>>        return Status.class;
>>    }
>>
>>    public Status parseClient(String arg0, Messages arg1)
>>            throws ValidationException {
>>        throw new ValidationException("StatusTranslator cannot 
>> implement parseClient()");
>>    }
>>
>>    public String toClient(Status arg0) {
>>        return arg0.toString();
>>    }
>>
>> }
>> --------------------------------------------------
>>
>>
>> Am I missing something? Or am I on a complete wrong path?
>> Any hints on how to solve my problem are welcome.
>>
>> Thanks in advance,
>> Tobias
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 

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


Re: T5: Teaching the BeanModel to always add my class

Posted by "Filip S. Adamsen" <fs...@fsadev.com>.
Hi,

You might need to add a new property editor, see Adding New Property 
Editors at 
http://tapestry.apache.org/tapestry5/tapestry-core/guide/beaneditform.html.

-Filip

On 2008-04-15 18:37, Tobias Wehrum wrote:
> Hi there,
> 
> I have a class named "Status" which implements toString(). But still 
> when I have class A, which has a property of type Status, I always have 
> to add the Status property to the BeanModel with model.add("myStatus").
> 
> Obviously implementing toString() isn't enough to teach my the BeanModel 
> a new trick. So I tried to contribute a TypeCoercer and a 
> TranslatorSource, but neither of them seems to work.
> 
> My try on TypeCoercer:
> 
> --------------------------------------------------
>    public static void contributeTypeCoercer(Configuration<CoercionTuple> 
> configuration)
>    {
>        Coercion<Status, String> coercionStatusString = new 
> Coercion<Status, String>()
>        {
>            public String coerce(Status input)
>            {
>                return input.toString();
>            }
>        };
>                  configuration.add(new CoercionTuple<Status, 
> String>(Status.class, String.class, coercionStatusString));       }
> --------------------------------------------------
> 
> 
> My try on TranslatorSource:
> 
> --------------------------------------------------
>    public static void 
> contributeTranslatorDefaultSource(MappedConfiguration<Class, Translator> 
> configuration) {
>        configuration.add(Status.class, new StatusTranslator());
>    }
>      public static void 
> contributeTranslatorSource(MappedConfiguration<String, Translator> 
> configuration) {
>        configuration.add("status", new StatusTranslator());
>    }
> --------------------------------------------------
> 
> --------------------------------------------------
> public class StatusTranslator implements Translator<Status> {
> 
>    public Class<Status> getType() {
>        return Status.class;
>    }
> 
>    public Status parseClient(String arg0, Messages arg1)
>            throws ValidationException {
>        throw new ValidationException("StatusTranslator cannot implement 
> parseClient()");
>    }
> 
>    public String toClient(Status arg0) {
>        return arg0.toString();
>    }
> 
> }
> --------------------------------------------------
> 
> 
> Am I missing something? Or am I on a complete wrong path?
> Any hints on how to solve my problem are welcome.
> 
> Thanks in advance,
> Tobias
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 

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