BUG: layout not reset in callback when no edges present in graph
Description
Steps/Code to Reproduce
remove line 14, edge in graph, from demos/usage-reset-layoyt.py see https://github.com/plotly/dash-cytoscape/pull/141
Expected Results
Layout should still be updated when pressing reset
Actual Results
nothing happens
Versions
Dash 1.20.0 Dash Core Components 1.1.3 Dash HTML Components 1.16.0 Dash Renderer 1.9.1 Dash HTML Components 0.2.0
This issue seems to be solved now in master branch:
https://github.com/plotly/dash-cytoscape/assets/35932204/bd14629e-1678-4540-a7bf-b2164bf09ad4
Can we close this @alexcjohnson?
This bug still exists. When I run usage-reset-button.py exactly as given, both the node positions and the zoom/pan reset. When I remove the edge as in #141, there are three problems:
- The nodes are not arranged according to the layout type, instead they retain the given
positionattribures. - The initial view does not properly show all the nodes. Only Node 2 is visible, Node 1 is off the upper left corner.
- Clicking the button resets the node positions, but not the zoom/pan
Two more observations:
-
It does seem like the precise wording of the bug is correct, the behavior changes when there are no edge present. If for example I add another node that's not connected to anything (but the connection between nodes 1 and 2 is still there) the behavior is as expected, then when I again remove the edge we see the same problems.
-
The demo uses the
gridlayout. If I change to thecoselayout, on initial draw the layout is applied (moving the nodes away from the givenpositions) butbreadthfirstbehaves the same asgrid- so there are at least two categories of behavior depending on layout type. After clicking the reset button none of these layout types are applied, ie the nodes keep thepositions given.