[Laszlo-dev] For Review: Change 20080208-ptw-T Summary: Unify argument initialization

André Bargull a.bargull at intensis.de
Thu Feb 14 13:29:14 PST 2008


Actually, I didn't even know that you can use other things than strings 
for $path. Just discovered it when I was comparing the diffs! :-)

BTW, may you try to start the components sampler with your change:
- in flash, the window-component is broken
- in dhtml (ff2), the splash spins forever and ever and nothing happens, 
I get this error:
ERROR 
@http://localhost:8080/trunk/lps/includes/lfc/LFCdhtml-debug.js#3866: 
applyConstraintMethod is not defined 
<javascript:window.parent.$modules.lz.Debug.displayObj(12)>


On 2/14/2008 9:58 PM, P T Withington wrote:
> Thanks for the test case.  This was a brain-oh in NodeModel not 
> inserting the withThis pragma for $path bindings.  evalPathExpr is no 
> longer necessary since the path expression is now in a compiled 
> function that will just be invoked (the same way a $once 
> initialization is), it just uses a different 'binder' to set the 
> binding (`dataBindAttribute` instead of `setAttribute`).
>
> I fixed this and updated the change if you want to refetch it and test.
>
> I guess I should delete evalPathExpr.
>
> On 2008-02-14, at 14:30 EST, André Bargull wrote:
>
>> $path{..} is broken for implicit this, also see 
>> "LzNode#__LZevalPathExpr(..)" (was used before, but you don't call it 
>> anymore).
>>
>> testapp:
>> <canvas debug="true" >
>>     <dataset name="ds" >
>>     <root>
>>       <node value="1" />
>>       <node value="2" />
>>       <node value="3" />
>>     </root>
>>   </dataset>
>>     <simplelayout axis="x" spacing="15" />
>>     <view layout="axis:y;spacing:5" >
>>     <text datapath="ds:/root/node" text="$path{'@value'}" />
>>   </view>
>>     <view layout="axis:y;spacing:5" >
>>     <text datapath="ds:/root/node" text="$path{this.path}" >
>>       <attribute name="path" value="@value" type="string" />
>>     </text>
>>   </view>
>>     <!-- doesn't work anymore -->
>>   <view layout="axis:y;spacing:5" >
>>     <text datapath="ds:/root/node" text="$path{path}" >
>>       <attribute name="path" value="@value" type="string" />
>>     </text>
>>   </view>
>>  </canvas>
>>
>>
>> On 2/13/2008 9:43 PM, P T Withington wrote:
>>> Change 20080208-ptw-T by ptw at dueling-banjos.local on 2008-02-08 
>>> 08:18:39 EST
>>>    in /Users/ptw/OpenLaszlo/ringding
>>>    for http://svn.openlaszlo.org/openlaszlo/trunk
>>>
>>> Summary: Unify argument initialization
>>>
>>> Bugs Fixed:
>>> LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)
>>> LPP-631 'can't override a constraint with a literal with state 
>>> attributes'
>>>
>>> Technical Reviewer: a.bargull at intensis.de (pending)
>>> QA Reviewer: henry.minsky at gmail.com (pending)
>>>
>>> Details:
>>>    Initial values, initial expressions ($once), and constraints
>>>    ($always), now are created as a unified list in the tag compiler
>>>    solving several issues with overriding/inheritance of attribute
>>>    values and constraints and enabling the solution to an issue with
>>>    states and constraints.
>>>
>>>    TextStprite: Update test for constraint on width or height.
>>>
>>>    LzNode, UserClass: Simplify attribute inheritance/override 
>>> computation,
>>>    maintain backward-compatible magic-merge of attribute values (for
>>>    now).
>>>
>>>    LzNode: Update documentation of `construct` to note that
>>>    constraints are now unified in `args`.  __LZapplyArgs uses new
>>>    args organization to sort out initialization expressions and
>>>    constraints.  __LZresolveReferences uses the new information to
>>>    run initialization expressions and install constraints.
>>>    __LZresolveRefs no longer needed.  applyConstraint deprecated, but
>>>    backward-compatible.  New interface: applyConstraintMethod.
>>>    Private releaseConstraint did not work, removed.  New interface:
>>>    releaseConstraintMethod.
>>>
>>>    LzDefs: Turn LzDeclaredEvent into a singleton class.  Add private
>>>    support classes LzInitExpr and LzConstraintExpr.
>>>
>>>    LaszloView:  Update test for constraints.  Fix setAlign and
>>>    setValign to work with constraint methods, and to correctly work
>>>    if alignment is changed (to release previous constraint).
>>>
>>>    LaszloCanvas:  Update __LZcallInit to parallel LzNode more
>>>    closely.
>>>
>>>    LzState:  Update capturing of held args and constraints.  Use this
>>>    new organization to release constraints the state will override
>>>    (and re-apply them when the state is removed).  Remmove unused
>>>    __LZstoreRefs.
>>>
>>>    LzReplicationManager:  Fix xpath constraint to work with constraint
>>>    methods.
>>>
>>>    Function.java:  Make Function#name public.
>>>
>>>    NodeModel.java:  Coalesce $once, $path, $always into single
>>>    arglist, distinguishing 'binders' by internal type, either
>>>    LzInitExpr or LzConstraintExpr.
>>>
>>> Tests:
>>>    smokecheck, amazon, most-components
>>>
>>> Files:
>>> M      WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as
>>> M      WEB-INF/lps/lfc/debugger/LzMessage.lzs
>>> M      WEB-INF/lps/lfc/core/LzNode.lzs
>>> M      WEB-INF/lps/lfc/core/UserClass.lzs
>>> M      WEB-INF/lps/lfc/core/LzDefs.lzs
>>> M      WEB-INF/lps/lfc/views/LaszloView.lzs
>>> M      WEB-INF/lps/lfc/views/LaszloCanvas.lzs
>>> M      WEB-INF/lps/lfc/helpers/LzState.lzs
>>> M      WEB-INF/lps/lfc/data/LzReplicationManager.lzs
>>> M      WEB-INF/lps/server/src/org/openlaszlo/sc/Function.java
>>> M      WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
>>>
>>>
>>> Changeset: 
>>> http://svn.openlaszlo.org/openlaszlo/patches/20080208-ptw-T.tar
>>>
>
>


More information about the Laszlo-dev mailing list