Seaside. textInput numeric value

5 views
Skip to first unread message

Santiago Cardoso Geller

unread,
Mar 16, 2010, 7:42:16 PM3/16/10
to clubSm...@googlegroups.com
Hola.
En un formulario debo ingresar un valor numérico. Para eso simplemente tengo un textInput de esta forma:

html textInput on: #months of: self model.

El tema es que el valor que llega a #months: como parámetro siempre es unString. ¿Alguien sabe si existe una forma de setear el textInput para que el formulario considere ese campo como numérico y no tener que estar haciendo un #asNumber en otra parte? Una especie de converter o algo así.


Gracias,
Santiago

GallegO

unread,
Mar 17, 2010, 11:02:54 AM3/17/10
to clubsm...@googlegroups.com
Hola Santiago!

Siempre te va a llegar texto del lado del navegador cuando se procesa
un form por lo tanto vas a ser responsable de interpretarlo.
De todas formas desconozco si existe algun atributo para el input en
html por el cual luego se responda de determinada forma anteponiendo
algo que marque el formato (no conozco la especificación). En
cualquier caso Seaside parece no estar teniendo en cuenta nada en
especial.

Yo te recomiendo que implementes algo que maneje los mismos
TypeConverter que usa Dolphin (creo que estas en Dolphin). Fijate que
para eso quizas te convenga tener un input que maneje converters
(subclase de alguna de WAFormInputTag), implementar el protocolo
adecuado en el renderer para poder usar tu nuevo tag html.

Tambien podes hacerlo implementando un nuevo callback que es en
definitiva donde se procesa el formulario. Seria una subclase de
WAValueCallback (esta ultima es concreta tambien). Fijate en
WAFormInputTag como implementa #on:of: y podes copiarlo y modificarlo
para hacer algo tipo #on:of:converter: e instancias tu nueva clase de
callback usando ese type converter.

Debe haber algunas formas más de hacerlo, pero estas que te describo
deben ser las más rápidas.

Se de algunos de esta lista que implementaron frameworks tipo mvp para
seaside, esa es una alternativa mucho más elaborada.

Espero te haya servido y sea así tan fácil ya que no probé nada JAJA.
Tiene que andar :)

Saludos
GallegO

El día 16 de marzo de 2010 20:42, Santiago Cardoso Geller
<cardos...@gmail.com> escribió:

> --
> To post to this group, send email to clubSm...@googlegroups.com
> To unsubscribe from this group, send email to
> clubSmalltal...@googlegroups.com
>
> http://www.clubSmalltalk.org

Jaume Singla

unread,
Mar 17, 2010, 11:08:48 AM3/17/10
to clubsm...@googlegroups.com
si estas hablando de HTML, lo que se puede hacer, és un pequeño javascript que te verifique el formulario, o hasta que no te deje escrivir caracteres que no sean un numero. En cuanto a otros sistemas, el html no lo tiene. Aún así, el navegador siempre enviara texto. 

Suerte!

2010/3/17 GallegO <fxga...@gmail.com>

Santiago Cardoso Geller

unread,
Mar 17, 2010, 11:54:09 AM3/17/10
to clubsm...@googlegroups.com
Gracias Jaume. El caso es como comenta GallegO. Quería saber si ya había forma de instanciar el tag e indicar que el callback devuelva un número, en lugar de un string.

Gracias GallegO también.

Abrazo,
Santiago

2010/3/17 Jaume Singla <dra...@gmail.com>

Esteban Lorenzano

unread,
Mar 17, 2010, 12:01:11 PM3/17/10
to clubsm...@googlegroups.com
Hola,
en realidad el #on:of: es un metodo de conveniencia... que en este caso no te conviene usar :) 
Podes hacerlo así: 

html textInput
value: miNumero;
callback: [ :value | miNumero := value asNumber ];

Santiago Cardoso Geller

unread,
Mar 17, 2010, 1:10:28 PM3/17/10
to clubsm...@googlegroups.com
Ah, si. Tenés razón Esteban. Muchas Gracias. Era así:

    html textInput
        value: self model months;
        callback: [ :value | self model months: value asNumber ].

Abrazo,
Santiago


2010/3/17 Esteban Lorenzano <este...@gmail.com>

GallegO

unread,
Mar 17, 2010, 5:57:01 PM3/17/10
to clubsm...@googlegroups.com
Si y en todos lados escribís lo mismo!
La verdad, bastante choto que seaside no integre el uso de converters
en el input, podria ser una sugerencia.

Saludos
GallegO

El día 17 de marzo de 2010 14:10, Santiago Cardoso Geller

Reply all
Reply to author
Forward
0 new messages