This custom component I developed extends ComboBox, and allows a number of ComboBox based components to be added to the stage (dynamically or statically), and they are all linked via a shared DataProvider.
In essence, the ComboBox components are shared, and selecting an item in one comboBox removes that item as a selectable option in any other ComboBox. Inversely, if a ComboBox is removed, its selected item becomes available to the others again.
- IoC to inject a class with a static xmlList into the ComboBox components
- getQualifiedClassName() and getDefinitionByName() to create Class references on the fly
- Use of weak reference event listeners and custom events
- Custom Spark Button class and button Skin
- Forced garbage collection using the following:
/**
* Forces a garbage collection to occur. More reliable
* than System.gc();
*/
private function garbageCollectionHack():void{
try {
new LocalConnection().connect('foo');
new LocalConnection().connect('foo');
} catch (e:*) {}
}
In you add a change event handler, you can reference the sharedComboBox.ownedItem (this is handy if you passed in objects – in xml form – to your dataProvider)
Tags: ComboBox, Disable, Flex, Mutually Exclusive, Shared
