Re: Weirdness (frustration mounting - sleep mode:enabled)

Neil Clayton <[email protected]> Sat, 4 Jan 2003 22:30:55 +0000
Newsgroups gmane.comp.java.tapestry.devel
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Sigh.

name="treeEventListener" 

!= 

IBinding binding = getBinding("treeEventsListener");

1) paramter names are different
2) method names are OK (so the binding didn't barf)

time for bed

On Saturday 04 Jan 2003 10:18 pm, Neil Clayton wrote:
> Using Tapestry 2.2
>
> I have a component (Misko's TreeComponent actually) that I am attempting to
> add a parameter to. Not to hard methinks. Well, perhaps I should think
> again! (no fault of Misko's might I add)
>
> The problem is that the listener I am adding is NEVER set.
> The tree component is used like this:
>
>     <component id="sourceProperties" type="Tree:Tree">
>         <binding name="tree" expression='propertiesModel'/>
>         <binding name="treeEventListener"
> expression='components.propertiesEditor'/>
>     </component>
>
> components.propertiesEditor implements the listener interface, the idea
> being that as I click and use the tree, the other thing recieves the events
> and "does stuff".  The fault is that no listener instance is EVER set in
> the tree itself.
>
> I've used a very basic implementation for the tree property, as follows:
>
>     <parameter
>         name="treeEventListener"
>         java-type="net.sf.tapestry.contrib.tree.ITreeEvents"
>         direction="in"
>         required="no">
>         <description>
>             <![CDATA[   open/click and close events can be sent to this
> listener   ]]>
>         </description>
>     </parameter>
>
> With java code as follows:
>
> 	/**
> 	 * Returns the treeEventsListener.
> 	 * @return ITreeEvents
> 	 */
> 	public ITreeEvents getTreeEventsListener() {
> 		if (log.isDebugEnabled()) {
> 			log.debug("Trying to return the tree events listener. The member var is
> : " + treeEventsListener);
> 		}
>
> 		if (treeEventsListener == null) {
> 			IBinding binding = getBinding("treeEventsListener");
>
> 			if (log.isDebugEnabled()) {
> 				log.debug("Member var is null, binding is " + binding);
> 			}
>
> 			if (binding != null) {
> 				if(log.isDebugEnabled()) {
> 					log.debug("The object in the binding is " + binding.getObject());
> 				}
>
> 				return (ITreeEvents) binding.getObject();
> 			}
> 		}
> 		return treeEventsListener;
> 	}
>
> 	/**
> 	 * Sets the treeEventsListener.
> 	 * @param treeEventsListener The treeEventsListener to set
> 	 */
> 	public void setTreeEventsListener(ITreeEvents treeEventsListener) {
> 		if (log.isDebugEnabled()) {
> 			log.debug("Setting the tree events listener to " + treeEventsListener);
> 		}
> 		this.treeEventsListener = treeEventsListener;
> 	}
>
>
> The output when I perform an action on the tree is:
>
>     [exec] 22:16:59,498 DEBUG [net.sf.tapestry.contrib.tree.TreeComponent]
> Trying to return the tree events listener. The member var is : null
>      [exec] 22:16:59,499 DEBUG [net.sf.tapestry.contrib.tree.TreeComponent]
> Member var is null, binding is null
>      [exec] 22:16:59,499 DEBUG [net.sf.tapestry.contrib.tree.TreeComponent]
> Not calling tree event listener because it is not set
>
> Looks like there's NO binding at all.
> WEEEIRD.
>
> What have I done wrong?
> I've been staring at this for quite a while now. Time for bed!

- -- 
Regards,
Neil Clayton

(PS: If you see strange text you don't understand underneath my email, don't 
worry - it's just my PGP signature)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE+F2CfLXcfQF3yrNoRApfOAJ4lXoEeuJA6Y0FsIoo1kQ/adqoghQCfb9jT
vaZQIF1ybc0PRkvy8Ig75Ig=
=obhp
-----END PGP SIGNATURE-----



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf