[Wicket-user] Re: Re: Re: strange behaviour of TextField conversion to Float in beta3

2006-04-07 Thread Jaime De La Jara
I commented the lines that define the datetostring converterand the effect was that the date was displayed using toString()and the float value was displayed correctly.So, how can I define converters for different types, likeFloat and Date from and to String?. In a previous post I learnt that that the conversion was a two-way process, that is from type1-type2 and from type2-type1, and that was applicable to a textfield.I'm lost here.Jaime.i think the problem is that you registered your own converter for String.class so when wicket will try to display the float in the textfield it will try to format it to string, and it will use the datetostring converter you registered.-IgorOn 4/7/06, Jaime De La Jara [EMAIL PROTECTED] wrote: Here is the original code to define a Date format :  getApplicationSettings().setConverterFactory(new
 IConverterFactory(){ public IConverter newConverter(final Locale locale) {  final Converter converter = new Converter(locale);  // String - Date  DateConverter dc = new DateConverter();  dc.setDateFormat(locale, new SimpleDateFormat("dd-MM-"));  converter.set(Date.class, dc);  // Date - String  DateToStringConverter dsc  = new DateToStringConverter();  dsc.setDateFormat(locale, new SimpleDateFormat("dd-MM-") );  converter.set(String.class, dsc); (*)  return converter; }}   ); But in this case a float value gets formatted as it were a Date. If a insert the following code in (*) :  // Float - String  NumberToStringConverter numberToStringConverter = new  NumberToStringConverter();  DecimalFormat fmt
 = new  DecimalFormat("###,###,###,###.#");  numberToStringConverter.setNumberFormat(locale, fmt);  final StringConverter stringConverter = new  StringConverter();  stringConverter.set(Float.class, numberToStringConverter);  stringConverter.set(Float.TYPE, numberToStringConverter);  stringConverter.set(Date.class, dsc);  converter.set(String.class, stringConverter);  converter.set(Float.class, new FloatConverter()); I get the float value correctly formmatted but the date is displayed using Date.toString(). Jaime. can you show me youre converter code? On 4/6/06, Jaime De La Jara [EMAIL PROTECTED] wrote:   Yes, I use the following code :   add(new TextField("montoTotal", Float.class));   I've made some tests and found
 that commenting the  definition of the IConverterFactory for the date format  and defining the format for the float field and it worked,  however I cannot define the format for both types.   Thanks,   Jaime. did you do TextField.setType(Float.class) or create it with  the constructor that takes the class?   -IgorOn 4/6/06, Jaime De La Jara [EMAIL PROTECTED] wrote: Hi, I've just downloaded version 1.2 beta 3 and I have a   problem when editing the contents of a javabean,   particularly in a case of a Float field. The relevant   code is : Javabean :   public class Pago   {   .
   public Float getMontoTotal()   {   return Float.valueOf("1234567890");   }   ...   } Html : td class="tit"   input wicket:id="montoTotal" type="text" class="normal" size="20"/   /td   When the page is displayed it shows the following :   15-01-1970 in the textfield,   this value corresponds to the date equivalent (aprox)   to the above number in milisec. The only thing I've done that can be important to this   issue is to define a new IConverterFactory to apply the   same date format to the whole app. What is going on?
 Thanks. Jaime.  
		Yahoo! Messenger with Voice. Make PC-to-Phone Calls to the US (and 30+ countries) for 2¢/min or less.

Re: [Wicket-user] Re: Re: Re: strange behaviour of TextField conversion to Float in beta3

2006-04-07 Thread Igor Vaynberg
i dont think you can do this globally, i would override getConverter() on the textfield thats displaying dates, or craete a DateTextField subclass that does it for you.alternatively you can create a model decorator that does the conversion, advantage is that it will work for any component.
-IgorOn 4/7/06, Jaime De La Jara [EMAIL PROTECTED] wrote:
I commented the lines that define the datetostring converterand the effect was that the date was displayed using toString()and the float value was displayed correctly.So, how can I define converters for different types, like
Float and Date from and to String?. In a previous post I learnt that that the conversion was a two-way process, that is from type1-type2 and from type2-type1, and that was applicable to a textfield.
I'm lost here.Jaime.i think the problem is that you registered your own converter for String.class so when wicket will try to 
display the float in the textfield it will try to format it to string, and it will use the datetostring converter you registered.-IgorOn 4/7/06, Jaime De La Jara 
[EMAIL PROTECTED] wrote: Here is the original code to define a Date format :  getApplicationSettings().setConverterFactory(new
 IConverterFactory(){ public IConverter newConverter(final Locale locale) {  final Converter converter = new Converter(locale);  // String - Date  DateConverter dc = new DateConverter();
  dc.setDateFormat(locale, new SimpleDateFormat(dd-MM-));  converter.set(Date.class, dc);  // Date - String  DateToStringConverter dsc  = new DateToStringConverter();
  dsc.setDateFormat(locale, new SimpleDateFormat(dd-MM-) );  converter.set(String.class, dsc); (*)  return converter; }}   );
 But in this case a float value gets formatted as it were a Date. If a insert the following code in (*) :  // Float - String  NumberToStringConverter numberToStringConverter = new  NumberToStringConverter();
  DecimalFormat fmt
 = new  DecimalFormat(###,###,###,###.#);  numberToStringConverter.setNumberFormat(locale, fmt);  final StringConverter stringConverter = new  StringConverter();  stringConverter.set
(Float.class, numberToStringConverter);  stringConverter.set(Float.TYPE, numberToStringConverter);  stringConverter.set(Date.class, dsc);  converter.set(String.class, stringConverter);  converter.set
(Float.class, new FloatConverter()); I get the float value correctly formmatted but the date is displayed using Date.toString(). Jaime. can you show me youre converter code?
 On 4/6/06, Jaime De La Jara [EMAIL PROTECTED] wrote:   Yes, I use the following code :
   add(new TextField(montoTotal, Float.class));   I've made some tests and found
 that commenting the  definition of the IConverterFactory for the date format  and defining the format for the float field and it worked,  however I cannot define the format for both types.
   Thanks,   Jaime. did you do TextField.setType(Float.class) or create it with  the constructor that takes the class?
   -IgorOn 4/6/06, Jaime De La Jara [EMAIL PROTECTED]
 wrote: Hi, I've just downloaded version 1.2 beta 3 and I have a   problem when editing the contents of a javabean,   particularly in a case of a Float field. The relevant
   code is : Javabean :   public class Pago   {   .
   public Float getMontoTotal()   {   return Float.valueOf(1234567890);   }   ...   } Html :
 td class=tit   input wicket:id=montoTotal type=text class=normal size=20/   /td
   When the page is displayed it shows the following :   15-01-1970 in the textfield,   this value corresponds to the date equivalent (aprox)
   to the above number in milisec. The only thing I've done that can be important to this   issue is to define a new IConverterFactory to apply the   same date format to the whole app.
 What is going on?
 Thanks. Jaime.  
		Yahoo! Messenger with Voice. 
Make PC-to-Phone Calls to the US (and 30+ countries) for 2¢/min or less.



Re: [Wicket-user] Re: Re: Re: strange behaviour of TextField conversion to Float in beta3

2006-04-07 Thread Eelco Hillenius
Yeah, you can do that. Like this:

getApplicationSettings().setConverterFactory(new 
IConverterFactory()
{
public IConverter newConverter(final Locale locale)
{
final Converter converter = new 
Converter(locale);
// String - Date
DateConverter dc = new DateConverter();
dc.setDateFormat(locale, new 
SimpleDateFormat(dd-MM-));
converter.set(Date.class, dc);
// Date - String
DateToStringConverter dsc = new 
DateToStringConverter();
dsc.setDateFormat(locale, new 
SimpleDateFormat(dd-MM-));
StringConverter sc = new StringConverter();
sc.set(Date.class, dsc);
converter.set(String.class, sc);

return converter;
}
});

Notice the use of a seperate StringConverter that has a registry for
type converters itself.

It's kind of awkward right now. It's on our list to simplify for 1.3.

Eelco


On 4/7/06, Igor Vaynberg [EMAIL PROTECTED] wrote:
 i dont think you can do this globally, i would override getConverter() on
 the textfield thats displaying dates, or craete a DateTextField subclass
 that does it for you.

 alternatively you can create a model decorator that does the conversion,
 advantage is that it will work for any component.


 -Igor


 On 4/7/06, Jaime De La Jara [EMAIL PROTECTED] wrote:
 
 
  I commented the lines that define the datetostring converter
  and the effect was that the date was displayed using toString()
  and the float value was displayed correctly.
  So, how can I define converters for different types, like
 
  Float and Date from and to String?. In a previous post I
  learnt that that the conversion was a two-way process, that
  is from type1-type2 and from type2-type1, and that was
  applicable to a textfield.
 
  I'm lost here.
 
  Jaime.
 
 
 
 
 
  i think the problem is that you registered your own
  converter for String.class so when wicket will try to
  display the float in the textfield it will try to format it
  to string, and it will use the datetostring converter
  you registered.
 
  -Igor
 
 
  On 4/7/06, Jaime De La Jara  [EMAIL PROTECTED] wrote:
  
   Here is the original code to define a Date format :
  
   getApplicationSettings().setConverterFactory(new
 IConverterFactory()
   {
   public IConverter newConverter(final Locale locale)
   {
   final Converter converter = new Converter(locale);
   // String - Date
   DateConverter dc = new DateConverter();
   dc.setDateFormat(locale, new
 SimpleDateFormat(dd-MM-));
   converter.set(Date.class, dc);
   // Date - String
   DateToStringConverter dsc = new DateToStringConverter();
   dsc.setDateFormat(locale, new SimpleDateFormat(dd-MM-) );
   converter.set(String.class, dsc); (*)
  
   return converter;
   }
   }
   );
  
   But in this case a float value gets formatted as it were
   a Date.
   If a insert the following code in (*) :
  
   // Float - String
   NumberToStringConverter numberToStringConverter = new
 NumberToStringConverter();
   DecimalFormat fmt = new
   DecimalFormat(###,###,###,###.#);
   numberToStringConverter.setNumberFormat(locale, fmt);
   final StringConverter stringConverter = new StringConverter();
   stringConverter.set (Float.class, numberToStringConverter);
   stringConverter.set(Float.TYPE, numberToStringConverter);
   stringConverter.set(Date.class, dsc);
   converter.set(String.class, stringConverter);
   converter.set (Float.class, new FloatConverter());
  
   I get the float value correctly formmatted but the date is
   displayed using Date.toString().
  
  
   Jaime.
  
  
  
  
   can you show me youre converter code?
  
  
   On 4/6/06, Jaime De La Jara [EMAIL PROTECTED] wrote:
   
Yes, I use the following code :
   
add(new TextField(montoTotal, Float.class));
   
I've made some tests and found that commenting the
definition of the IConverterFactory for the date format
and defining the format for the float field and it worked,
however I cannot define the format for both types.
   
Thanks,
   
Jaime.
   
   
   
did you do TextField.setType(Float.class) or create it with
the constructor that takes the class?
   
-Igor
   
   
On 4/6/06, Jaime De La Jara [EMAIL PROTECTED]  wrote:

 Hi, I've just downloaded version 1.2 beta 3 and I have a
 problem when editing the contents of a javabean,
 particularly in a case of a Float field. The relevant
 code is :

 Javabean :
 public class Pago
 {
 .
 public Float getMontoTotal()
 {
 return Float.valueOf(1234567890);
 }
 ...

Re: [Wicket-user] Re : Re : Re: strange behaviour of TextField conversion to Float in beta3 : resolved !

2006-04-07 Thread Eelco Hillenius
 I commented the lines that define the datetostring converter
 and the effect was that the date was displayed using toString()
 and the float value was displayed correctly.
 So, how can I define converters for different types,
  like
 Float and Date from and to String?.

Like I answered you earlier:


   getApplicationSettings().setConverterFactory(new
IConverterFactory()
   {
   public IConverter newConverter(final Locale locale)
   {
   final Converter converter = new
Converter(locale);
   // String - Date
   DateConverter dc = new DateConverter();
   dc.setDateFormat(locale, new
SimpleDateFormat(dd-MM-));
   converter.set(Date.class, dc);
   // Date - String
   DateToStringConverter dsc = new
DateToStringConverter();
   dsc.setDateFormat(locale, new
SimpleDateFormat(dd-MM-));
   StringConverter sc = new StringConverter();
   sc.set(Date.class, dsc);
   converter.set(String.class, sc);

   return converter;
   }
   });

Notice the use of a seperate StringConverter that has a registry for
type converters itself.

In a previous post I
 learnt that that the conversion was a two-way process, that
 is from type1-type2 and from type2-type1, and that was
 applicable to a textfield.
 I'm lost here.

It is. Currently Wicket doesn't know about ingoing or outgoing values
though. But typically conversion is from String to T and from T to
String. Different converters would be used in both cases.

Eelco


---
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnkkid0944bid$1720dat1642
___
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user