[Laszlo-dev] For Review: Change 20080902-Philip-4. Summary: Modify components to use setters tag
P T Withington
ptw at laszlosystems.com
Wed Sep 3 10:52:38 PDT 2008
1) Could we correct this comment/rename the flag?
+/** true forces next call to setAttribute('x',...) to run
+ @access private */
+var _textdirty:Boolean = false;
I would say something like 'forces $lzc$set_text to do a full update,
typically because the font or style has changed even though the
content has not'. The name 'textdirty' is misleading, the text is
actually fine, but the optimization to not recompute when the content
doesn't changed is invalid. Perhaps the flag should be called
cacheInvalid or something.
2) I think that in the LFC (and only in the LFC, not in components),
the places where you have replaced `setFoo` with `setAttribute('foo'`
you should use `$lzc$set_foo`, just for efficiency/compactness. The
setAttribute call is correct, but will expand into unnecessary code at
the moment.
3) I think it is important that there be some correlation between the
declaration of an attribute and the definition of its setter. This is
why I put the original $lzc$set_* trampolines right below the var *
declaration. I know this goes against some other design rule where
all your var's are supposed to be together and then all your methods.
Maybe at least have a comment for the var's that have setters?
Because, eventually, when we go to "real" setters, the var's will have
to become getters and the state will have to be stored in an internal
var instead, so we'll need to be able to easily find all the var/
setter pairs.
4) When there is documentation on an old setFoo that you are
deprecating, you need to move that documentation to the var foo
declaration, if applicable. For example, the layout, height, and
width attributes.
5) A setter-method will never get more than one argument, so you
should remove the optional argument declarations when you reformulate
them (and make sure they were unused!). E.g., there are setters for
'x' and 'y' that have optional 'force' arguments.
6) States are not supposed to need explicit 'this.'s, so I'm wondering
if you _had_ to introduce those? Maybe this was a mis-communication
on my part?
---
Otherwise, approved!
On 2008-09-02, at 13:03EDT, Philip Romanik wrote:
> Change 20080902-Philip-4 by Philip at Philip-DC on 2008-09-02 10:55:41
> EDT
> in /cygdrive/f/laszlo/svn/src/svn/openlaszlo/trunk
> for http://svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: Modify components to use setters tag
>
> New Features:
>
> Bugs Fixed: LPP-5644 (partial)
>
> Technical Reviewer: ptw
> QA Reviewer: (pending)
> Doc Reviewer: (pending)
>
> Documentation:
>
> Release Notes:
>
> Details:
> I modified the components to use the setters tag. I also modified
> the old setter and $lzc_$set_* methods in view/canvas/text/
> inputtext. I added an explicit this to some of the states in the
> components (form, gridcolumn, modaldialog, window, windowpanel).
> Some of the components needs extra work to get the desired behavior
> of bgcolor (windowpanel, list, tabslider, tabelement).
>
> Once this changeset is approved I will modify the setters in the
> rest of the LFC, and start converting the components and LFC to use
> setAttribute instead of set*. Until then, running with debugging on
> will generate a lot of deprecated warnings,
>
> Tests:
> /test/smoke/smokecheck.lzx in swf8/dhtml
> componentsampler, list, grid all work in swf8/swf9/dhtml.
> lzpix/amazon runs in swf8/swf9/dhtml
>
> Files:
> M WEB-INF/lps/lfc/views/LzInputText.lzs
> M WEB-INF/lps/lfc/views/LzText.lzs
> M WEB-INF/lps/lfc/views/LaszloView.lzs
> M WEB-INF/lps/lfc/views/LaszloCanvas.lzs
> M lps/components/debugger/debugger.lzx
> M lps/components/debugger/newcontent.lzx
> M lps/components/debugger/scrollingtext.lzx
> M lps/components/lz/form.lzx
> M lps/components/lz/gridcolumn.lzx
> M lps/components/lz/tabslider.lzx
> M lps/components/lz/modaldialog.lzx
> M lps/components/lz/tabelement.lzx
> M lps/components/lz/plainfloatinglist.lzx
> M lps/components/lz/floatinglist.lzx
> M lps/components/lz/window.lzx
> M lps/components/lz/list.lzx
> M lps/components/lz/windowpanel.lzx
> M lps/components/incubator/rich-text/formatfontcolor.lzx
> M lps/components/incubator/borderinput.lzx
> M lps/components/extensions/av/videoview.lzx
> M lps/components/base/basebutton.lzx
> M lps/components/base/swatchview.lzx
> M lps/components/base/baselistitem.lzx
> M lps/components/base/basewindow.lzx
> M lps/components/base/basecombobox.lzx
> M lps/components/base/basetabslider.lzx
> M lps/components/base/basetabs.lzx
>
> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20080902-Philip-4.tar
>
More information about the Laszlo-dev
mailing list