Change-Id: I970c771f647b7587aac3985ebeea0f0b20805fectags/7.5.0.beta2
@@ -3659,16 +3659,15 @@ public class VScrollTable extends FlowPanel implements HasWidgets, | |||
// Do a more thorough update if a column is resized from | |||
// the server *after* the header has been properly | |||
// initialized | |||
final int colIx = getColIndexByKey(c.cid); | |||
final int newWidth = width; | |||
Scheduler.get().scheduleDeferred( | |||
new ScheduledCommand() { | |||
Scheduler.get().scheduleFinally(new ScheduledCommand() { | |||
@Override | |||
public void execute() { | |||
setColWidth(colIx, newWidth, true); | |||
} | |||
}); | |||
@Override | |||
public void execute() { | |||
final int colIx = getColIndexByKey(cid); | |||
setColWidth(colIx, newWidth, true); | |||
} | |||
}); | |||
refreshContentWidths = true; | |||
} else { | |||
// get min width with no indent or padding | |||
@@ -3710,7 +3709,7 @@ public class VScrollTable extends FlowPanel implements HasWidgets, | |||
if (refreshContentWidths) { | |||
// Recalculate the column sizings if any column has changed | |||
Scheduler.get().scheduleDeferred(new ScheduledCommand() { | |||
Scheduler.get().scheduleFinally(new ScheduledCommand() { | |||
@Override | |||
public void execute() { |
@@ -0,0 +1,70 @@ | |||
/* | |||
* 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.table; | |||
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.Button.ClickListener; | |||
import com.vaadin.ui.Table; | |||
import com.vaadin.ui.VerticalLayout; | |||
public class TableColumnAddAndResize extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
String people[][] = { | |||
{ "Galileo", "Liked to go around the Sun" }, | |||
{ "Monnier", "Liked star charts" }, | |||
{ "VÀisÀlÀ", "Liked optics" }, | |||
{ "Oterma", "Liked comets" }, | |||
{ | |||
"Valtaoja", | |||
"Likes cosmology and still " | |||
+ "lives unlike the others above" }, }; | |||
VerticalLayout content = new VerticalLayout(); | |||
final Table table = new Table("Awesome Table"); | |||
table.setSizeFull(); | |||
table.addContainerProperty("Id1", String.class, "TestString"); | |||
table.addContainerProperty("Id2", String.class, "TestString2"); | |||
for (String[] p : people) { | |||
table.addItem(p); | |||
} | |||
table.setColumnWidth("Id1", 100); | |||
table.setColumnWidth("Id2", 100); | |||
table.setVisibleColumns("Id1"); | |||
content.addComponent(table); | |||
Button button = new Button("Add and Resize"); | |||
button.addClickListener(new ClickListener() { | |||
@Override | |||
public void buttonClick(ClickEvent event) { | |||
table.setVisibleColumns("Id1", "Id2"); | |||
table.setColumnWidth("Id2", 200); | |||
} | |||
}); | |||
content.addComponent(button); | |||
addComponent(content); | |||
} | |||
} |
@@ -0,0 +1,41 @@ | |||
/* | |||
* 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.table; | |||
import static org.junit.Assert.assertEquals; | |||
import static org.junit.Assert.assertFalse; | |||
import org.junit.Test; | |||
import com.vaadin.testbench.elements.ButtonElement; | |||
import com.vaadin.testbench.elements.NotificationElement; | |||
import com.vaadin.testbench.elements.TableElement; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
public class TableColumnAddAndResizeTest extends MultiBrowserTest { | |||
@Test | |||
public void testAddAndResizeColumn() { | |||
setDebug(true); | |||
openTestURL(); | |||
$(ButtonElement.class).caption("Add and Resize").first().click(); | |||
assertFalse("Error notification present.", $(NotificationElement.class) | |||
.exists()); | |||
assertEquals("Unexpected column width. ", 200, $(TableElement.class) | |||
.first().getCell(0, 1).getSize().getWidth()); | |||
} | |||
} |