import patterns.mvc.*;import patterns.observer.*; class patterns.mvc.AbstractController implements IController{ private var _model:Observable; private var _view:IView; public function AbstractController(m:Observable) { // Set the model. trace("AbstractController"); model = m; } ////////////////////////////// // ACCESSORS ////////////////////////////// public function set model( m:Observable ):Void { _model = m; } public function get model():Observable { return _model; } public function set view( v:IView ):Void { _view = v; } public function get view():IView { return _view; } }
import utils.error.AbstractError;import patterns.mvc.*;import patterns.observer.*; class patterns.mvc.AbstractView implements IObserver, IView{ private var _model:Observable; private var _controller:IController; public function AbstractView( m:Observable, c:IController ) { model = m; if(c !== undefined) { controller = c; } } /** * A do-nothing implementation of the Observer interface's * update() method. Subclasses of AbstractView will provide * a concrete implementation for this method. */ public function update(o:Observable, infoObj:Object):Void { throw new AbstractError("update"); } /////////////////////////////////////////////// // ACCESSORS /////////////////////////////////////////////// ////////////// // MODEL public function set model( m:Observable ):Void { _model = m; } public function get model():Observable { return _model; } ////////////// // CONTROLLER public function set controller( c:IController ):Void { _controller = c; controller.view = this; } public function get controller():IController { if( _controller === undefined ) { controller = defaultController; } return _controller; } public function get defaultController():IController { return null; } }