package de.dtele.control.events {
  
  import flash.events.Event;
  import de.dtele.data.ISource;
  
  public class SourceEvent extends Event {
    
    /**
     * The SourceEvent.SELECTED constant defines the value of the 
     * <code>type</code> property of the event object 
     * for a <code>sourceSelected</code> event.
     * 
     * @eventType sourceSelected
     */
    public static const SELECTED:String = "sourceSelected";
    /**
     * The SourceEvent.ADDED constant defines the value of the 
     * <code>type</code> property of the event object 
     * for a <code>sourceAdded</code> event.
     * 
     * @eventType sourceAdded
     */
    public static const ADDED:String = "sourceAdded";
    /**
     * The SourceEvent.REMOVED constant defines the value of the 
     * <code>type</code> property of the event object 
     * for a <code>sourceRemoved</code> event.
     * 
     * @eventType sourceRemoved
     */
    public static const REMOVED:String = "sourceRemoved";
    
    private var _source:ISource;
    /**
     * The source this event was dispatched for
     */
    public function get source():ISource { return _source; }
    
    public function SourceEvent(type:String, source:ISource, bubbles:Boolean=false, cancelable:Boolean=false) {
      
      super(type, bubbles, cancelable);
      this._source = source;
    }
  }
}