Change-Id: Id38f48d84e9f55334af2e44b2dc49b1a3c7ef390tags/7.4.3
@@ -29,8 +29,8 @@ import com.google.gwt.user.client.Event; | |||
import com.google.gwt.user.client.ui.ComplexPanel; | |||
import com.google.gwt.user.client.ui.Widget; | |||
import com.vaadin.client.ComponentConnector; | |||
import com.vaadin.client.WidgetUtil; | |||
import com.vaadin.client.VCaption; | |||
import com.vaadin.client.WidgetUtil; | |||
import com.vaadin.client.ui.TouchScrollDelegate.TouchScrollHandler; | |||
import com.vaadin.shared.ComponentConstants; | |||
import com.vaadin.shared.ui.accordion.AccordionState; | |||
@@ -417,6 +417,9 @@ public class VAccordion extends VTabsheetBase { | |||
public void removeTab(int index) { | |||
StackItem item = getStackItem(index); | |||
remove(item); | |||
if (selectedItemIndex == index) { | |||
selectedItemIndex = -1; | |||
} | |||
touchScrollHandler.removeElement(item.getContainerElement()); | |||
} | |||
@@ -0,0 +1,55 @@ | |||
/* | |||
* 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.accordion; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.Accordion; | |||
import com.vaadin.ui.Button; | |||
import com.vaadin.ui.Button.ClickEvent; | |||
/** | |||
* Test for removing component from Accordion. | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class AccordionRemoveComponent extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
final Accordion accordion = new Accordion(); | |||
Button button = new Button("remove"); | |||
button.addClickListener(new Button.ClickListener() { | |||
@Override | |||
public void buttonClick(ClickEvent event) { | |||
accordion.removeComponent(event.getButton()); | |||
} | |||
}); | |||
accordion.addComponent(button); | |||
addComponent(accordion); | |||
} | |||
@Override | |||
protected String getTestDescription() { | |||
return "Reset selected index when tab is removed"; | |||
} | |||
@Override | |||
protected Integer getTicketNumber() { | |||
return 17248; | |||
} | |||
} |
@@ -0,0 +1,43 @@ | |||
/* | |||
* 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.accordion; | |||
import org.junit.Assert; | |||
import org.junit.Test; | |||
import org.openqa.selenium.By; | |||
import com.vaadin.testbench.elements.ButtonElement; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
/** | |||
* Test for removing component from Accordion | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class AccordionRemoveComponentTest extends MultiBrowserTest { | |||
@Test | |||
public void removeComponent_noClientSideException() { | |||
setDebug(true); | |||
openTestURL(); | |||
$(ButtonElement.class).first().click(); | |||
Assert.assertFalse( | |||
"Error notification with client side exception is shown", | |||
isElementPresent(By.className("v-Notification-error"))); | |||
} | |||
} |