[Laszlo-dev] For Review: Change 20070806-maxcarlson-x Summary: Remove setter for LzNode.data
P T Withington
ptw at openlaszlo.org
Mon Aug 6 17:10:57 PDT 2007
I guess I am confused. It seems that if you have a datapath (which
any node can?) then you might have your data attribute set and your
applyData method will be called. If you don't have a datapath, you
can feel free to have a data attribute and it will not be mucked with.
Your solution to the issue of how replicators set the data context of
their children of last week was that they would set the data
attribute and that we would have a setter for node that would coerce
that into a data context.
We discovered that is no good, because there are subclasses of node
that expect to be able to have a data attribute -- so a general
setter on data is not going to fly. This is too bad, because it
seems the more LZX-y thing to do would be to get rid of applyData and
only have a setter on data.
Instead, it looks like what we should do is hoist applyData up to
node and use that pattern. <sigh>
On 2007-08-06, at 19:49 EDT, Max Carlson wrote:
> Which behavior did you hoist up from text? The only difference
> between LzText and LaszloView I see is the implementation of
> applyData().
>
> It looks to me like .data is set in LzDatapath.__LZApplyData().
> LzDatapath.__LZHandleDocChange() also appears on .data being set.
>
>
>
> P T Withington wrote:
>> FTR,
>> The problem is that we hoisted data up from text to node, but
>> databinder (a subclass of node) already defined a data attribute.
>> As Max points out, it would be nice to have consistent behavior
>> for the meaning of the data attribute on nodes.
>> Some alternatives:
>> 1) Make data a reserved property of node, fix all subclasses of
>> node to deal with that.
>> 2) Use a different name for this property, fix text to use that
>> different name.
>> 3) Only hoist data up to view, since replicators only replicate
>> views.
>> Other ideas?
>> On 2007-08-06, at 17:46 EDT, Pablo Kang wrote:
>>> Looks good. Adding a comment why setData isn't a setter for the
>>> data attribute would help. Alternatively, rename setData to
>>> something else and comment what that method does exactly. In
>>> particular, how it creates a datapath if one doesn't already exist.
>>>
>>> pablo
>>>
>>> On Mon, 6 Aug 2007, Max Carlson wrote:
>>>
>>>> Change 20070806-maxcarlson-x by maxcarlson at plastik on 2007-08-06
>>>> 14:30:15 PDT
>>>> in /Users/maxcarlson/openlaszlo/wafflecone
>>>> for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
>>>>
>>>> Summary: Remove setter for LzNode.data
>>>>
>>>> New Features:
>>>>
>>>> Bugs Fixed: LPP-4405 'Implement ExplicitReplication' (partial)
>>>>
>>>> Technical Reviewer: promanik
>>>> QA Reviewer: ptw, pkang
>>>> Doc Reviewer: (pending)
>>>>
>>>> Documentation:
>>>>
>>>> Release Notes:
>>>>
>>>> Details: LzNode.lzs - Remove setter for .data -> setData().
>>>>
>>>> replicator.lzx - Call v.setData( this.nodes[ n ] ); instead of
>>>> setAttribute('data', ...)
>>>>
>>>>
>>>> Tests: silver/main.lzx?lzr=swf8 runs again, http://localhost:
>>>> 8080/wafflecone/test/explicit-replicators/replicator.lzx?
>>>> lzr=swf8 passes
>>>>
>>>> Files:
>>>> M WEB-INF/lps/lfc/core/LzNode.lzs
>>>> M lps/components/utils/replicator/replicator.lzx
>>>>
>>>> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20070806-
>>>> maxcarlson-x.tar
>
> --
> Regards,
> Max Carlson
> OpenLaszlo.org
More information about the Laszlo-dev
mailing list