Disable selection on some items in a spark List

The spark List component in Flex 4 treats every item equally with regards to selection. Sometimes I find it useful to customize this behavior so certain items cannot be selected. You can simulate this behavior by customizing the item renderer to make the selected state visually identical to the normal state, but to get more accurate functionality you will need to subclass List.
Continue reading Disable selection on some items in a spark List

Multiple selection in a spark List without the control key

The spark List component in Flex 4 allows you to select multiple items when you set allowMultipleSelection to true. With this flag set you can select multiple items by using the control/command key.

If you want to have a List that allows multiple selection, but does not require the user to hold down the control key when selecting items you can subclass List and override the item_mouseDownHandler() method.
Continue reading Multiple selection in a spark List without the control key

Spark equivalent of DisplayObjectContainer.contains()

In halo containers you could use the DisplayObjectContainer.contains() method to check if an element is a child, grandchild, great grandchild, … of a given container. This method might not always work as you expect when called on a spark container because not every element in a spark container is a DisplayObject.
Continue reading Spark equivalent of DisplayObjectContainer.contains()

Binding warnings when using Object in a List dataProvider

If you have built a custom item renderer for a DataGroup or List you may have come across warnings in your Flash Builder console output similar to this:

warning: unable to bind to property 'firstName' on class 'Object' (class is not an IEventDispatcher)

Continue reading Binding warnings when using Object in a List dataProvider

Changing the position of the scroll bars in a spark List

The default spark List skin wraps the the underlying DataGroup with a Scroller component to easily provide scrolling functionality. Custom skinning the Scroller component isn’t very flexible; you can custom skin each scrollbar to change the visuals on them, but you can’t easily reposition them. In these cases it usually makes more sense to get rid of the Scroller and hook up the scrollbars directly.
Continue reading Changing the position of the scroll bars in a spark List