I have been playing with the ToDo example application and having fun  
in manipulating XML.

With the <todo:list/> node I thought it would be good if the XHTML  
designer could pass in some guidance to the doList(...) method used in  
bind(..). ie. <todo:list singular="true">...</todo:list>

Looking over the bind code I noticed that the attributes are not  
accessible without ending up changing the calcValue method's  
signature. I did initially try to knock up a

        case class FuncWithAttrBindParam(name: String, value: (NodeSeq,  
MetaData) => NodeSeq) extends Tuple2(name, value) with BindParam

and a corresponding

        case Some(ns : FuncWithAttrBindParam) =>

in in_bind(...), but it all looks like a huge kludge.

It strikes me as a little deficient to be able to utilise attributes  
within the context of a snippet and yet not within a bind. I know bind  
is quite embedded in lift now, but I think that this difference might  
prove a little frustrating. I know one solution is to just create a  
bind("todo", html,
                                 "exclude" ->  
ajaxCheckbox(QueryNotDone, v => {QueryNotDone(v); reDraw}),
                                 "list" -> doList(reDraw, false) _,
                                "list_singular" -> doList(reDraw, true) _)

But I think from the XHtml designer's perspective that is counter  
intuitive...

Thoughts?

------

It should be noted that this is different to the case class  
FuncAttrBindParam(name: String, value: NodeSeq => NodeSeq, newAttr:  
String) extends BindParam with BindWithAttr. Which interesting enough  
has no corresponding SuperArrowAssoc -> method match. Maybe

        def ->(t: Tuple2[String, NodeSeq]) = AttrBindParam(name, t._2, t._1)
        def ->(t: Tuple2[String, NodeSeq => NodeSeq]) =  
FuncAttrBindParam(name, t._2, t._1)

And maybe even...

        def ->[T](t: Tuple2[String, T]) = FuncAttrBindParam(name, (name ->  
t._2).calcValue _, t._1)

or

        def ->[T](t: Tuple2[String, T]) = FuncAttrBindParam(name, (t._1 ->  
t._2).calcValue _, t._1)

I'm not sure which is better on the last two... Just a thought.

Marc


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to