nscomponentsreact
Version:
React Wrapper Components for NSComponents
130 lines (123 loc) • 2.95 kB
JavaScript
var nsModuleExport = function(root,name,prototype)
{
if(typeof exports === 'object' && typeof module === 'object')
{
module.exports[name] = prototype;
}
else if (typeof define === "function" && define.amd)
{
define(name,[], function () {return prototype;});
}
else if(typeof exports === 'object')
{
exports[name] = prototype;
}
else
{
root[name] = prototype;
}
};var nsIsWeb = function(root)
{
if(typeof exports === 'object' && typeof module === 'object')
{
return false;
}
else if (typeof define === "function" && define.amd)
{
return false;
}
else if(typeof exports === 'object')
{
return false;
}
else
{
return true;
}
};if(!nsIsWeb())
{
var nsutilRef = require('./nsUtil.min.js');
var NSUtil = nsutilRef.NSUtil;
}
;
var NSEvent = (function()
{
function NSEvent()
{
var self = this;
var objEvents = {};
var addListener = function(event, callback)
{
if (typeof callback !== 'function')
{
console.error("The listener callback must be a function");
return false;
}
if (typeof event !== 'string')
{
console.error("The event name must be a string");
return false;
}
if (!objEvents[event])
{
objEvents[event] = {listeners: []};
}
objEvents[event].listeners.push(callback);
return true;
};
var removeListener = function(event, callback)
{
if (!objEvents[event])
{
console.error("The event: " + event + " does not exist");
return false;
}
var filter = function(listener)
{
return listener.toString() !== callback.toString();
};
objEvents[event].listeners = objEvents[event].listeners.filter(filter);
return true;
};
var hasListener = function(event, callback)
{
if (!objEvents[event])
{
return false;
}
var filter = function(listener)
{
return listener.toString() == callback.toString();
};
var tempListener = objEvents[event].listeners.filter(filter);
return !(!tempListener);
};
var dispatch = function(event, details)
{
var retValue = true;
if (objEvents[event])
{
for(var index = 0;index < objEvents[event].listeners.length;index++)
{
var listener = objEvents[event].listeners[index];
retValue = listener({type: event,details: details},details);
if(retValue !== undefined && retValue !== null && retValue == false)
{
return false;
}
}
}
else
{
console.log("The event: " + event + " does not exist");
}
return true;
};
self.addListener = addListener;
self.removeListener = removeListener;
self.hasListener = hasListener;
self.dispatch = dispatch;
};
return NSEvent;
})();
nsModuleExport(this,"NSEvent",NSEvent);