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 [EMAIL PROTECTED] 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