ToscaWidget

6 views
Skip to first unread message

JOKER Ltd.

unread,
Jul 28, 2010, 10:42:38 AM7/28/10
to TurboGears-it
Salve

ho scoperto da poco questo gruppo (wonderful).
Sto usando da qulache tempo TG2 ma fino ad ora i potentissimi
ToscaWidgets non mi erano serviti e li avevo approfonditi il giusto.
Mi seono ora reso conto che potrebbero pero' semplificare il lavoro di
molto. Solo che gli esempi sulla documentazione di TurboGears sono
limitati ed orientati ad una gestione del tipo, prendi i dati da
quella tabella e mostrami a video una maschera di insert/update.

Il mio problema e' che io vorrei definire piuttosto un template
generico (come ho visto che sul sito di ToscaWidget sembra possibile
fare) con un relativo controller.

Mi spiego meglio. Nell'esempio sul sito di TG2 trovo

from tw.api import WidgetsList
from tw.forms import TableForm, CalendarDatePicker, SingleSelectField,
TextField, TextArea

class MovieForm(TableForm):

class fields(WidgetsList):
title = TextField()
...

Ora, poniamo che io voglia usare un oggetto ImageButton,

>>> from tw import forms

>>> help(forms.fields.ImageButton)

Help on class ImageButton in module tw.forms.fields:

class ImageButton(Button)
| Method resolution order:
| ImageButton
| Button
| InputField
...

come dovrei dichiararlo nella class MovieForm soprastante?
Sarebbe coretto scrivere una cosa tipo

from tw.api import WidgetsList
from tw.forms import TableForm, CalendarDatePicker, SingleSelectField,
TextField, TextArea, ImageButton

class QSearchForm( TableForm ):

class fields( WidgetsList ):
search_string = TextField()
search_button = ImageButton()
...

Altra question: come gli dico che immagne usare? Con che sintassi
( es. tg.url+"/images/info.png" ) ?

Grazie per l'aiuto e spero di poter essere a mia volta di aiuto

Greetings
JOKER Ltd.





Glauco Uri

unread,
Jul 28, 2010, 10:52:24 AM7/28/10
to turbog...@googlegroups.com
Il 28/07/2010 16:42, JOKER Ltd. ha scritto:
> Salve
>

Ahh il Joker,
ti conosco per fama .. ( XPUG )!

non capisco se vuoi fare un compoundWidget oppure no

> Altra question: come gli dico che immagne usare? Con che sintassi
> ( es. tg.url+"/images/info.png" ) ?
>
> Grazie per l'aiuto e spero di poter essere a mia volta di aiuto
>
> Greetings
> JOKER Ltd.
>
>

di seguito un FormWidget che usa una immagine per mostrare un link,
come vedi usi i params.
In questo caso è il costruttore ad iniettare tutti i parametri nel template.

Se hai bisogno di più dinamicità, puoi usare anche il metodo update_params
che in pratica è il signore che riceve i child_args.


class ImgURLLink(FormField):
template = """
<a xmlns="http://www.w3.org/1999/xhtml"
xmlns:py="http://genshi.edgewall.org/"
href="$link"
target="$target"
py:attrs="attrs"
title="$text"
id="${id}"
><img src="$src"
py:attrs="imgattrs" />
</a>
"""
params = ['src','imgattrs','link','target','text']
imgattrs = {}
src=''
validator=None

Gla


--
Glauco Uri

Prometeia SpA
Via G. Marconi, 43 - 40122 Bologna
Via Gonzaga, 7 - 20123 Milano
Via Tirso, 26 - 00198 Roma
Italia

e-mail : glauc...@prometeia.it
phone : +39 051 6480911
---------------------------------------------------------------------------
Il contenuto e gli allegati di questo messaggio sono strettamente confidenziali, e ne sono vietati la diffusione, la riproduzione e l'uso non autorizzato. Il suo contenuto non costituisce impegno da parte della Società salvo accordo scritto tra quest'ultima ed il destinatario. Qualora il presente messaggio Le fosse pervenuto per errore, La preghiamo di comunicare immediatamente al mittente l'errata ricezione e di distruggere quanto ricevuto (compresi i file allegati) senza farne copia.
Qualsivoglia utilizzo non autorizzato del contenuto di questo messaggio costituisce violazione dell'obbligo di non rivelare il contenuto della corrispondenza tra altri soggetti, salvo più grave illecito, ed espone il responsabile alle relative conseguenze.

This e-mail (and any attachment(s)) is strictly confidential and for use only by intended recipient(s). Any use, distribution, reproduction or disclosure by any other person is strictly prohibited. The content of this e-mail does not constitute a commitment by the Company except where provided for in a written agreement between this e-mail addressee and the Company. If you are not an intended recipient(s), please notify the sender promptly and destroy this message and its attachments without reading or saving it in any manner.
Any non authorized use of the content of this message constitutes a violation of the obligation to abstain from learning of the correspondence among other subjects, except for more serious offence, and exposes the person responsible to the relevant consequences.
---------------------------------------------------------------------------


