[Laszlo-dev] My change for override doesn't catch this, case
André Bargull
a.bargull at intensis.de
Fri Mar 28 14:58:16 PDT 2008
> /**
> * Update is called whenever the layout needs to be updated. By
> defualt, it
> * is called by <b> reset</b>. This is an abstract function in the class,
> * but this is the main routine where the layout does its work.
> *
> * The beginning of this routine should always check for the locked
> property
> * and return immediately if it is true for best performace.
> *
> * @access protected
> */
> /*
> function update() {
> }
> */
That is in "LzLayout.lzs", I guess you want to uncomment it. Hm, do we
support "abstract classes" yet?
Because LzLayout is actually an abstract class, any layout class must
implement this "update" method.
> Hey, this just worked! <method name="update" args="...rest"> now
> simplelayout is working ,I'll check in the changes On undefined, Henry
> Minsky <henry.minsky at gmail.com> wrote:
>> > OK, more progress.
>> >
>> > Now, here's an issue, whenever there is a method which is registered to be
>> > called by an event handler,
>> > such as "update" or "__parentInit" in LzLayout, the sendEvent expects it
>> > to take an argument.
>> >
>> > this.initDelegate = new LzDelegate( this , "__parentInit",
>> > this.immediateparent, "oninit" );
>> >
>> > In LzLayout, there is a method called "update" which is registered to be
>> > an event handler through some contorted
>> > and scary looking mechanism where it pushes it on a list named "delegates"
>> >
>> >
>> > this.updateDelegate = new LzDelegate( this , "update" );
>> >
>> > this.delegates = [ this.updateDelegate ];
>> >
>> >
>> > and then LzLayout overrides constructWithArgs
>> >
>> > override function constructWithArgs ( args ) {
>> >
>> >
>> > SO anyway, in simplelayout, a user-defined class, it defines a method
>> > named "update", with no args
>> >
>> > <method name="update">
>> >
>> > So, I think we need a way to specify optional or default args in the args
>> > list to a <method> declaration, like maybe
>> >
>> > <method name="update" args="v=null" >
>> >
>> > or
>> >
>> > <method name="update" args="...rest">
>> >
>> > ??
>> >
>> >
>> >
>> >
>> > On undefined, Henry Minsky <henry.minsky at gmail.com> wrote:
>> >
>>
>>> > > Oh, I put addSubview on LzView in the schema, but LzLayout extends
>>> > > LzNode, and defines its own addSubview method.
>>> > > So i need to put it on LzLayout in the schema.
>>> > >
>>> > > Sigh, I guess we'll be finding some more of these for a while cuz I did
>>> > > this manually.
>>> > >
>>> > >
>>> > > On undefined, Henry Minsky <henry.minsky at gmail.com> wrote:
>>> > >
>>>
>>>> > > > It looks like it is. I'm wondering if I have code that is only
>>>> > > > checking the immediate superclass for the existence of
>>>> > > > an attribute instead of all the way up the chain or something. Time
>>>> > > > for some print statements..
>>>> > > >
>>>> > > >
>>>> > > > On undefined, P T Withington <ptw at pobox.com> wrote:
>>>> > > >
>>>>
>>>>> > > > > You're sure LzNode#addSubview is in the schema?
>>>>> > > > >
>>>>> > > > > On 2008-03-28, at 16:40 EDT, Henry Minsky wrote:
>>>>>
>>>>>> > > > > > Hmm, the new code to check for overrides is failing to catch this
>>>>>> > > > > > case where
>>>>>> > > > > > simplelayout overrides the LzView addSubview method.
>>>>>> > > > > >
>>>>>> > > > > > I better put some tracing in to see why it doesn't identify this
>>>>>>
>>>>> > > > > as
>>>>>
>>>>>> > > > > > a method
>>>>>> > > > > > of a superclasss...
>>>>>> > > > > >
>>>>>> > > > > >
>>>>>> > > > > > Compiling: hello-layout.lzx to hello-layout.lzr=swf9.swf
>>>>>> > > > > > writing script to /tmp/lzx-script.js
>>>>>> > > > > > Executing compiler: (cd /tmp/lzswf9/lzgen55753;
>>>>>>
>>>>> > > > > /Users/hqm/flex3/bin/
>>>>>
>>>>>> > > > > > mxmlc
>>>>>> > > > > > -compiler.show-actionscript-warnings=false
>>>>>> > > > > > -compiler.source-path+=/tmp/lzswf9/lzgen55753 -debug=true -output
>>>>>> > > > > > /tmp/lzswf9/lzgen55753/app.swf -default-size 800 600
>>>>>> > > > > >
>>>>>>
>>>>> > > > > -library-path+=/Users/hqm/openlaszlo/trunk4/lps/includes/lfc/LFC9.swc
>>>>>
>>>>>> > > > > > /tmp/lzswf9/lzgen55753/LzApplication.as)
>>>>>> > > > > > compiler output:
>>>>>> > > > > > Loading configuration file
>>>>>> > > > > > /Users/hqm/openlaszlo/adobe/trunk/frameworks/flex-config.xml
>>>>>> > > > > >
>>>>>> > > > > > ERRORS:
>>>>>> > > > > > Compiler error: at [/tmp/lzswf9/lzgen55753/$lzc
>>>>>> > > > > > $class_simplelayout.as: 38]:
>>>>>> > > > > > Error: Overriding a function that is not marked for override.
>>>>>> > > > > >
>>>>>> > > > > > function addSubview (newsub) {
>>>>>> > > > > > ^
>>>>>> > > > > >
>>>>>> > > > > > FAIL: compiler returned 1
>>>>>> > > > > > Done executing compiler
>>>>>> > > > > > Intermediate file /tmp/lzswf9/lzgen55753/app.swf: does not exist
>>>>>> > > > > > Compilation errors occurred:
>>>>>> > > > > >
>>>>>> > > > > > --
>>>>>> > > > > > Henry Minsky
>>>>>> > > > > > Software Architect
>>>>>> > > > > > hminsky at laszlosystems.com
>>>>>>
>>>>> > > > >
>>>>> > > > >
>>>>>
>>>> > > >
>>>> > > >
>>>> > > > --
>>>> > > > Henry Minsky
>>>> > > > Software Architect
>>>> > > > hminsky at laszlosystems.com
>>>> > > >
>>>> > > >
>>>>
>>> > >
>>> > >
>>> > > --
>>> > > Henry Minsky
>>> > > Software Architect
>>> > > hminsky at laszlosystems.com
>>> > >
>>> > >
>>>
>> >
>> >
>> > --
>> > Henry Minsky
>> > Software Architect
>> > hminsky at laszlosystems.com
>> >
>> >
>>
>
>
> -- Henry Minsky Software Architect hminsky at laszlosystems.com
More information about the Laszlo-dev
mailing list