• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Pass-through bindings from parent to child component
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Pass-through bindings from parent to child component


  • Subject: Re: Pass-through bindings from parent to child component
  • From: Paul Hoadley <email@hidden>
  • Date: Mon, 7 Jan 2008 16:55:10 +1030

Hi Chuck,

On 07/01/2008, at 3:27 PM, Chuck Hill wrote:

On 03/01/2008, at 4:18 PM, Paul Hoadley wrote:

Is there an idiom for passing through _any and all_ bindings from a parent to a child component without being specific about it?

Simply put, no. The is reason is that parents do not pass bindings to their children. The children take them from their parents. If the child was not written to handle arbitrary bindings, there is no way you can force it to. You could subclass the child and extend it to handle any and all bindings.

OK, there's something important I was missing.

That is, I've got a component that wraps a Dynamic Element. If I add the binding 'abc="xyz"' to, say, a WOTextField, it will pass that through to the HTML 'input' element as an attribute and its value.

It does not pass them through to WOTextField. WOTextField (or one of its superclasses, WOInput or WOHTMLElement, I don't recall and am too lazy to figure it out) has code to take any bindings that it does not recognize and add them to the input as key=value.

OK.

How can I get my containing component to do something similar—is there an idiom for passing completely arbitrary bindings from a parent to a child component? If I can work that out, I think I can answer my original questions:

1. I want to be able to set any bindings on the WOBrowser which were set on the LSBrowser. I can list them out in the WOD:

browser : WOBrowser {
	list = ^list;
	item = ^item;
	selections = ^selections;
	displayString = ^displayString;
	multiple = ^multiple;
	id = ^id;
	value = ^value;
	escapeHTML = ^escapeHTML;
	selectedValues = ^selectedValues;
	name = ^name;
	disabled = ^disabled;
	size = ^size;
	class = classList;
}

But then WOLips flags an error because I've "set" 'selectedValues' and 'selections'. All I'm trying to express here is that whichever of the two is set on the parent should be passed through to the child.

I think that what you need to do is to implement LSBrowser as a WODynamicElement so that you have the necessary access to the bindings. This means that instead of using a WOBrowser, you are going to have to re-implement it. Subclassing WOBrowser might be a good approach.

Maybe I've wandered too far down the wrong path here, so I'll ask a different question. For now, the only additional functionality I'm trying to add to the dynamic elements is the classList() method referred to in the WOD above. (This returns a string containing a space-separated list of classes which ends up as the value of the HTML "class" attribute for CSS styling.) So I've created an LSComponent which extends WOComponent and implements classList(). So currently LSBrowser extends LSComponent. If I have LSBrowser extend WOBrowser (or WODynamicElement), I'm going to need to duplicate classList() in LSTextField, LSCheckBox, and so on. Am I going about this (adding a method to the standard dynamic elements) the wrong way?



-- Paul.

w  http://logicsquad.net/
h  http://paul.hoadley.name/


_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: Pass-through bindings from parent to child component
      • From: Chuck Hill <email@hidden>
References: 
 >Pass-through bindings from parent to child component (From: Paul Hoadley <email@hidden>)
 >Re: Pass-through bindings from parent to child component (From: Paul Hoadley <email@hidden>)
 >Re: Pass-through bindings from parent to child component (From: Chuck Hill <email@hidden>)

  • Prev by Date: Re: What's a good way to handle orders?
  • Next by Date: WO5.4: Generics for objectsWithFetchSpecification ???
  • Previous by thread: Re: Pass-through bindings from parent to child component
  • Next by thread: Re: Pass-through bindings from parent to child component
  • Index(es):
    • Date
    • Thread