Change-Id: Ibea81666101ff119e1b3e48726224f369e59b00ftags/7.1.15
// we have focus in field, prompting can't be set on, instead | // we have focus in field, prompting can't be set on, instead | ||||
// just clear the input if the value has changed from something | // just clear the input if the value has changed from something | ||||
// else to null | // else to null | ||||
if (getWidget().selectedOptionKey != null) { | |||||
if (getWidget().selectedOptionKey != null | |||||
|| (getWidget().allowNewItem && !getWidget().tb | |||||
.getValue().isEmpty())) { | |||||
getWidget().tb.setValue(""); | getWidget().tb.setValue(""); | ||||
} | } | ||||
} | } |
/* | |||||
* Copyright 2000-2013 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.combobox; | |||||
import com.vaadin.data.Property; | |||||
import com.vaadin.data.Property.ValueChangeEvent; | |||||
import com.vaadin.server.VaadinRequest; | |||||
import com.vaadin.tests.components.AbstractTestUI; | |||||
import com.vaadin.ui.ComboBox; | |||||
import com.vaadin.ui.Label; | |||||
public class ComboBoxSetNullWhenNewItemsAllowed extends AbstractTestUI { | |||||
@Override | |||||
protected void setup(VaadinRequest request) { | |||||
final ComboBox comboBox = new ComboBox("My ComboBox"); | |||||
comboBox.setImmediate(true); | |||||
comboBox.setNullSelectionAllowed(false); | |||||
comboBox.setNewItemsAllowed(true); | |||||
for (int i = 0; i < 10; i++) { | |||||
comboBox.addItem("Item " + i); | |||||
} | |||||
final Label value = new Label("Selected: "); | |||||
comboBox.addValueChangeListener(new Property.ValueChangeListener() { | |||||
@Override | |||||
public void valueChange(ValueChangeEvent event) { | |||||
if (comboBox.getValue() != null) { | |||||
comboBox.setValue(null); | |||||
value.setValue("Selected: " + (String) comboBox.getValue()); | |||||
} | |||||
} | |||||
}); | |||||
addComponent(comboBox); | |||||
addComponent(value); | |||||
} | |||||
@Override | |||||
protected String getTestDescription() { | |||||
return "ComboBox should clear its value when setting to null with new items."; | |||||
} | |||||
@Override | |||||
protected Integer getTicketNumber() { | |||||
return 13413; | |||||
} | |||||
} |
/* | |||||
* Copyright 2000-2013 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.combobox; | |||||
import static org.junit.Assert.assertEquals; | |||||
import org.junit.Test; | |||||
import org.openqa.selenium.Keys; | |||||
import org.openqa.selenium.WebElement; | |||||
import com.vaadin.testbench.By; | |||||
import com.vaadin.testbench.commands.TestBenchElementCommands; | |||||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||||
/** | |||||
* ComboBox should clear its value when setting to null with new items. | |||||
*/ | |||||
public class ComboBoxSetNullWhenNewItemsAllowedTest extends MultiBrowserTest { | |||||
@Test | |||||
public void testNewValueIsClearedAppropriately() | |||||
throws InterruptedException { | |||||
setDebug(true); | |||||
openTestURL(); | |||||
Thread.sleep(1000); | |||||
WebElement element = findElement(); | |||||
((TestBenchElementCommands) element).click(8, 7); | |||||
element.clear(); | |||||
element.sendKeys("New value"); | |||||
assertEquals("New value", element.getAttribute("value")); | |||||
element.sendKeys(Keys.RETURN); | |||||
assertEquals("", element.getAttribute("value")); | |||||
} | |||||
private WebElement findElement() { | |||||
return getDriver() | |||||
.findElement( | |||||
By.vaadin("runcomvaadintestscomponentscomboboxComboBoxSetNullWhenNewItemsAllowed::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VFilterSelect[0]#textbox")); | |||||
} | |||||
} |