in asdoc/org/apache/royale/binding/ItemRendererDataBinding.js [40:107]
org.apache.royale.binding.ItemRendererDataBinding.prototype.processBindingData = function(bindingData, first) {
var /** @type {number} */ i = 0;
var /** @type {Object} */ fieldWatcher;
var /** @type {org.apache.royale.binding.SimpleBinding} */ sb;
var /** @type {Object} */ binding = null;
var /** @type {number} */ n = (bindingData[first]) >> 0;
var /** @type {Array} */ bindings = [];
//var /** @type {number} */ i = 0;
var /** @type {number} */ index = (first + 1) >> 0;
for (i = 0; i < n; i++) {
binding = {};
binding.source = bindingData[index++];
binding.destFunc = bindingData[index++];
binding.destination = bindingData[index++];
bindings.push(binding);
}
var /** @type {Object} */ watchers = this.decodeWatcher(bindingData.slice(index));
for (i = 0; i < n; i++) {
binding = bindings[i];
if (org.apache.royale.utils.Language.is(binding.source, String)) {
fieldWatcher = watchers.watcherMap[binding.source];
if (!fieldWatcher) {
this.makeConstantBinding(binding);
} else if (org.apache.royale.utils.Language.is(fieldWatcher.eventNames, String)) {
var /** @type {boolean} */ isStatic = fieldWatcher.type == "static";
sb = new org.apache.royale.binding.SimpleBinding(isStatic);
sb.destinationPropertyName = org.apache.royale.utils.Language.string(binding.destination[1]);
sb.eventName = fieldWatcher.eventNames;
sb.sourcePropertyName = org.apache.royale.utils.Language.string(binding.source);
if (isStatic) {
sb.setDocument(fieldWatcher.parentObj);
} else {
sb.setDocument(this._strand);
}
this.prepareCreatedBinding(sb, binding);
}
} else if (org.apache.royale.utils.Language.is(binding.source, Array) && binding.source.length == 2 && binding.destination.length == 2) {
var /** @type {Object} */ compWatcher = watchers.watcherMap[binding.source[0]];
if (compWatcher) {
fieldWatcher = compWatcher.children.watcherMap[binding.source[1]];
}
if (compWatcher && !fieldWatcher && (binding.source[0] == "data" || (org.apache.royale.utils.Language.is(compWatcher.eventNames, String) && compWatcher.eventNames == "dataChange"))) {
var /** @type {org.apache.royale.binding.ItemRendererSimpleBinding} */ irsb = new org.apache.royale.binding.ItemRendererSimpleBinding();
irsb.destinationID = org.apache.royale.utils.Language.string(binding.destination[0]);
irsb.destinationPropertyName = org.apache.royale.utils.Language.string(binding.destination[1]);
irsb.sourcePropertyName = org.apache.royale.utils.Language.string(binding.source[1]);
irsb.setDocument(this._strand);
this._strand.addBead(irsb);
} else if (fieldWatcher != null && org.apache.royale.utils.Language.is(fieldWatcher.eventNames, String) && org.apache.royale.utils.Language.is(compWatcher.eventNames, String)) {
sb = new org.apache.royale.binding.SimpleBinding();
sb.destinationPropertyName = org.apache.royale.utils.Language.string(binding.destination[1]);
sb.eventName = fieldWatcher.eventNames;
sb.sourceID = org.apache.royale.utils.Language.string(binding.source[0]);
sb.setSourceEventName(compWatcher.eventNames);
sb.sourcePropertyName = org.apache.royale.utils.Language.string(binding.source[1]);
sb.setDocument(this._strand);
this.prepareCreatedBinding(sb, binding);
} else if (fieldWatcher == null || fieldWatcher.eventNames == null) {
this.makeConstantBinding(binding);
} else {
this.makeGenericBinding(binding, i, watchers);
}
} else {
this.makeGenericBinding(binding, i, watchers);
}
fieldWatcher = null;
}
};