How do I Access my View Component in a Mediator?

When a View Component is added to the stage within a Context’s contextView, it is by default mediated automatically based on configuration supplied to the MediatorMap when the mapping was made. In a basic mediator, the viewComponent property is injected with the view component that is being mediated. A Mediator’s viewComponent property is of type Object. In most cases, we want access to a strongly typed object to receive the benefits provided by using strongly typed objects. To achieve this, we inject the typed instance of the view component that is being mediated:

public class GalleryLabelMediator extends Mediator implements IMediator
{
    [Inject]
    public var myCustomComponent:MyCustomComponent;

    /**
    * overriding the onRegister method is a good chance to
    * add any system or View Component Events the Mediator
    * is interested in receiving.
    */
    override public function onRegister():void
    {
        //adding an event listener to the Context for framework events
        addEventListenerTo( eventDispatcher, MyCustomEvent.DO_STUFF, handleDoStuff );
        //adding an event listener to the view component being mediated
        addEventListenerTo( myCustomComponent, MyCustomEvent.DID_SOME_STUFF, handleDidSomeStuff)
    }

    protected function handleDoStuff(event:MyCustomEvent):void
    {
        //setting a property on the view component from the
        //strongly typed event payload. The view component
        //will likely manage its own state based on this
        //new data.
        myCustomComponent.aProperty = event.payload
    }

    protected function handleDidSomeStuff(event:MyCustomEvent):void
    {
        //relaying the event to the framework
        dispatch(event)
    }
}

Following this approach we now have easy direct access to the public properties and methods of the mediated view component.