dash-cytoscape icon indicating copy to clipboard operation
dash-cytoscape copied to clipboard

BUG: layout not reset in callback when no edges present in graph

Open ManInFez opened this issue 4 years ago • 2 comments

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

ManInFez avatar Jun 11 '21 10:06 ManInFez

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?

Farkites avatar Jan 23 '24 10:01 Farkites

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 position attribures.
  • 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:

  1. 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.

  2. The demo uses the grid layout. If I change to the cose layout, on initial draw the layout is applied (moving the nodes away from the given positions) but breadthfirst behaves the same as grid - 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 the positions given.

alexcjohnson avatar Jan 29 '24 17:01 alexcjohnson