Hi Lee,
Ideally in OpenFlux you wouldn't have to deal with events in the view at all. So, something along the lines of option two sounds like a better choice, however instead of defining an id in ViewHandler you should be able to test for the event's currentTarget property in the handler function.
For something like a toolbar I would suggest using the List component provided in OpenFlux with a custom controller, or the list component may already work for your purposes as is. You should be able to provide a collection of UIComponents directly to the data property and it will act like a container (perhaps I should think about renaming it). You can assign a custom controller to any component just like you can with a custom view, and we've provided some additional metadata concepts to help wire things together automatically. They're not all documented yet, but here's the general idea.
// class metadata
[EventHandler(event="itemClick", handler="itemClickHandler")] // make itemClickHandler a listener for the itemClick event of my component
[ViewHandler(event="click", handler="clickHandler")] // make clickHandler a listener for the click event of whatever my component's view is
// property metadata (EventHandlers can also be placed above properties)
[ModelAlias] public var button:IButton; // ModelAlias automatically assigns the component to this var if it can be typed correctly, if not it's null
[ViewContract] public var upButton:DisplayObject; // ViewContract automatically looks for this property on the view and assigns it to this var if it can be typed correctly, if not it's null
We've also provided a ComplexController class, so that you can easily mix and match individual controllers to suit your needs. For instance you may want to keep the existing list selection behavior, but add an additional custom controller for Drag n' Drop behavior or any non-standard behavior you need. Let me know if this helps out at all and if not I'll try to put a ButtonBar example together soon. Thanks.
- Ben Stucki