Change-Id: Ib2b9ecc995ec6fe2627c545efc2a312a59df6b9ctags/7.5.0.alpha1
@@ -6182,6 +6182,23 @@ public class Grid<T> extends ResizeComposite implements | |||
} | |||
} | |||
@Override | |||
public void onResize() { | |||
super.onResize(); | |||
/* | |||
* Delay calculation to be deferred so Escalator can do it's magic. | |||
*/ | |||
Scheduler.get().scheduleDeferred(new ScheduledCommand() { | |||
@Override | |||
public void execute() { | |||
if (!autoColumnWidthsRecalculator.isScheduled()) { | |||
autoColumnWidthsRecalculator.schedule(); | |||
} | |||
} | |||
}); | |||
} | |||
/** | |||
* Grid does not support adding Widgets this way. | |||
* <p> |
@@ -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 com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.Button; | |||
import com.vaadin.ui.Button.ClickEvent; | |||
import com.vaadin.ui.Grid; | |||
public class GridWidthIncrease extends AbstractTestUI { | |||
public static int COLUMN_COUNT = 5; | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
final Grid grid = new Grid(); | |||
Object[] rowData = new String[COLUMN_COUNT]; | |||
for (int i = 0; i < COLUMN_COUNT; ++i) { | |||
grid.addColumn("Column " + i, String.class); | |||
rowData[i] = "Foo (0, " + i + ")"; | |||
} | |||
grid.addRow(rowData); | |||
grid.setWidth(400 + "px"); | |||
addComponent(grid); | |||
addComponent(new Button("Increase Grid Width", | |||
new Button.ClickListener() { | |||
@Override | |||
public void buttonClick(ClickEvent event) { | |||
grid.setWidth((grid.getWidth() + 50) + "px"); | |||
} | |||
})); | |||
} | |||
} |
@@ -0,0 +1,56 @@ | |||
/* | |||
* 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 static org.junit.Assert.assertEquals; | |||
import static org.junit.Assert.assertTrue; | |||
import org.junit.Test; | |||
import com.vaadin.testbench.elements.ButtonElement; | |||
import com.vaadin.testbench.elements.GridElement; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
public class GridWidthIncreaseTest extends MultiBrowserTest { | |||
private static int INCREASE_COUNT = 3; | |||
@Test | |||
public void testColumnsExpandWithGrid() { | |||
openTestURL(); | |||
GridElement grid = $(GridElement.class).first(); | |||
int[] widths = new int[GridWidthIncrease.COLUMN_COUNT]; | |||
for (int i = 0; i < INCREASE_COUNT; ++i) { | |||
int totalWidth = 0; | |||
$(ButtonElement.class).first().click(); | |||
for (int c = 0; c < GridWidthIncrease.COLUMN_COUNT; ++c) { | |||
int width = grid.getCell(0, c).getSize().getWidth(); | |||
totalWidth += width; | |||
widths[c] = width; | |||
if (c > 0) { | |||
// check that columns are roughly the same width. | |||
assertEquals("Difference in column widths", widths[c], | |||
widths[c - 1], 1.0d); | |||
} | |||
} | |||
// Column widths should be the same as table wrapper size | |||
assertTrue(totalWidth == grid.getTableWrapper().getSize() | |||
.getWidth()); | |||
} | |||
} | |||
} |