Ok, found the bug here. applyConstraint was not calling _this._applyConstraintMethod.

Fixed.

Lesson: Don't 'clean up' your code after you test it. Do it the other way 'round. Or, at least re-test. Or, get a _very_ thorough reviewer!

I updated the change once more. I realize it's late for you. If you want to pick this up tomorrow, that is fine with me.

Thanks again.

On 2008-02-14, at 16:29 EST, André Bargull wrote:

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 [EMAIL PROTECTED] 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: [EMAIL PROTECTED] (pending)
QA Reviewer: [EMAIL PROTECTED] (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





Reply via email to