jsdx-toolkit
Version:
Graphical toolkit on JSDX framework
42 lines (31 loc) • 697 B
JavaScript
/* Internal functions */
module.exports = {
traverseWidgets: traverseWidgets,
getWidgetIdDict: getWidgetIdDict,
setApplication: setApplication
};
function traverseWidgets(widget, handler) {
handler(widget);
if ('actor_list' in widget) {
for (var index in widget.actor_list) {
traverseWidgets(widget.actor_list[index], handler);
}
}
}
function getWidgetIdDict(widget, callback) {
var idDict = {};
traverseWidgets(widget, function(w) {
if ('id' in w) {
idDict[w.id] = w;
}
});
process.nextTick(function() {
callback(idDict);
});
}
function setApplication(widget, app) {
/* Set all widgets */
traverseWidgets(widget, function(w) {
w.application = app;
});
}