Browse Source

Improvements to updating spacer indexes. (#11353)

* Improvements to updating spacer indexes.

- When details rows are moved down, indexes need to be updated from
bottom up.

Fixes #11352
tags/8.7.0.alpha1
Anna Koskinen 5 years ago
parent
commit
eba7803962
1 changed files with 13 additions and 4 deletions
  1. 13
    4
      client/src/main/java/com/vaadin/client/widgets/Escalator.java

+ 13
- 4
client/src/main/java/com/vaadin/client/widgets/Escalator.java View File

@@ -5606,10 +5606,19 @@ public class Escalator extends Widget
*/
public void shiftSpacersByRows(int index, int numberOfRows) {
final double pxDiff = numberOfRows * body.getDefaultRowHeight();
for (SpacerContainer.SpacerImpl spacer : getSpacersForRowAndAfter(
index)) {
spacer.setPositionDiff(0, pxDiff);
spacer.setRowIndex(spacer.getRow() + numberOfRows);
List<SpacerContainer.SpacerImpl> spacers = new ArrayList<>(
getSpacersForRowAndAfter(index));
if (numberOfRows < 0) {
for (SpacerContainer.SpacerImpl spacer : spacers) {
spacer.setPositionDiff(0, pxDiff);
spacer.setRowIndex(spacer.getRow() + numberOfRows);
}
} else {
for (int i = spacers.size() - 1; i >= 0; --i) {
SpacerContainer.SpacerImpl spacer = spacers.get(i);
spacer.setPositionDiff(0, pxDiff);
spacer.setRowIndex(spacer.getRow() + numberOfRows);
}
}
}


Loading…
Cancel
Save