reqlanOverviewIdeasFilesCode filesClustersAttributesGraphPrint
Ideas/reframe_view

Idea detail

reframe_view

reqlan rq/extension/library/graph.rq:150

block

Summary

Shared viewport behaviour for every surface that mounts GraphCyController ( Ideas Summary graph tab, activity bar mini graph, and future consumers ).
Implementation: reframeGraphToViewport and GraphCyController. reframeToViewport in graph-cy-controller.ts.
manual_reframe
auto_reframe
reframe_animation
Constants: GRAPH_VIEWPORT_PADDING ( 36 px padding around the element bounding box ), GRAPH_REFRAME_ANIMATION_MS ( 400 ms animated transition ).
Reframes resize the cytoscape container first, then fit all elements and centre the camera.
Does not clear selection, centreId, user-pinned drag positions, or live physics state — viewport only.

Jump to outbound references

Jump to inbound references

Navigation

Source file

reqlan rq/extension/library/graph.rq

community 19

community cluster

graph.rq

file cluster

reqlan rq/extension/library

folder cluster

status: Not present

status cluster

tag: Not present

tag cluster

Printable page

Static print-friendly idea sheet.

Attributes

No attributes declared.

Ancestor context

manual_reframe

Users can explicitly reframe the viewport when pan / zoom has moved the graph off-screen or they want to see the whole neighbourhood again. - " Fit to view " control in ["../../../packages/extension/webviews/ideas-summary/components/GraphControls.svelte"] dispatches to GraphView → GraphCyController. reframeToViewport ( ). - " Fit to view " control in ["../../../packages/extension/webviews/activity-bar/components/MiniGraphCanvas.svelte"] calls the same API on the mini-graph controller. Every graph surface that mounts GraphCyController should expose this control.

auto_reframe

The graph should automatically fit to the viewport when the loaded node set changes — without requiring the user to click " Fit to view ". After each successful syncSlice, GraphCyController compares the sorted node-id set of the incoming slice with fittedNodeSetKey ( the set the viewport was last fitted to ). When they differ, finishRender triggers an automatic reframe via reframeToViewport. Triggers when any node is added or removed from the slice ( new neighbourhood, focus change, filter change that changes membership ). Does not trigger for metadata-only updates on the same node ids ( label, colour, isCenter flag, etc. ) — those keep the user's current pan / zoom. Does not trigger on requestLayout relayout when the node-id set is unchanged.

reframe_animation

The first reframe on a controller mount is instant ( synchronous cy. fit + cy. center ) so the graph appears immediately on first paint. Every subsequent reframe — automatic ( [auto_reframe] ) or manual ( [manual_reframe] ) — animates pan and zoom smoothly over GRAPH_REFRAME_ANIMATION_MS using cytoscape. animate ( { fit, easing: ' ease-out-cubic ' } ). Callers may pass `reframeToViewport({ animate: false })` to force an instant reframe. Initial batch layouts use fit: false ( see [graph_cytoscape] ) so the controller owns the first fit and later animated handoffs are not double-applied.

graph_cytoscape

builds cytoscape elements and stylesheet from a generic node / edge slice. registers batch layout options ( fcose, cola, breadthfirst, circle, concentric, grid, random ) and seeds positions for new nodes. exposes CompoundBasis ( single-membership folder tree ) and GroupBasis ( flat multi-membership ) as grouping inputs. per ["../../../packages/extension/webviews/shared/graph/graph-cytoscape.ts"] and ["../../../packages/extension/webviews/shared/graph/graph-theme.ts"]. getLayoutConfig sets fit: false for initial ( mode = = = ' initial' ) batch layouts so [auto_reframe] owns the first viewport fit; relayout modes may still fit via the layout algorithm.

Outbound references

KindIdeaPathSnippet
file_reference ../../../packages/extension/webviews/shared/graph/graph-cy-controller.ts packages/extension/webviews/shared/graph/graph-cy-controller.ts graph-cy-controller.ts
references auto_reframe reqlan rq/extension/library/graph.rq auto_reframe
references manual_reframe reqlan rq/extension/library/graph.rq manual_reframe
references reframe_animation reqlan rq/extension/library/graph.rq reframe_animation

Inbound references

KindIdeaPathSnippet
references graph_cy_controller reqlan rq/extension/library/graph.rq reframe_view
references graph_label_auto reqlan rq/extension/library/graph.rq reframe_view
references view_controls reqlan rq/extension/library/graph.rq reframe_view

Unresolved references

KindIdeaPathSnippet
None

Local graph

Initialising graph…