diff options
4 files changed, 93 insertions, 2 deletions
diff --git a/client/src/com/vaadin/client/ui/VPopupView.java b/client/src/com/vaadin/client/ui/VPopupView.java index 626780efee..dba4c8b092 100644 --- a/client/src/com/vaadin/client/ui/VPopupView.java +++ b/client/src/com/vaadin/client/ui/VPopupView.java @@ -103,6 +103,8 @@ public class VPopupView extends HTML implements Iterable<Widget> { }); popup.setAnimationEnabled(true); + + popup.setAutoHideOnHistoryEventsEnabled(false); } /** For internal use only. May be removed or replaced in the future. */ diff --git a/client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java b/client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java index 345bdc0cbb..d9eac91e2b 100644 --- a/client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java +++ b/client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java @@ -252,8 +252,11 @@ public class ComboBoxConnector extends AbstractFieldConnector implements getWidget().setPromptingOn(); } else { // we have focus in field, prompting can't be set on, instead - // just clear the input - getWidget().tb.setValue(""); + // just clear the input if the value has changed from something + // else to null + if (getWidget().selectedOptionKey != null) { + getWidget().tb.setValue(""); + } } getWidget().setSelectedItemIcon(null); getWidget().selectedOptionKey = null; diff --git a/uitest/src/com/vaadin/tests/components/popupview/PopupViewAndFragment.html b/uitest/src/com/vaadin/tests/components/popupview/PopupViewAndFragment.html new file mode 100644 index 0000000000..28af578bac --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/popupview/PopupViewAndFragment.html @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="selenium.base" href="http://localhost:8888/" /> +<title>PopupViewAndFragment</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">PopupViewAndFragment</td></tr> +</thead><tbody> +<tr> + <td>open</td> + <td>/run/PopupViewAndFragment?restartApplication#</td> + <td></td> +</tr> +<tr> + <td>click</td> + <td>vaadin=runPopupViewAndFragment::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[1]/VButton[0]/domChild[0]/domChild[0]</td> + <td></td> +</tr> +<tr> + <td>screenCapture</td> + <td></td> + <td></td> +</tr> + +</tbody></table> +</body> +</html> diff --git a/uitest/src/com/vaadin/tests/components/popupview/PopupViewAndFragment.java b/uitest/src/com/vaadin/tests/components/popupview/PopupViewAndFragment.java new file mode 100644 index 0000000000..1606b78604 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/popupview/PopupViewAndFragment.java @@ -0,0 +1,54 @@ +/* + * 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.popupview; + +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.Label; +import com.vaadin.ui.PopupView; + +public class PopupViewAndFragment extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + final PopupView pw = new PopupView("Open", new Label("Oh, hi")); + addComponent(pw); + + final Button button = new Button("Open and change fragment", + new Button.ClickListener() { + @Override + public void buttonClick(final ClickEvent event) { + pw.setPopupVisible(true); + getPage().setUriFragment( + String.valueOf(System.currentTimeMillis())); + } + }); + addComponent(button); + } + + @Override + protected String getTestDescription() { + return "Changing frament should not automatically close PopupView"; + } + + @Override + protected Integer getTicketNumber() { + return 10530; + } + +} |