Idea for simplification: use named parameters. For example def label[T](id: String, model: IModel[T]): Label = { val label = new Label(id, model); add(label); label } would become def label[T](id: String, model = _ : IModel[T]): Label = { val label = new Label(id, model); add(label); label }
this way you'll have just one declaration of label function which will handle the current three additionally you may add a pimp: implicit def ser2model[S :< Serializable](ser: S): IModel[S] = Model.of(ser) now even when you pass String as second param to label() it will be converted to IModel On Wed, Jul 27, 2011 at 9:11 PM, Martin Grigorov <mgrigo...@apache.org> wrote: > Take a look at scala.swing.* sources. > > On Wed, Jul 27, 2011 at 8:34 PM, Bruno Borges <bruno.bor...@gmail.com> wrote: >> Can some Scala expert help me to make this DSL available as PML (pimp my >> library)? >> >> I've tried to code it that way but things didn't quite worked out the way >> they should. >> >> The reason is that for every Wicket object I create, I must extend the trait >> DSLWicket >> >> >> >> *Bruno Borges* >> www.brunoborges.com.br >> +55 21 76727099 >> >> >> >> On Wed, Jul 27, 2011 at 2:30 PM, Bruno Borges <bruno.bor...@gmail.com>wrote: >> >>> Not really. >>> >>> The method onSubmit() of button is void, as well onClick(), so there's no >>> need for the function be passed as () => Unit or anything else. >>> >>> I made a few changes to it and updated on Gist. >>> >>> I've also uploaded a page that uses this DSL at >>> https://gist.github.com/1109919 >>> >>> Take a look >>> >>> *Bruno Borges* >>> www.brunoborges.com.br >>> +55 21 76727099 >>> >>> >>> >>> On Wed, Jul 27, 2011 at 2:22 PM, Scott Swank <scott.sw...@gmail.com>wrote: >>> >>>> I think you do want Unit, which as I understand it is closest >>>> equivalent to "void" in Scala. >>>> >>>> http://www.scala-lang.org/api/current/scala/Unit.html >>>> >>>> Scott >>>> >>>> On Wed, Jul 27, 2011 at 10:14 AM, Bruno Borges <bruno.bor...@gmail.com> >>>> wrote: >>>> > No, the function must return void, not another function (unit). >>>> > >>>> > But there's also the option of () => Nothing. Which one should I use for >>>> > this case? >>>> > >>>> > *Bruno Borges* >>>> > www.brunoborges.com.br >>>> > +55 21 76727099 >>>> > >>>> > >>>> > >>>> > On Wed, Jul 27, 2011 at 12:54 PM, Martin Grigorov <mgrigo...@apache.org >>>> >wrote: >>>> > >>>> >> def button(id: String, submit: () => Void): Button = { >>>> >> >>>> >> it should be () => Unit, no ? >>>> >> >>>> >> On Wed, Jul 27, 2011 at 6:51 PM, Martin Grigorov <mgrigo...@apache.org >>>> > >>>> >> wrote: >>>> >> > Adding some usage examples at the bottom will help us evaluate it. >>>> >> > >>>> >> > Why not add type to >>>> >> > def textField(id: String): TextField[_] = { val field = new >>>> >> > TextField(id); add(field); field } >>>> >> > to become >>>> >> > def textField[T](id: String): TextField[T] = { val field = new >>>> >> > TextField[T](id); add(field); field } >>>> >> > >>>> >> > usage: textField[Int](someId) >>>> >> > >>>> >> > with using implicit Manifest for T you can also can automatically set >>>> >> > the type: field.setType(m.erasure) >>>> >> > >>>> >> > On Wed, Jul 27, 2011 at 6:26 PM, Bruno Borges < >>>> bruno.bor...@gmail.com> >>>> >> wrote: >>>> >> >> I've been playing with Wicket and Scala and I thought this could be >>>> >> added to >>>> >> >> the wicket-scala project at WicketStuff. >>>> >> >> >>>> >> >> What do you guys think? >>>> >> >> >>>> >> >> https://gist.github.com/1109603 >>>> >> >> >>>> >> >> >>>> >> >> *Bruno Borges* >>>> >> >> www.brunoborges.com.br >>>> >> >> +55 21 76727099 >>>> >> >> >>>> >> > >>>> >> > >>>> >> > >>>> >> > -- >>>> >> > Martin Grigorov >>>> >> > jWeekend >>>> >> > Training, Consulting, Development >>>> >> > http://jWeekend.com >>>> >> > >>>> >> >>>> >> >>>> >> >>>> >> -- >>>> >> Martin Grigorov >>>> >> jWeekend >>>> >> Training, Consulting, Development >>>> >> http://jWeekend.com >>>> >> >>>> >> --------------------------------------------------------------------- >>>> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>> >> For additional commands, e-mail: users-h...@wicket.apache.org >>>> >> >>>> >> >>>> > >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>> >>>> >>> >> > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com > -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org