StructureJS
0.15.2A class based utility library for building modular and scalable web platform applications. Features opt-in classes and utilities which provide a solid foundation and toolset to build your next project.
import BaseObject from './BaseObject';
/**
* The {{#crossLink "ObjectManager"}}{{/crossLink}} class is an abstract class that provides enabling and disabling functionality for most StructureJS classes.
*
* @class ObjectManager
* @module StructureJS
* @extends BaseObject
* @submodule core
* @requires Extend
* @requires BaseObject
* @constructor
* @author Robert S. (www.codeBelt.com)
*/
class ObjectManager extends BaseObject
{
/**
* The isEnabled property is used to keep track of the enabled state of the object.
*
* @property isEnabled
* @type {boolean}
* @default false
* @public
*/
public isEnabled:boolean = false;
constructor()
{
super();
}
/**
* The enable method is responsible for enabling event listeners and/or children of the containing objects.
*
* @method enable
* @public
* @chainable
* @example
* enable() {
* if (this.isEnabled === true) { return; }
*
* this._childInstance.addEventListener(BaseEvent.CHANGE, this.handlerMethod, this);
* this._childInstance.enable();
*
* super.enable();
* }
*/
public enable():any
{
if (this.isEnabled === true)
{
return this;
}
this.isEnabled = true;
return this;
}
/**
* The disable method is responsible for disabling event listeners and/or children of the containing objects.
*
* @method disable
* @public
* @chainable
* @example
* disable() {
* if (this.isEnabled === false) { return; }
*
* this._childInstance.removeEventListener(BaseEvent.CHANGE, this.handlerMethod, this);
* this._childInstance.disable();
*
* super.disable();
* }
*/
public disable():any
{
if (this.isEnabled === false)
{
return this;
}
this.isEnabled = false;
return this;
}
}
export default ObjectManager;