Pārlūkot izejas kodu

Catch exception that is thrown when Grid is scrolled during operation

IllegalStateException may occur if user has scrolled Grid so that Escalator has updated, and row under Editor is no longer there
Fixes https://github.com/vaadin/framework/issues/11463
fix11463
Tatu Lund pirms 5 gadiem
vecāks
revīzija
cab1029796
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam

+ 13
- 7
client/src/main/java/com/vaadin/client/widgets/Grid.java Parādīt failu

@@ -2140,15 +2140,21 @@ public class Grid<T> extends ResizeComposite implements HasSelectionHandlers<T>,
double newLeft = frozenWidth - scrollLeft;
cellWrapper.getStyle().setLeft(newLeft, Unit.PX);

// sometimes focus handling twists the editor row out of alignment
// with the grid itself and the position needs to be compensated for
TableRowElement rowElement = grid.getEscalator().getBody()
try {
// sometimes focus handling twists the editor row out of alignment
// with the grid itself and the position needs to be compensated for
TableRowElement rowElement = grid.getEscalator().getBody()
.getRowElement(grid.getEditor().getRow());
int rowLeft = rowElement.getAbsoluteLeft();
int editorLeft = cellWrapper.getAbsoluteLeft();
if (editorLeft != rowLeft + frozenWidth) {
cellWrapper.getStyle().setLeft(newLeft + rowLeft - editorLeft,
int rowLeft = rowElement.getAbsoluteLeft();
int editorLeft = cellWrapper.getAbsoluteLeft();
if (editorLeft != rowLeft + frozenWidth) {
cellWrapper.getStyle().setLeft(newLeft + rowLeft - editorLeft,
Unit.PX);
}
} catch (IllegalStateException e) {
// IllegalStateException may occur if user has scrolled Grid so
// that Escalator has updated, and row under Editor is no longer
// there
}
}


Notiek ielāde…
Atcelt
Saglabāt