vaadin / vaadin/flow-components

[Grid] Extract Grid.Column to top-level GridColumn

Open
#9,701 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

refactor v26 vaadin-grid
Dominant language
Java
Stars
129
Forks
78
Avg merge
17h 42m
Merged PRs (30d)
196

Description

Describe your motivation

Column is a nested class that lives inside Grid and is approaching 800 lines, with the two classes totaling 5500 lines together. They also share some method names, so jumping between them is really hard. Extracting Grid.Column into a top-level GridColumn class would take a big chunk out of Grid and make both classes considerably easier to work with.

Describe alternatives you've considered

A slightly softer option that would also address the maintenance concern mentioned above is to move everything into a new package-private top-level Column class and make Grid.Column extend it. This would likely break binary compatibility for some methods like Column<T> setFlexGrow(int flexGrow), as their return type would erase to the new package-private class, but Grid.Column would stay in place, so the change would at least remain source-compatible.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the Grid class and its nested Grid.Column implementation, then map the shared methods and compatibility concerns described in the issue. The work is done when Grid.Column has been extracted to a top-level GridColumn class while the affected API behavior and compatibility implications are addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
frontend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.