Browse Source

Render null header caption as empty (#18553)

Change-Id: Iaeba81c7e40d4be5f16e74fa8bcf8c86c53a7d3d
tags/7.6.0.beta2
Artur Signell 8 years ago
parent
commit
ffb28784b7

+ 1
- 3
client/src/com/vaadin/client/widgets/Grid.java View File

@@ -4650,12 +4650,10 @@ public class Grid<T> extends ResizeComposite implements
* The header caption for this column
* @return the column itself
*
* @throws IllegalArgumentException
* if given caption text is null
*/
public Column<C, T> setHeaderCaption(String caption) {
if (caption == null) {
throw new IllegalArgumentException("Caption cannot be null.");
caption = "";
}

if (!this.headerCaption.equals(caption)) {

+ 3
- 1
server/src/com/vaadin/ui/Grid.java View File

@@ -3250,7 +3250,9 @@ public class Grid extends AbstractFocusable implements SelectionNotifier,
public Column setHeaderCaption(String caption)
throws IllegalStateException {
checkColumnIsAttached();

if (caption == null) {
caption = ""; // Render null as empty
}
state.headerCaption = caption;

HeaderRow row = grid.getHeader().getDefaultRow();

+ 40
- 0
uitest/src/com/vaadin/tests/components/grid/NullHeaders.java View File

@@ -0,0 +1,40 @@
/*
* Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.vaadin.tests.components.grid;

import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUIWithLog;
import com.vaadin.ui.Grid;

public class NullHeaders extends AbstractTestUIWithLog {

@Override
protected void setup(VaadinRequest request) {
final Grid grid = new Grid();
grid.addColumn("country", String.class);
grid.addColumn("foo", String.class);
grid.addColumn("bar", Integer.class);

grid.getColumn("country").setHeaderCaption(null);
grid.getColumn("foo").setHeaderCaption("");
grid.getColumn("bar").setHeaderCaption(null);
grid.addRow("Finland", "foo", 1);
grid.addRow("Swaziland", "bar", 2);
grid.addRow("Japan", "baz", 3);
addComponent(grid);
}

}

+ 48
- 0
uitest/src/com/vaadin/tests/components/grid/NullHeadersTest.java View File

@@ -0,0 +1,48 @@
/*
* Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.vaadin.tests.components.grid;

import org.junit.Assert;
import org.junit.Test;

import com.vaadin.testbench.elements.GridElement;
import com.vaadin.tests.tb3.SingleBrowserTest;

public class NullHeadersTest extends SingleBrowserTest {

@Test
public void gridWithNullHeadersShouldBeRendered() {
openTestURL();

GridElement grid = $(GridElement.class).first();

Assert.assertEquals(1, grid.getHeaderCount());
Assert.assertEquals(3, grid.getHeaderCells(0).size());
for (int i = 0; i < 3; i++) {
Assert.assertEquals("", grid.getHeaderCell(0, 0).getText());
}
assertRow(grid, 0, "Finland", "foo", "1");
assertRow(grid, 1, "Swaziland", "bar", "2");
assertRow(grid, 2, "Japan", "baz", "3");
}

private void assertRow(GridElement grid, int row, String... contents) {
for (int col = 0; col < contents.length; col++) {
Assert.assertEquals(contents[col], grid.getCell(row, col).getText());
}

}
}

Loading…
Cancel
Save