if (enabledAncestor == null) {
enabledAncestor = node;
}
int clusterEnd = node.getPre() + node.size;
for (int i = node.pre; i <= clusterEnd; i++) {
AbstractNode desc = treeStructure.getNodeAt(i);
if (desc.getEdgesOutTree().getCount() > 0) {
edgeIterator.setNode(desc.getEdgesOutTree());
while (edgeIterator.hasNext()) {
AbstractEdge edge = edgeIterator.next();
AbstractNode[] enabledAncestors = treeStructure.getEnabledAncestorsOrSelf(edge.getTarget(viewId));
if (enabledAncestors != null) {
for (int j = 0; j < enabledAncestors.length; j++) {
AbstractNode targetNode = enabledAncestors[j];
if (!(targetNode == edge.getTarget(viewId) && enabledAncestor == edge.getSource(viewId))) {
createMetaEdge(enabledAncestor, targetNode, edge);
}
}
}
// AbstractNode targetNode = treeStructure.getEnabledAncestorOrSelf(edge.getTarget(viewId));
// if (targetNode != null && !(targetNode == edge.getTarget(viewId) && enabledAncestor == edge.getSource(viewId))) {
// //Create Meta Edge if not exist
// createMetaEdge(enabledAncestor, targetNode, edge);
// }
}
}
if (desc.getEdgesInTree().getCount() > 0) {
edgeIterator.setNode(desc.getEdgesInTree());
while (edgeIterator.hasNext()) {
AbstractEdge edge = edgeIterator.next();
AbstractNode[] enabledAncestors = treeStructure.getEnabledAncestorsOrSelf(edge.getSource(viewId));
if (enabledAncestors != null) {
for (int j = 0; j < enabledAncestors.length; j++) {
AbstractNode sourceNode = enabledAncestors[j];
if (!(sourceNode == edge.getSource(viewId) && enabledAncestor == edge.getTarget(viewId))) {
createMetaEdge(sourceNode, enabledAncestor, edge);
}
}
}