var link = link_fields[i].getAttribute('field');
var key = link_fields[i].getAttribute('key');
var reltype = link_fields[i].getAttribute('reltype');
-
- if (map) continue;
+ var via = null;
+ var via_field = null;
+
+ if (map) {
+ via = idlclass;
+ via_link = link;
+ via_field = field.getAttribute('name');
+ var temp_class = getIDLClass(via);
+ var temp_links = temp_class.getElementsByTagName('link');
+ for ( var j = 0; j < temp_links.length; j++ ) {
+ if (temp_links[j].getAttribute('field') == map) {
+ idlclass = temp_links[j].getAttribute('class');
+ link = temp_links[j].getAttribute('field');
+ field = getIDLField( temp_class, link );
+ if (!field) continue;
+ }
+ }
+ }
var pathList = [];
findAncestorStack( item, 'treeitem', pathList );
for (var j in pathList.reverse()) {
var n = pathList[j].getAttribute('idlclass');
var f = pathList[j].getAttribute('field');
+ var v = pathList[j].getAttribute('via');
+ var vf = pathList[j].getAttribute('via_field');
var j = pathList[j].getAttribute('join');
+ if (v) {
+ if (vf) fullpath += "-" + vf;
+ if (vf && j != 'undefined') fullpath += '>' + j;
+ if (fullpath) fullpath += ".";
+ fullpath += v;
+ }
if (f) fullpath += "-" + f;
if (f && j != 'undefined') fullpath += '>' + j;
}
+ if(via) {
+ fullpath += "-" + via_field + "." + via;
+ }
+
fullpath += "-" + link;
subtreeList.push(
field : field.getAttribute('name'),
reltype : reltype,
link : link,
- fullpath : fullpath
+ fullpath : fullpath,
+ via : via,
+ via_field : via_field
}
);
field : field.getAttribute('name'),
reltype : reltype,
link : link,
- fullpath : fullpath + '>right'
+ fullpath : fullpath + '>right',
+ via : via,
+ via_field : via_field
}
);
field : field.getAttribute('name'),
reltype : reltype,
link : link,
- fullpath : fullpath + '>inner'
+ fullpath : fullpath + '>inner',
+ via : via,
+ via_field : via_field
}
);
field : field.getAttribute('name'),
reltype : reltype,
link : link,
- fullpath : fullpath + '>left'
+ fullpath : fullpath + '>left',
+ via : via,
+ via_field : via_field
}
);
field : field.getAttribute('name'),
reltype : reltype,
link : link,
- fullpath : fullpath + '>inner'
+ fullpath : fullpath + '>inner',
+ via : via,
+ via_field : via_field
}
);