| Package | org.puremvc.as3.interfaces |
| Interface | public interface IMediator |
| Implementors | Mediator |
In PureMVC, IMediator implementors assume these responsibilities:
INotifications
the IMediator has interest in.
Additionally, IMediators typically:
INotifications, interacting with of
the rest of the PureMVC app.
When an IMediator is registered with the IView,
the IView will call the IMediator's
listNotificationInterests method. The IMediator will
return an Array of INotification names which
it wishes to be notified about.
The IView will then create an Observer object
encapsulating that IMediator's (handleNotification) method
and register it as an Observer for each INotification name returned by
listNotificationInterests.
A concrete IMediator implementor usually looks something like this:
import org.puremvc.as3.patterns.mediator.*;
import org.puremvc.as3.patterns.observer.*;
import org.puremvc.as3.core.view.*;
import com.me.myapp.model.*;
import com.me.myapp.view.*;
import com.me.myapp.controller.*;
import mx.controls.ComboBox;
import mx.events.ListEvent;
public class MyMediator extends Mediator implements IMediator {
public function MyComboMediator( viewComponent:Object ) {
super( viewComponent );
combo.addEventListener( Event.CHANGE, onChange );
}
override public function listNotificationInterests():Array {
return [ MyFacade.SET_SELECTION,
MyFacade.SET_DATAPROVIDER ];
}
override public function handleNotification( notification:INotification ):void {
switch ( notification.getName() ) {
case MyFacade.SET_SELECTION:
setSelection(notification);
break;
case MyFacade.SET_DATAPROVIDER:
setDataProvider(notification);
break;
}
}
// Set the data provider of the combo box
protected function setDataProvider( notification:INotification ):void {
combo.dataProvider = notification.getBody() as Array;
}
// Invoked when the combo box dispatches a change event, we send a
// notification with the
protected function onChange(event:ListEvent):void {
sendNotification( MyFacade.MYCOMBO_CHANGED, this );
}
// A private getter for accessing the view object by class
protected function get combo():ComboBox {
return view as ComboBox;
}
}
See also
| Method | Defined by | ||
|---|---|---|---|
|
getMediatorName():String
Get the
IMediator instance name
| IMediator | ||
|
getViewComponent():Object
Get the
IMediator's view component. | IMediator | ||
|
handleNotification(notification:INotification):void
Handle an
INotification. | IMediator | ||
|
listNotificationInterests():Array
List
INotification interests. | IMediator | ||
|
onRegister():void
Called by the View when the Mediator is registered
| IMediator | ||
|
onRemove():void
Called by the View when the Mediator is removed
| IMediator | ||
|
setViewComponent(viewComponent:Object):void
Set the
IMediator's view component. | IMediator | ||
| getMediatorName | () | method |
public function getMediatorName():String
Get the IMediator instance name
String — the IMediator instance name
|
| getViewComponent | () | method |
public function getViewComponent():Object
Get the IMediator's view component.
Object — Object the view component
|
| handleNotification | () | method |
public function handleNotification(notification:INotification):void
Handle an INotification.
notification:INotification — the INotification to be handled
|
| listNotificationInterests | () | method |
public function listNotificationInterests():Array
List INotification interests.
Array — an Array of the INotification names this IMediator has an interest in.
|
| onRegister | () | method |
public function onRegister():voidCalled by the View when the Mediator is registered
| onRemove | () | method |
public function onRemove():voidCalled by the View when the Mediator is removed
| setViewComponent | () | method |
public function setViewComponent(viewComponent:Object):void
Set the IMediator's view component.
viewComponent:Object — the view component
|