Change maxcarlson-20101227-iT7 by maxcarl...@friendly on 2010-12-27 10:14:29 PST
in /Users/maxcarlson/openlaszlo/trunk2/my-apps/components
for http://svn.lzxpatterns.com/components/trunk
Summary: Add 'selected' attribute to componentmodel, modularize list
Bugs Fixed: LPP-9502 - Add 'selected' attribute to componentmodel
Technical Reviewer: ptw
QA Reviewer: ffeng
Details: I'm going to check this in. Updated to address Tucker's comments:
Issues:
1) lib/componentmodel/__updatedisabled:
I don't think the logic is right here. It seems to me that you want to know a)
if the user has requested clickable or focusable, and then set the actual value
according to whether it is disabled or not? As written, if I make a component
clickable and disabled, when I un-disable it, it won't become clickable. See
also comment 5).
I fixed this and a bunch of other focus/clickable edge cases. To test:
<bsbtn x="10" width="195" height="72"
onclick="this.setAttribute('disabled', true);"/>
2) styleattributes:
> > <attribute name="fgcolor" type="color" style="text-color"
> > inherit="true"/>
I think the style name for fgcolor should be simply "color" to correspond with
CSS.
Fixed. This will force folks to update their CSS, but that's a good thing!
Comments:
1) lib/button/library.lzx/styledtext why not use align="center"
valign="middle", instead of the explicit constraints? Should be more efficient
to use the built-in feature, no?
Fixed.
2) lib/combobox: I see what you mean about our key handling!
3) lib/combobox:
> > // TODO: this.classroot not defined here!
test case? file a bug?
Filed as http://jira.openlaszlo.org/jira/browse/LPP-9605
4) lib/componentmodel: I don't understand this comment:
> > // Explicitly define a setter so selectionmanagers can bind to
> > // $lzc$set_selected
5) lib/componentmodel/__updatedisabled: I think it would be more efficient to
write a setter for each of the attributes that sets the relevant attribute
according to the state of the attribute and disabled.
Fixed.
button/events - Reset the mouse state when clickable becomes false.
drawshadowfocus/drawborderfocus - Update for focusable, don't try to be too
smart about not animating twice.
button/library - Use the height of the icon for buttons with no text. Add
style names for icon attributes. Default iconpadding to padding. Correct
sizing computations. iconvalign shouldn't be needed anymore.
demos/button - Add more button iconalign examples, use iconresource styling,
update padding and text-color -> color.
Otherwise:
componentselector - Subclass selectionmanager, set to use 'selected' setter.
selectable - Tiny mixin to allow styling in CSS - see house.lzx
lib/library - Add list/ to top-level includes
slider/library - Use styledtext instead of a discrete text instance in the
slider floater (for styling)
styleattributes - Move list of CSS-styleable attributes from components to this
mixin.
styledtext - Add class to allow styling of text used inside components.
keyevents - Move shared keyboard processing out of buttonevents
componentmodel - Add selected attribute and setter for use with
componentselector. Don't turn on clickable/focusable when not disabled.
basepanel - Include styleattributes mixin, move CSSable attributes to
styleattributes.
listitem - Move to list/listitem. Move selection logic to selectable. Include
selectable, styleattributes mixins.
combobox/library - Include list components. Improve focue and modality setup.
Also open for arrow keys. Disable clickable on the button. Delegate keyboard
events to the list to support keyboard navigation.
button/library - Use styledtext instead of a discrete text instance.
button/draw - Don't set alpha based on disabled.
list/library - Refactor list component from inside combobox floater, add
keyboard navigation.
demos/house - Move selection-color to basepanel selector. Explicitly style
styledtext and selectable classes. Set the opacity of disabled buttons to .5
Tests: Components now have a selected attribute, colors for text are now styled
via CSS, combobox supports keyboard navigation. Otherwise, demos/house runs
like before.
Files:
A lib/componentselector.lzx
A lib/selectable.lzx
M lib/drawshadowfocus.lzx
M lib/library.lzx
M lib/slider/library.lzx
A lib/styleattributes.lzx
A lib/styledtext.lzx
A lib/keyevents.lzx
M lib/componentmodel.lzx
M lib/basepanel.lzx
D lib/listitem.lzx
M lib/drawborderfocus.lzx
M lib/combobox/library.lzx
M lib/button/events.lzx
M lib/button/library.lzx
M lib/button/draw.lzx
A lib/list
A lib/list/library.lzx
A + lib/list/listitem.lzx
M demos/button.lzx
M demos/house.lzx
Changeset:
http://svn.openlaszlo.org/openlaszlo/patches/maxcarlson-20101227-iT7.tar