Another level of indirection?
for compoundpropertymode Could I could do
add(new textfield("foo").setModel(new uppercasingmodel(this))) ?

if this is the webpage with the "foo" field.

Compared to
add(new UpperCaseTextfield("foo"));

the latter would be more efficient and clean.



>class uppercasingmodel implements imodel {
>  private final imodel delegate;
>
>  public void setobject(object) {
>      delegate.setobject(uppercase((string)object));
>  }
>  ...
>}
>
>add(new textfield("foo", new uppercasingmodel(model)));
>
>-igor
>
>
>On Mon, Mar 10, 2008 at 3:31 AM,  <[EMAIL PROTECTED]> wrote:
>> I'd consider it a "generic" business component that applies
>>  to so many apps/business pojos that would justify it to become a web 
>component,
>>  much like RequiredTextField or even PasswordTextField.
>>
>>  Could you illustrate how to do it better with model decorator
>>  to use it like using RequiredTextField?
>>
>>
>>
>>
>>  >no, "upper case string" is not a special type, not unless you do not
>>  >use String to represent it...like i said, my suggestion is to do this
>>  >via a model decorator. further, something like this doesnt even sound
>>  >like it belongs in the web layer - sounds like a business requirement
>>  >which should be enforced by the setter of the bussiness pojo.
>>  >
>>  >-igor
>>
>>
>> >
>>  >
>>  >On Sun, Mar 9, 2008 at 7:57 PM,  <[EMAIL PROTECTED]> wrote:
>>  >> I used the trick it worked great. Thanks very much.
>>  >>  Should it be considered a bug?
>>  >>  What is interesting before using setType is that getConverter is 
>actually
>>  >>   called (from my simple tracing), but after that its methods were
>>  >>  not called (I guess somewhere it learned the modelobject was a String 
>so
>>  >>  it simply call the built-in converter.
>>  >>  I'd think if the getConverter is overriden, its methods should be 
>called
>>  >>  regardless of what type was it.  Besides, UppercaseString is
>>  >>  a special "Type" so it does not conflict with the rules.
>>  >>  (Any custom converter could be considered to target a special type
>>  >>  even though it could be just uppercasing or prepend a * to the string)
>>  >>  Built-in converter might follow the default rules but
>>  >>  if custom converter is provided, wicket should totally depend
>>  >>  on the custom converter to do whatever it does.
>>  >>
>>  >>  Anyway, thanks again.
>>  >>
>>  >>
>>  >>
>>  >>  >if you set the type yourself by hand then getConverter() will be 
>called
>>  >and
>>  >>  >you can do what ever you want
>>  >>  >We dont do that automatic yes (resolveType doesn't set it to the
>>  >>  >String.class)
>>  >>  >
>>  >>  >johan
>>  >>  >
>>  >>  >
>>  >>  >
>>  >>  >On Sun, Mar 9, 2008 at 5:45 PM, Igor Vaynberg 
><[EMAIL PROTECTED]>
>>  >>  >wrote:
>>  >>  >
>>  >>  >> i thought we agreed converters were type converters...so they 
>shouldnt
>>  >>  >> be invoked if you are doing string->string :|
>>  >>  >>
>>  >>  >> -igor
>>  >>  >>
>>  >>  >>
>>  >>  >> On Sun, Mar 9, 2008 at 5:47 AM, Johan Compagner 
><[EMAIL PROTECTED]>
>>  >>  >> wrote:
>>  >>  >> > call setTYpe(String.class) on the textfield
>>  >>  >> >  or use that constructor with the type param
>>  >>  >> >
>>  >>  >> >  does that help?
>>  >>  >> >
>>  >>  >> >
>>  >>  >> >
>>  >>  >> >  On Sun, Mar 9, 2008 at 1:35 PM, <[EMAIL PROTECTED]> wrote:
>>  >>  >> >
>>  >>  >> >  > Below is a custom component with overrding the getConverter
>>  >>  >> >  > for testing purpose. As you could see, it is plain simple one
>>  >>  >> >  > with simple output debugging. But it is not working.
>>  >>  >> >  > the getConverter is called (output "here")
>>  >>  >> >  > but the convertToObject never called (no "there")
>>  >>  >> >  > I basically cut and paste the WicketinAction example.
>>  >>  >> >  > What I am doing wrong here?
>>  >>  >> >  >
>>  >>  >> >  >
>>  >>  >> >  > public class RequiredUppperCaseTextField extends TextField {
>>  >>  >> >  >
>>  >>  >> >  >    public RequiredUppperCaseTextField(String id) {
>>  >>  >> >  >        super(id);
>>  >>  >> >  >        setRequired(true);
>>  >>  >> >  >
>>  >>  >> >  >    }
>>  >>  >> >  >    @Override
>>  >>  >> >  >    public final IConverter getConverter(Class arg000){
>>  >>  >> >  >        System.out.println("here"+ arg0);
>>  >>  >> >  >       IConverter icAppend = new IConverter(){
>>  >>  >> >  >
>>  >>  >> >  >            public Object convertToObject(String arg0, Locale 
>arg1)
>>  >{
>>  >>  >> >  >                System.out.println("there"+ arg0);
>>  >>  >> >  >                String s = "sss";
>>  >>  >> >  >                return s;
>>  >>  >> >  >            }
>>  >>  >> >  >
>>  >>  >> >  >            public String convertToString(Object arg0, Locale 
>arg1)
>>  >{
>>  >>  >> >  >                return (String)arg0;
>>  >>  >> >  >            }
>>  >>  >> >  >
>>  >>  >> >  >        };
>>  >>  >> >  >        return icAppend;
>>  >>  >> >  >     }
>>  >>  >> >  >
>>  >>  >> >  > }
>>  >>  >> >  >
>>  >>  >> >  >
>>  >>  >> >  > >Override the getConverter() method. First call super and with
>>  >that
>>  >>  >> >  > >result call the special one (camel casing?)
>>  >>  >> >  > >
>>  >>  >> >  > >On 3/9/08, [EMAIL PROTECTED] <[EMAIL PROTECTED]> 
>wrote:
>>  >>  >> >  > >> Hello:
>>  >>  >> >  > >> I wonder how to "append" a converter or java method to a
>>  >component
>>  >>  >> so
>>  >>  >> >  > that
>>  >>  >> >  > >I
>>  >>  >> >  > >> would affect what is already defined. For example, I want
>>  >>  >> "camelize" a
>>  >>  >> >  > >> TextField(or some customized subclass) so that after the
>>  >converter
>>  >>  >> >  > already
>>  >>  >> >  > >> defined completes the conversion (regardless what has been 
>done
>>  >in
>>  >>  >> the
>>  >>  >> >  > >> chain) , I could use the added converted/method to make the
>>  >final
>>  >>  >> >  > >conversion
>>  >>  >> >  > >> to my need. The example I am seeing appears to "overide" 
>and
>>  >only
>>  >>  >> one
>>  >>  >> >  > can
>>  >>  >> >  > >be
>>  >>  >> >  > >> defined for a component, unlike validators, that I could add 
>a
>>  >>  >> chain of
>>  >>  >> >  > >> them. Let me know if I am wrong about this.
>>  >>  >> >  > >> Thanks
>>  >>  >> >  > >
>>  >>  >> >  >
>>  >>  >> 
>>---------------------------------------------------------------------
>>  >>  >> >  > >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]
>>  >>
>>  >>
>>  >
>>  >---------------------------------------------------------------------
>>  >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]

Reply via email to