Search code examples
javaeclipse-rcpnattable

Freeze position is changing after hiding the freeze row - NatTable


I am using freeze, hide and showall on NatTable. When I perform freeze on any row, lets suppose 3rd row and hide that row, then the freeze indicator gets shifted to the previous row i.e 2nd row. And when I do showAll rows then the freeze indicator remains below the 2nd row. If I repeat the hiding of the freezed row and perform show all, at a point the freeze indicator will be above 1st row and then it disappears after repeating it once more.

Freeze performed on 3rd row

Hiding the 3rd row

Performing show all rows

Is it expected behaviour or an issue? If it is an issue, how to resolve it?


Solution

  • The freeze state is based on positions. If you hide a row on the freeze border it is not possible to identify if the row that gets visible again was part of the frozen area or the non-frozen area. Currently the implementation interpretes that case as the new visible column belongs to the non-frozen area. This decision was made IIRC because typically the frozen area is non modifiable, means a user should not hide rows or columns interactively in a frozen area. At least for projects I worked in. That is of course discussable, but that is how it is right now. So if you need to support a fixed freeze border and allow hiding in the frozen area, you probably need to ensure via an event listener that on structural changes the freeze border stays at its fixed position.