bugcore
Version:
bugcore is a JavaScript library that provides a foundational architecture for object oriented JS
80 lines (57 loc) • 2.51 kB
JavaScript
/*
* Copyright (c) 2016 airbug Inc. http://airbug.com
*
* bugcore may be freely distributed under the MIT license.
*/
//-------------------------------------------------------------------------------
// Annotations
//-------------------------------------------------------------------------------
//@Export('EventDispatcher')
//@Require('Class')
//@Require('EventReceiver')
//@Require('IEventDispatcher')
//-------------------------------------------------------------------------------
// Context
//-------------------------------------------------------------------------------
require('bugpack').context("*", function(bugpack) {
//-------------------------------------------------------------------------------
// BugPack
//-------------------------------------------------------------------------------
var Class = bugpack.require('Class');
var EventReceiver = bugpack.require('EventReceiver');
var IEventDispatcher = bugpack.require('IEventDispatcher');
//-------------------------------------------------------------------------------
// Declare Class
//-------------------------------------------------------------------------------
/**
* @class
* @extends {EventReceiver}
* @implements {IEventDispatcher}
*/
var EventDispatcher = Class.extend(EventReceiver, {
_name: "EventDispatcher",
//-------------------------------------------------------------------------------
// IEventDispatcher Implementation
//-------------------------------------------------------------------------------
/**
* @param {Event} event
* @param {?boolean=} bubbles
*/
dispatchEvent: function(event, bubbles) {
if (bubbles === undefined) {
bubbles = true;
}
event.setBubbles(bubbles);
event.setTarget(this.getTarget());
this.propagateEvent(event);
}
});
//-------------------------------------------------------------------------------
// Interfaces
//-------------------------------------------------------------------------------
Class.implement(EventDispatcher, IEventDispatcher);
//-------------------------------------------------------------------------------
// Exports
//-------------------------------------------------------------------------------
bugpack.export('EventDispatcher', EventDispatcher);
});