Преглед на файлове

Disable and restore editor and scroll locking on setEnabled (#16502)

Change-Id: I26b612f5a412c4e056d02799ab8f83429ab46cac
tags/7.4.0.beta3
Teemu Suo-Anttila преди 9 години
родител
ревизия
a6cb362fa4

+ 18
- 4
client/src/com/vaadin/client/widgets/Grid.java Целия файл

@@ -1000,7 +1000,7 @@ public class Grid<T> extends ResizeComposite implements

private void cleanup() {
state = State.ACTIVE;
enableButtons(true);
setButtonsEnabled(true);
saveTimeout.cancel();
}
};
@@ -1126,7 +1126,7 @@ public class Grid<T> extends ResizeComposite implements
}

state = State.SAVING;
enableButtons(false);
setButtonsEnabled(false);
saveTimeout.schedule(SAVE_TIMEOUT_MS);
EditorRequest<T> request = new EditorRequest<T>(grid, rowIndex,
saveRequestCallback);
@@ -1372,7 +1372,13 @@ public class Grid<T> extends ResizeComposite implements
editorOverlay.getStyle().setLeft(-grid.getScrollLeft(), Unit.PX);
}

private void enableButtons(boolean enabled) {
protected void setGridEnabled(boolean enabled) {
// TODO: This should be informed to handler as well so possible
// fields can be disabled.
setButtonsEnabled(enabled);
}

private void setButtonsEnabled(boolean enabled) {
saveButton.setEnabled(enabled);
cancelButton.setEnabled(enabled);
}
@@ -3542,7 +3548,15 @@ public class Grid<T> extends ResizeComposite implements

this.enabled = enabled;
getElement().setTabIndex(enabled ? 0 : -1);
getEscalator().setScrollLocked(Direction.VERTICAL, !enabled);

// Editor save and cancel buttons need to be disabled.
boolean editorOpen = editor.getState() != State.INACTIVE;
if (editorOpen) {
editor.setGridEnabled(enabled);
}

getEscalator().setScrollLocked(Direction.VERTICAL,
!enabled || editorOpen);
getEscalator().setScrollLocked(Direction.HORIZONTAL, !enabled);
}


+ 24
- 0
uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridEditorTest.java Целия файл

@@ -232,4 +232,28 @@ public class GridEditorTest extends GridBasicFeaturesTest {
assertEquals("Grid shouldn't scroll vertically while editing",
originalScrollPos, getGridVerticalScrollPos());
}

@Test
public void testEditorInDisabledGrid() {
int originalScrollPos = getGridVerticalScrollPos();

selectMenuPath(EDIT_ITEM_5);
assertEditorOpen();

selectMenuPath("Component", "State", "Enabled");
assertEditorOpen();

GridEditorElement editor = getGridElement().getEditor();
editor.save();
assertEditorOpen();

editor.cancel();
assertEditorOpen();

selectMenuPath("Component", "State", "Enabled");

scrollGridVerticallyTo(100);
assertEquals("Grid shouldn't scroll vertically while editing",
originalScrollPos, getGridVerticalScrollPos());
}
}

Loading…
Отказ
Запис