package flare.vis.controls { import flare.util.Filter; import flash.display.InteractiveObject; import flash.events.EventDispatcher; /** * Base class for interactive controls. */ public class Control extends EventDispatcher implements IControl { /** @private */ protected var _object:InteractiveObject; /** @private */ protected var _filter:Function; /** Boolean function indicating the items considered by the control. * @see flare.util.Filter */ public function get filter():Function { return _filter; } public function set filter(f:*):void { _filter = Filter.$(f); } /** * Creates a new Control */ public function Control() { // do nothing } /** @inheritDoc */ public function get object():InteractiveObject { return _object; } /** @inheritDoc */ public function attach(obj:InteractiveObject):void { if (_object) detach(); _object = obj; } /** @inheritDoc */ public function detach():InteractiveObject { var obj:InteractiveObject = _object; _object = null; return obj; } // -- MXML ------------------------------------------------------------ /** @private */ public function initialized(document:Object, id:String):void { // do nothing } } // end of class Control }