That approach will be quite confusing for an average developer:
Through LzDataElement(Trait) you would give LzNode methods like
"appendChild", "removeChild" etc.
So what will that developer try to do: "canvas.appendChild( new lz.view() )"
-> hey, it's "append a child", so that must work!?
If you have got a base single class
"MiniNode/DataElementTrait/DataElement", what about LzDataText, will it
also subclass that class?. So, "appendChild", "removeChild" etc. for
LzDataText?
Or did I misunderstand something and this is just a temporary solution
until traits are implemented in swf9?
On 1/22/2008, P T Withington wrote:
I wanted to add this to the bug, but Jira is out for now:
Expanding on that:
we want: LzMiniNode->LzDataElement(Trait)->LzNode->LzDataSet
Probably MiniNode/DataElementTrait/DataElement become a single class
DataNode.
On 2008-01-21, at 16:50 EST, Philip Romanik wrote:
Sure. I'll let you know what I find
We just had a little brainstorm about how to get the data classes
working in swf9. Tucker can chime in here
if I say something bogus below, but here's my view of what to do:
There's a problem right now because LzDataElement is implemented
using a "trait" to mix in some behavior,
and we don't have traits implemented in the compiler for swf9.
The issue is that LzDataElement mixes in a class called
"LzDataNode", and "LzMiniNode".
There's a proposal to rearrange things a little in the base classes
so that everyone inherits from LzDataNode.
So LzDataElement and other data classes would subclass LzDataNode,
and
LzNode would also subclass LzDataNode. LzDataset could then inherit
from LzDataElement. We can get rid of
LzMiniNode.
<http://www.openlaszlo.org/jira/browse/LPP-2736>http://www.openlaszlo.org/jira/browse/LPP-2736
We wanted to do some kind of benchmarking before we commit to this,
in case having this structure of classes
somehow slows down data performance. So if there were some way you
could make this change and see if the
code still works and if it doesn't slow down, then we would proceed
with this reorganization and then try to make the
code compile cleanly in swf9/devildog.
--