Skip to content

Commit 8e7e32a

Browse files
authored
fix: update panes positions on Spreadsheet resize (#6964)
1 parent 315d799 commit 8e7e32a

File tree

3 files changed

+43
-0
lines changed
  • vaadin-spreadsheet-flow-parent
    • vaadin-spreadsheet-flow-client/src/main/java/com/vaadin/addon/spreadsheet/client
    • vaadin-spreadsheet-flow-integration-tests/src

3 files changed

+43
-0
lines changed

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow-client/src/main/java/com/vaadin/addon/spreadsheet/client/SheetWidget.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,7 @@ public void onWidgetResize() {
852852
// vaadin does bunch of layout phases so this needs to be done in
853853
// case the comment overlay position should be updated
854854
refreshAlwaysVisibleCellCommentOverlays();
855+
updateSheetPanePositions();
855856
}
856857
}
857858

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow-integration-tests/src/main/java/com/vaadin/flow/component/spreadsheet/tests/SizingPage.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public SizingPage() {
7373
e -> layout.setHeight(null))));
7474

7575
layoutList.add(new ListItem(new Span("Display: "),
76+
getButton("none", "layoutDisplayNone",
77+
e -> layout.getStyle().set("display", "none")),
7678
getButton("flex", "layoutDisplayFlex",
7779
e -> layout.getStyle().set("display", "flex")),
7880
getButton("Default (block)", "layoutDisplayDefault",
@@ -89,7 +91,27 @@ public SizingPage() {
8991

9092
add(layoutList);
9193

94+
add(new H2("Logs"));
95+
96+
var logList = new UnorderedList();
97+
var messageLog = new Span();
98+
messageLog.setId("messageLog");
99+
logList.add(new ListItem(new Span("Message: "), messageLog));
100+
101+
logList.add(new ListItem(new Span("Panel"),
102+
getButton("Panel position", "logPanelPosition", e -> {
103+
spreadsheet.getElement().executeJs(
104+
"return this.shadowRoot.querySelector('.bottom-right-pane').style.top")
105+
.then(message -> {
106+
var stringMessage = message.asString();
107+
messageLog.setText(stringMessage);
108+
});
109+
})));
110+
111+
add(logList);
112+
92113
add(layout);
114+
93115
}
94116

95117
private NativeButton getButton(String title, String id,

vaadin-spreadsheet-flow-parent/vaadin-spreadsheet-flow-integration-tests/src/test/java/com/vaadin/flow/component/spreadsheet/test/SizingIT.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,26 @@ public void toggleSpreadsheetAttached_noMissingRows() {
126126
waitUntil(e -> spreadsheet.getCellAt("A20") != null);
127127
}
128128

129+
@Test
130+
public void containerInitiallyHidden_containerIsShown_panelsPositionsAreCorrect() {
131+
// Detach spreadsheet
132+
findElement(By.id("spreadsheetAttachedToggle")).click();
133+
// Hide layout
134+
findElement(By.id("layoutDisplayNone")).click();
135+
// Attach spreadsheet
136+
findElement(By.id("spreadsheetAttachedToggle")).click();
137+
// Get reference to the new spreadsheet
138+
var spreadsheet = $(SpreadsheetElement.class).first();
139+
// Show layout
140+
findElement(By.id("layoutDisplayDefault")).click();
141+
142+
// Print panel position
143+
findElement(By.id("logPanelPosition")).click();
144+
145+
var messageLog = findElement(By.id("messageLog")).getText();
146+
Assert.assertNotEquals("0px", messageLog);
147+
}
148+
129149
private void assertSpreadsheetHeight(int height) {
130150
var internal = spreadsheet.$(DivElement.class).first();
131151
Assert.assertEquals(height, internal.getSize().getHeight());

0 commit comments

Comments
 (0)