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

Reply via email to