|
|
|
|
// ******* 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, scriptIds) {
|
|
|
|
|
var rdoScriptId = $ax.repeater.getScriptIdFromElementId(rdoId);
|
|
|
|
|
var path = $ax.getPathFromScriptId(rdoScriptId);
|
|
|
|
|
var rdoRepeater = $ax.getParentRepeaterFromScriptId(rdoScriptId);
|
|
|
|
|
|
|
|
|
|
if(!scriptIds) scriptIds = [];
|
|
|
|
|
$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);
|
|
|
|
|
if(repeater != rdoRepeater) return;
|
|
|
|
|
|
|
|
|
|
if($ax.public.fn.IsReferenceDiagramObject(obj.type)) _model.idsInRdo(scriptId, scriptIds);
|
|
|
|
|
else if(scriptIds.indexOf(scriptId) != -1) return;
|
|
|
|
|
// Kind of complicated, but returning for isContained objects, hyperlinks, tabel cell, non-root tree nodes, and images in the tree.
|
|
|
|
|
else if (obj.isContained || obj.type == 'hyperlink' || $ax.public.fn.IsTableCell(obj.type) ||
|
|
|
|
|
($ax.public.fn.IsTreeNodeObject(obj.type) && !$jobj(elementId).hasClass('treeroot')) ||
|
|
|
|
|
($ax.public.fn.IsImageBox(obj.type) && $ax.public.fn.IsTreeNodeObject(obj.parent.type))) return;
|
|
|
|
|
else scriptIds.push(scriptId);
|
|
|
|
|
});
|
|
|
|
|
return scriptIds;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
});
|