src/js/libs/spiritual-edb.js
function(types, handler, required) {
		types.forEach(function(Type) {
			if (gui.Type.isDefined(Type)) {
				this._addchecks(Type.$classid, [handler]);
				this._watches.push(Type);
				if (required) {
					this._needing.push(Type);
				}
			} else {
				throw new TypeError("Could not register input for undefined Type");
			}
		}, this);
		types.forEach(function(Type) {
			gui.Class.descendantsAndSelf(Type, function(T) {
				if (T.out(this.context)) { // type has been output already?
					this._maybeinput(edb.Output.$get(T));
				}
			}, this);
		}, this);
	}
function(types, handler, required) {
		types.forEach(function(Type) {
			if (gui.Type.isDefined(Type)) {
				this._addchecks(Type.$classid, [handler]);
				this._watches.push(Type);
				if (required) {
					this._needing.push(Type);
				}
			} else {
				throw new TypeError("Could not register input for undefined Type");
			}
		}, this);
		types.forEach(function(Type) {
			gui.Class.descendantsAndSelf(Type, function(T) {
				if (T.out(this.context)) { // type has been output already?
					this._maybeinput(edb.Output.$get(T));
				}
			}, this);
		}, this);
	}
function ( types , handler , required ) { types . forEach ( function ( Type ) { if ( gui . Type . isDefined ( Type ) ) { this . _addchecks ( Type . $classid , [ handler ] ) ; this . _watches . push ( Type ) ; if ( required ) { this . _needing . push ( Type ) ; } } else { throw new TypeError ( "Could not register input for undefined Type" ) ; } } , this ) ; types . forEach ( function ( Type ) { gui . Class . descendantsAndSelf ( Type , function ( T ) { if ( T . out ( this . context ) ) { // type has been output already? this . _maybeinput ( edb . Output . $get ( T ) ) ; } } , this ) ; } , this ) ; }
Add input handler for types.
@param {Array<function>} types
@param {IInputHandler} handler
@param {boolean} required
Add input handler for types .