LearnNewsExamplesServices
Frontmatter
id8979
titleRefactor Selection Models: Phase 2 (Cell & Column)
stateClosed
labels
enhancementairefactoring
assigneestobiu
createdAtFeb 4, 2026, 11:23 AM
updatedAtFeb 4, 2026, 11:37 AM
githubUrlhttps://github.com/neomjs/neo/issues/8979
authortobiu
commentsCount1
parentIssue8964
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtFeb 4, 2026, 11:37 AM

Refactor Selection Models: Phase 2 (Cell & Column)

Closed v12.0.0 enhancementairefactoring
tobiu
tobiu commented on Feb 4, 2026, 11:23 AM

Refactor Neo.selection.grid.CellModel and related classes to work with the new Neo.grid.Row component architecture.

Scope:

  1. Refactor CellModel.mjs:
    • Update selection logic to target Neo.grid.Row components instead of monolithic VDOM.
    • Ensure cell selection classes (neo-selected) are applied correctly to the specific cell VDOM node within the Row component.
    • Leverage getRowComponent helper from BaseModel.
  2. Verify/Update Subclasses:
    • CellRowModel.mjs
    • ColumnModel.mjs
    • CellColumnModel.mjs
    • CellColumnRowModel.mjs
  3. Ensure Consistency:
    • Make sure cell selection works visually and logically (state sync).
    • Verify click interactions.
tobiu added the enhancement label on Feb 4, 2026, 11:23 AM
tobiu added the ai label on Feb 4, 2026, 11:23 AM
tobiu added the refactoring label on Feb 4, 2026, 11:23 AM
tobiu added parent issue #8964 on Feb 4, 2026, 11:23 AM
tobiu referenced in commit 5b6985b - "refactor: Override select/deselect in Grid BaseModel to support component rows (#8979)" on Feb 4, 2026, 11:36 AM
tobiu
tobiu Feb 4, 2026, 11:37 AM

Input from Gemini 3 Pro:

✦ Refactored BaseModel to support generic select/deselect calls (used by Cell/Column models) with component-based rows.

  • Overridden select, deselect, and deselectAll.
  • These overrides set view.updateDepth = 2 before calling super.
  • This ensures that VDOM changes made by the base Model logic (which expands references) are correctly picked up during the update cycle, fixing cell selection rendering.
  • Code remains DRY and respects the inheritance chain.
tobiu assigned to @tobiu on Feb 4, 2026, 11:37 AM
tobiu closed this issue on Feb 4, 2026, 11:37 AM