Change-Id: Id9cc9d644772af923d3f5307ea4123df8666a489tags/7.4.0.beta1
@@ -312,6 +312,26 @@ public class VUpload extends SimplePanel { | |||
Scheduler.get().scheduleDeferred(startUploadCmd); | |||
} | |||
public void disableTitle(boolean disable) { | |||
if (disable) { | |||
// Disable title attribute for upload element. | |||
if (BrowserInfo.get().isChrome()) { | |||
// In Chrome title has to be set to " " to make it invisible | |||
fu.setTitle(" "); | |||
} else if (BrowserInfo.get().isFirefox()) { | |||
// In FF title has to be set to empty string to make it | |||
// invisible | |||
// Method setTitle removes title attribute when it's an empty | |||
// string, so setAttribute() should be used here | |||
fu.getElement().setAttribute("title", ""); | |||
} | |||
// For other browsers absent title doesn't show default tooltip for | |||
// input element | |||
} else { | |||
fu.setTitle(null); | |||
} | |||
} | |||
@Override | |||
protected void onAttach() { | |||
super.onAttach(); | |||
@@ -357,4 +377,5 @@ public class VUpload extends SimplePanel { | |||
synthesizedFrame = null; | |||
} | |||
} | |||
} |
@@ -21,6 +21,7 @@ import com.google.gwt.event.dom.client.ChangeHandler; | |||
import com.vaadin.client.ApplicationConnection; | |||
import com.vaadin.client.Paintable; | |||
import com.vaadin.client.UIDL; | |||
import com.vaadin.client.communication.StateChangeEvent; | |||
import com.vaadin.client.ui.AbstractComponentConnector; | |||
import com.vaadin.client.ui.VUpload; | |||
import com.vaadin.shared.EventId; | |||
@@ -91,6 +92,13 @@ public class UploadConnector extends AbstractComponentConnector implements | |||
} | |||
} | |||
@Override | |||
public void onStateChanged(StateChangeEvent stateChangeEvent) { | |||
super.onStateChanged(stateChangeEvent); | |||
getWidget().disableTitle(hasTooltip()); | |||
} | |||
@Override | |||
public VUpload getWidget() { | |||
return (VUpload) super.getWidget(); |
@@ -0,0 +1,47 @@ | |||
/* | |||
* 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.upload; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.Upload; | |||
/** | |||
* Test UI for browser-dependent tootlip for Upload component. | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class UploadTitleWithTooltip extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
Upload upload = new Upload(); | |||
upload.setDescription("tootlip"); | |||
addComponent(upload); | |||
} | |||
@Override | |||
protected String getTestDescription() { | |||
return "Browser dependent title should not be visible for upload if Vaadin tooltip is used"; | |||
} | |||
@Override | |||
protected Integer getTicketNumber() { | |||
return 14482; | |||
} | |||
} |
@@ -0,0 +1,54 @@ | |||
/* | |||
* 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.upload; | |||
import java.util.List; | |||
import org.junit.Assert; | |||
import org.junit.Test; | |||
import org.openqa.selenium.By; | |||
import org.openqa.selenium.WebElement; | |||
import com.vaadin.tests.tb3.TooltipTest; | |||
/** | |||
* Test for check visibility of browser-dependent tootlip for Upload component. | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class UploadTitleWithTooltipTest extends TooltipTest { | |||
@Test | |||
public void testDropdownTable() throws Exception { | |||
openTestURL(); | |||
List<WebElement> elements = findElements(By.tagName("input")); | |||
WebElement input = null; | |||
for (WebElement element : elements) { | |||
if ("file".equals(element.getAttribute("type"))) { | |||
input = element; | |||
} | |||
} | |||
Assert.assertNotNull("Input element with type 'file' is not found", | |||
input); | |||
checkTooltip(input, "tootlip"); | |||
compareScreen(getScreenshotBaseName()); | |||
} | |||
} |