Il contenuto e gli allegati di questo messaggio sono strettamente confidenziali, e ne sono vietati la diffusione, la riproduzione e l'uso non autorizzato. Il suo contenuto non costituisce impegno da parte della Società salvo accordo scritto tra quest'ultima ed il destinatario. Qualora il presente messaggio Le fosse pervenuto per errore, La preghiamo di comunicare immediatamente al mittente l'errata ricezione e di distruggere quanto ricevuto (compresi i file allegati) senza farne copia.
Qualsivoglia utilizzo non autorizzato del contenuto di questo messaggio costituisce violazione dell'obbligo di non rivelare il contenuto della corrispondenza tra altri soggetti, salvo più grave illecito, ed espone il responsabile alle relative conseguenze.

This e-mail (and any attachment(s)) is strictly confidential and for use only by intended recipient(s). Any use, distribution, reproduction or disclosure by any other person is strictly prohibited. The content of this e-mail does not constitute a commitment by the Company except where provided for in a written agreement between this e-mail addressee and the Company. If you are not an intended recipient(s), please notify the sender promptly and destroy this message and its attachments without reading or saving it in any manner.
Any non authorized use of the content of this message constitutes a violation of the obligation to abstain from learning of the correspondence among other subjects, except for more serious offence, and exposes the person responsible to the relevant consequences.

Carlos Catucci

unread,
Jul 28, 2010, 12:08:02 PM7/28/10
to turbog...@googlegroups.com
> Ahh il Joker,
> ti conosco per fama .. ( XPUG )!

Se eri all'ultimo incontro (terminato con cena in trattosia di Porta
San Felice, aka Il Lurido) anche "per fame" e di persona. E visto che
di utilizzatori di TG2 mi sembra fossimo solo in due quella sera,
dovresti essere il mio dirimpettaio di tavolo :)

> di seguito un FormWidget  che usa una immagine per mostrare un link,
> come vedi usi i params.
> In questo caso è il costruttore ad iniettare tutti i parametri nel template.

Sospettavo ci fosse qualcosa ma help(ImageButton) non mi segnalava in
maniera chiara come.

> Se hai bisogno di più dinamicità, puoi usare anche il metodo update_params
> che in pratica è il signore che riceve i child_args.

Nel mio caso e' statico. Ma non e' escluso che serva in seguito
maggior dinamismo.

> class ImgURLLink(FormField):
>     template = """
> <a xmlns="http://www.w3.org/1999/xhtml"
>        xmlns:py="http://genshi.edgewall.org/"
>        href="$link"
>        target="$target"
>        py:attrs="attrs"
>        title="$text"
>        id="${id}"
>  ><img src="$src"
>        py:attrs="imgattrs" />
> </a>
>     """
>     params = ['src','imgattrs','link','target','text']
>     imgattrs = {}
>     src=''
>     validator=None

Solo non mi e' chiarissima una cosa. Il template qui viene definito
nel controller ma in pratica sta dichiarano un link (<a href>?) con
all'interno un tag <img src>, metre io volevo una definizione di un
oggetto ibutton = ImageButton(). Dici che poi posso scrivere

ibutton.update_params() ?

E dentro come gli passo il parametro img src?

Muchas Gracias

Greetings
JOKER Ltd.
--
Mr. Gandhi, cosa ne pensa della civiltà occidentale? - Sarebbe
un'ottima idea! ( intervista al Mahatma Gandhi )

Glauco Uri

unread,
Jul 29, 2010, 3:29:36 AM7/29/10
to turbog...@googlegroups.com

> Se eri all'ultimo incontro (terminato con cena in trattosia di Porta
> San Felice, aka Il Lurido) anche "per fame" e di persona. E visto che
> di utilizzatori di TG2 mi sembra fossimo solo in due quella sera,
> dovresti essere il mio dirimpettaio di tavolo :)
>

Non ero all'ultimo incontro..


>
> E dentro come gli passo il parametro img src?
>

Ahh credevo volessi ridefinirlo! lascia perdere allora il Widget che ti
ho mandato.


in questo caso è ImageButton(src='<url>')

Carlos Catucci

unread,
Jul 29, 2010, 3:37:23 AM7/29/10
to turbog...@googlegroups.com
> Non ero all'ultimo incontro..

Alllora siamo in tre a usare TG :)

> Ahh credevo volessi ridefinirlo! lascia perdere allora il Widget che ti
> ho mandato.
> in questo caso è ImageButton(src='<url>')

Muchas gracias, anche se adesso mi fa un'altro capriccio, se non
risolvo ti disturbo ancora.

Grretings

Reply all
Reply to author
Forward
0 new messages