[Laszlo-user] Trying to assign events dynamically using delegates.
Cary Clark
caclark at cox.net
Mon Jul 21 14:16:34 PDT 2008
I think Henry's suggesting you change
delete_button.del = new LzDelegate( delete_button, "test2");
to
delete_button.del = new LzDelegate( canvas, "test2");
The first parameter tells the delegate on which object it should run "test2".
Obviously lz.button doesn't have one of those...your canvas does.
Cary
Kenneth Miller wrote:
> Why does it have to be defined "on" the button, it's defined in the
> source, which you can view here. Thanks for your time.
>
> http://github.com/xkenneth/buildoutbuilder/tree/master/buildoutbuilder.laszlo/src
>
> buildoutbuilder.lzx is the file you're looking for.
>
> Thanks again!
>
> Regards,
> Ken
>
> On Jul 21, 2008, at 3:18 PM, Henry Minsky wrote:
>
>> Do you have a "test2" method defined on button? It would seem to me
>> that you don't, because you're instantiating
>> it right there, and there is no test2 method defined in the lz button
>> component class, that I know of..
>>
>>
>> On Mon, Jul 21, 2008 at 4:06 PM, Kenneth Miller <xkenneth at gmail.com
>> <mailto:xkenneth at gmail.com>> wrote:
>>> All,
>>> Here's the error: ERROR @lz/button.lzx#35: Invalid delegate: button
>>> text=Delete.test2 => «undefined» (must be a Function)
>>> Regards,
>>> Ken
>>> On Jul 21, 2008, at 2:00 PM, Henry Minsky wrote:
>>>
>>> You can call a method on another object, using a delegate, but you'd
>>> have to create the delegate to point to your object
>>>
>>> e.g.,
>>>
>>> new LzDelegate(yourinstance, "test2")
>>>
>>> Your delegate was created to call the test2 method on your button
>>> instance.
>>> ...
>>>
>>>
>>>
>>> On Mon, Jul 21, 2008 at 2:59 PM, Henry Minsky
>>> <hminsky at laszlosystems.com <mailto:hminsky at laszlosystems.com>>
>>> wrote:
>>>
>>> What is the error? Your test2 method is never getting called? Where is
>>>
>>> the "test2" method being declared on
>>>
>>> the button class? Don't you need a subclass of button, in order to
>>>
>>> define your method on it?
>>>
>>>
>>> On Mon, Jul 21, 2008 at 2:40 PM, Kenneth Miller <xkenneth at gmail.com
>>> <mailto:xkenneth at gmail.com>> wrote:
>>>
>>> I'm trying to create a new button here and attach an event to it,
>>> can anyone
>>>
>>> tell me what I'm doing wrong?
>>>
>>> function create_part() {
>>>
>>> //get the part name
>>>
>>> part_name =
>>>
>>> canvas.main_tabs.buildout_editor.buildout_toolbar.toolbar_slider.parts_tab.new_part_field.text
>>>
>>> //add the part to the dom
>>>
>>> buildout_dp.addNode(part_name)
>>>
>>> //add it to the tab slider
>>>
>>> canvas.main_tabs.buildout_editor.buildout_ts.addItem(part_name)
>>>
>>> //wipe out the text field
>>>
>>> canvas.main_tabs.buildout_editor.buildout_toolbar.toolbar_slider.parts_tab.new_part_field.text
>>>
>>> = ''"
>>>
>>> //create the delete button
>>>
>>> var delete_button = new
>>>
>>> lz.button(canvas.main_tabs.buildout_editor.buildout_ts.getItem(part_name))
>>>
>>> delete_button.setAttribute('text','Delete')
>>>
>>> //create the delegate
>>>
>>> if ( typeof delete_button.del == "undefined" ) {
>>>
>>> delete_button.del = new LzDelegate( delete_button, "test2");
>>>
>>> }
>>>
>>> //assign the event
>>>
>>> delete_button.del.register( delete_button, "onclick" );
>>>
>>> }
>>>
>>> Regards,
>>>
>>> Ken
>>>
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Henry Minsky
>>>
>>> Software Architect
>>>
>>> hminsky at laszlosystems.com <mailto:hminsky at laszlosystems.com>
>>>
>>>
>>>
>>>
>>> --
>>> Henry Minsky
>>> Software Architect
>>> hminsky at laszlosystems.com <mailto:hminsky at laszlosystems.com>
>>>
>>>
>>
>>
>>
>> --
>> Henry Minsky
>> Software Architect
>> hminsky at laszlosystems.com <mailto:hminsky at laszlosystems.com>
>
More information about the Laszlo-user
mailing list