Display fragment tree on layout viewer

This commit is contained in:
Fernando Jiménez Moreno 2020-02-12 11:21:04 +01:00
parent cce74e814d
commit 84dd334160

View file

@ -100,22 +100,23 @@
} }
function create_flow_tree(trace_node) { function create_flow_tree(trace_node) {
var base = get_base(trace_node);
var node = { var node = {
text: trace_node.class + " (" + base.id + ")", text: Object.keys(trace_node)[0],
id: base.id, // id: base.id,
icon: "dummy", // icon: "dummy",
href: "#diff-" + base.id // href: "#diff-" + base.id
}; };
var children = []; var fragment = Object.values(trace_node)[0];
for (var i=0 ; i < base.children.length ; ++i) { if (fragment.children) {
children.push(create_flow_tree(base.children[i])); var children = [];
} for (var i=0 ; i < fragment.children.length ; ++i) {
children.push(create_flow_tree(fragment.children[i]));
}
if (children.length > 0) { if (children.length > 0) {
node.nodes = children; node.nodes = children;
}
} }
return node; return node;
@ -125,22 +126,22 @@
var base = get_base(trace_node); var base = get_base(trace_node);
flow_hash[base.id] = trace_node; flow_hash[base.id] = trace_node;
for (var i=0 ; i < base.children.length ; ++i) { for (var i=0 ; i < trace_node.children.length ; ++i) {
create_flow_hash(base.children[i], flow_hash); create_flow_hash(base.children[i], flow_hash);
} }
delete base.children; delete trace_node.children;
} }
function flatten_trace(trace_node) { function flatten_trace(trace_node) {
var flow_tree = create_flow_tree(trace_node.children[0]); var flow_tree = create_flow_tree(Object.values(trace_node)[0]);
var flow_hash = {}; //var flow_hash = {};
create_flow_hash(trace_node.children[0], flow_hash); //create_flow_hash(trace_node[0], flow_hash);
return { return {
tree: flow_tree, tree: flow_tree,
flows: flow_hash, //flows: flow_hash,
} }
} }
@ -149,21 +150,23 @@
var post_trace = flatten_trace(trace_node.post); var post_trace = flatten_trace(trace_node.post);
var tree_node = { var tree_node = {
text: trace_node.name, text: Object.keys(trace_node)[0],
icon: "dummy", icon: "dummy",
flow_tree: pre_trace.tree, // assume pre/post trace always have same tree! flow_tree: pre_trace.tree, // assume pre/post trace always have same tree!
pre: pre_trace.flows, //pre: pre_trace.flows,
post: post_trace.flows, //post: post_trace.flows,
}; };
var children = []; var trace_node = Object.values(trace_node)[0];
if (trace_node.children) {
var children = [];
for (var i=0 ; i < trace_node.children.length ; ++i) {
children.push(create_tree_node(trace_node.children[i]));
}
for (var i=0 ; i < trace_node.children.length ; ++i) { if (children.length > 0) {
children.push(create_tree_node(trace_node.children[i])); tree_node.nodes = children;
} }
if (children.length > 0) {
tree_node.nodes = children;
} }
return tree_node; return tree_node;