}
private void setHeightToHeaderCellHeight() {
- try {
- double height = WidgetUtil
- .getRequiredHeightBoundingClientRectDouble(grid.escalator
- .getHeader().getRowElement(0)
- .getFirstChildElement())
- - (WidgetUtil.measureVerticalBorder(getElement()) / 2);
- openCloseButton.setHeight(height + "px");
- } catch (NullPointerException npe) {
- getLogger()
- .warning(
- "Got null header first row or first row cell when calculating sidebar button height");
- openCloseButton.setHeight(grid.escalator.getHeader()
- .getDefaultRowHeight() + "px");
- } catch (IndexOutOfBoundsException ioobe) {
- // happens when escalator doesn't have any headers rendered yet.
+ RowContainer header = grid.escalator.getHeader();
+ if (header.getRowCount() == 0
+ || !header.getRowElement(0).hasChildNodes()) {
getLogger()
- .warning(
- "No header cell available when calculating sidebar button height");
- openCloseButton.setHeight(grid.escalator.getHeader()
- .getDefaultRowHeight() + "px");
+ .info("No header cell available when calculating sidebar button height");
+ openCloseButton.setHeight(header.getDefaultRowHeight() + "px");
+
+ return;
}
+
+ Element firstHeaderCell = header.getRowElement(0)
+ .getFirstChildElement();
+ double height = WidgetUtil
+ .getRequiredHeightBoundingClientRectDouble(firstHeaderCell)
+ - (WidgetUtil.measureVerticalBorder(getElement()) / 2);
+ openCloseButton.setHeight(height + "px");
}
private void updateVisibility() {
.getDetails(1));
}
+ @Test
+ public void testHideShowAllColumns() {
+ selectMenuPath("Component", "State", "Width", "1000px");
+ int colCount = 12;
+ for (int i = 0; i < colCount; i++) {
+ toggleHidableColumnAPI(i);
+ }
+ clickSidebarOpenButton();
+ for (int i = 0; i < colCount; i++) {
+ getColumnHidingToggle(i).click();
+ }
+
+ clickSidebarOpenButton();
+ // All columns hidden
+ assertEquals(0, getGridHeaderRowCells().size());
+ clickSidebarOpenButton();
+ for (int i = 0; i < colCount; i++) {
+ getColumnHidingToggle(i).click();
+ }
+
+ assertEquals(colCount, getGridHeaderRowCells().size());
+
+ }
+
private void loadSpannedCellsFixture() {
selectMenuPath("Component", "State", "Width", "1000px");
appendHeaderRow();