Motivation & Problem
In #633, active table/view/database selection was synchronized to the connections sidebar tree (_ConnectionsTreeSelectionScope) with fluid animated selection styling (_PgTreeRow) across PostgreSQL, MySQL, SQLite, Redis, and MongoDB.
However, extension drivers (e.g. ClickHouse) render their schema hierarchy using SduiTreeBuilder in connections_panel_extension.dart. Currently, SduiTreeBuilder does not receive or support an active selection identifier (selectedNodeId or selectedObject), which means selecting a table or view in an extension connection does not highlight the active node in the sidebar tree.
Proposed Scope
- In
SduiTreeBuilder:
- Add
selectedNodeId (or active selection predicate) parameter.
- Forward selection from
_ConnectionsTreeSelectionScope via _ExtensionConnectionTile.
- Add animated selection container styling (subtle primary background tint, primary border outline, semibold typography) matching
_PgTreeRow selection state.
- In
connections_panel_extension.dart:
- Forward active extension selection from
_ConnectionsTreeSelectionScope to SduiTreeBuilder.
- Add widget tests verifying that selecting an extension node highlights the corresponding row in the SDUI tree.
Acceptance Criteria
Motivation & Problem
In #633, active table/view/database selection was synchronized to the connections sidebar tree (
_ConnectionsTreeSelectionScope) with fluid animated selection styling (_PgTreeRow) across PostgreSQL, MySQL, SQLite, Redis, and MongoDB.However, extension drivers (e.g. ClickHouse) render their schema hierarchy using
SduiTreeBuilderinconnections_panel_extension.dart. Currently,SduiTreeBuilderdoes not receive or support an active selection identifier (selectedNodeIdorselectedObject), which means selecting a table or view in an extension connection does not highlight the active node in the sidebar tree.Proposed Scope
SduiTreeBuilder:selectedNodeId(or active selection predicate) parameter._ConnectionsTreeSelectionScopevia_ExtensionConnectionTile._PgTreeRowselection state.connections_panel_extension.dart:_ConnectionsTreeSelectionScopetoSduiTreeBuilder.Acceptance Criteria
120msanimation, primary background tint, subtle border).SduiTreeBuilderactive node highlighting.