123456789101112131415161718192021222324252627282930313233343536373839404142 |
- // ******* Object Model ******** //
- $axure.internal(function($ax) {
- var _implementations = {};
- var _initializeObject = function(type, obj) {
- $.extend(obj, _implementations[type]);
- };
- $ax.initializeObject = _initializeObject;
- var _model = $ax.model = {};
- _model.idsInRdo = function(rdoId, elementIds) {
- var rdoScriptId = $ax.repeater.getScriptIdFromElementId(rdoId);
- var rdoObj = $obj(rdoId);
- var path = $ax.getPathFromScriptId(rdoScriptId);
- var rdoRepeater = $ax.getParentRepeaterFromScriptId(rdoScriptId);
- var rdoItem = $ax.repeater.getItemIdFromElementId(rdoId);
- if(!elementIds) elementIds = [];
- $ax('*').each(function(obj, elementId) {
- // Make sure in same rdo
- var scriptId = $ax.repeater.getScriptIdFromElementId(elementId);
- var elementPath = $ax.getPathFromScriptId(scriptId);
- // This is because last part of path is for the obj itself.
- elementPath.pop();
- if(elementPath.length != path.length) return;
- for(var i = 0; i < path.length; i++) if(elementPath[i] != path[i]) return;
- // If object is in a panel, the panel will be hidden, so the obj doesn't have to be.
- if(obj.parentDynamicPanel) return;
- var repeater = $ax.getParentRepeaterFromScriptId(scriptId);
- var item = $ax.repeater.getItemIdFromElementId(elementId);
- if(repeater != rdoRepeater || item != rdoItem) return;
- if(obj.type == 'referenceDiagramObject') _model.idsInRdo(elementId, elementIds);
- else elementIds.push(elementId);
- });
- return elementIds;
- };
- });
|