forked from enviPath/enviPy
Initial Zoom, fix AD Creation
This commit is contained in:
@ -2205,7 +2205,23 @@ class Pathway(EnviPathModel, AliasMixin, ScenarioMixin, AdditionalInformationMix
|
||||
depth_map[0] = list()
|
||||
processed = set()
|
||||
|
||||
for n in self.root_nodes:
|
||||
data_driven_root_nodes = self.node_set.all().annotate(
|
||||
prod_cnt=Count('edge_products'),
|
||||
educt_cnt=Count('edge_educts')
|
||||
).filter(prod_cnt=0, educt_cnt__gt=0).distinct()
|
||||
|
||||
# Eval QuerySet
|
||||
root_nodes_by_depth = list(self.root_nodes)
|
||||
|
||||
data_driven_root_nodes.update(depth=0)
|
||||
root_nodes = [n for n in data_driven_root_nodes]
|
||||
|
||||
for n in root_nodes_by_depth:
|
||||
if n not in root_nodes:
|
||||
if len(n.edge_products.all()) == 0:
|
||||
root_nodes.append(n)
|
||||
|
||||
for n in root_nodes:
|
||||
depth_map[0].append(n)
|
||||
|
||||
# At most depth len(nodes) is possible
|
||||
|
||||
@ -22,7 +22,7 @@ function predictFromNode(url) {
|
||||
// data = {{ pathway.d3_json | safe }};
|
||||
// elem = 'vizdiv'
|
||||
function draw(pathway, elem) {
|
||||
|
||||
const initialzoom = 2.5
|
||||
const nodeRadius = 20;
|
||||
const linkDistance = 100;
|
||||
const chargeStrength = -200;
|
||||
@ -63,7 +63,7 @@ function draw(pathway, elem) {
|
||||
node.fx = width / 2 + depthMap.get(node.depth) * horizontalSpacing - ((nodesInLevel - 1) * horizontalSpacing) / 2;
|
||||
}
|
||||
|
||||
node.fy = node.depth * levelSpacing + 50;
|
||||
node.fy = (node.depth + initialzoom + 0.5) * levelSpacing + 50;
|
||||
depthMap.set(node.depth, depthMap.get(node.depth) + 1);
|
||||
});
|
||||
}
|
||||
@ -572,11 +572,12 @@ function draw(pathway, elem) {
|
||||
.scaleExtent([0.5, 5])
|
||||
.on("zoom", (event) => {
|
||||
zoomable.attr("transform", event.transform);
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
// Apply zoom to the SVG element - this enables wheel zoom
|
||||
svg.call(zoom);
|
||||
|
||||
svg.call(zoom.scaleBy, initialzoom);
|
||||
// Also apply zoom to container to catch events that might not reach SVG
|
||||
// This ensures drag-to-pan works even when clicking on empty space
|
||||
container.call(zoom);
|
||||
|
||||
@ -65,11 +65,11 @@
|
||||
},
|
||||
|
||||
get showMlrr() {
|
||||
return this.selectedType === 'mlrr';
|
||||
return this.selectedType === 'ml-relative-reasoning';
|
||||
},
|
||||
|
||||
get showRbrr() {
|
||||
return this.selectedType === 'rbrr';
|
||||
return this.selectedType === 'rule-based-relative-reasoning';
|
||||
},
|
||||
|
||||
get showEnviformer() {
|
||||
|
||||
Reference in New Issue
Block a user