Explorar el Código

Set v-disabled on Button inside Upload when disabled. (#14655)

Change-Id: Ic28c8e4020eddae32a71b5c7f9da0ad61f2f7af9
tags/7.4.0.beta1
Sauli Tähkäpää hace 9 años
padre
commit
98a6367842

+ 8
- 2
client/src/com/vaadin/client/ui/VUpload.java Ver fichero

@@ -184,7 +184,7 @@ public class VUpload extends SimplePanel {

/** For internal use only. May be removed or replaced in the future. */
public void disableUpload() {
submitButton.setEnabled(false);
setEnabledForSubmitButton(false);
if (!submitted) {
// Cannot disable the fileupload while submitting or the file won't
// be submitted at all
@@ -195,7 +195,7 @@ public class VUpload extends SimplePanel {

/** For internal use only. May be removed or replaced in the future. */
public void enableUpload() {
submitButton.setEnabled(true);
setEnabledForSubmitButton(true);
fu.getElement().setPropertyBoolean("disabled", false);
enabled = true;
if (submitted) {
@@ -209,6 +209,12 @@ public class VUpload extends SimplePanel {
}
}

private void setEnabledForSubmitButton(boolean enabled) {
submitButton.setEnabled(enabled);
submitButton.setStyleName(ApplicationConnection.DISABLED_CLASSNAME,
!enabled);
}

/**
* Re-creates file input field and populates panel. This is needed as we
* want to clear existing values from our current file input field.

+ 41
- 0
uitest/src/com/vaadin/tests/components/upload/DisabledUploadButton.java Ver fichero

@@ -0,0 +1,41 @@
package com.vaadin.tests.components.upload;

import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.Button;
import com.vaadin.ui.Upload;

public class DisabledUploadButton extends AbstractTestUI {

@Override
protected void setup(VaadinRequest request) {
final Upload upload = new Upload();

addComponent(upload);

addButton("Set readonly", new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
upload.setReadOnly(true);
}
});

addButton("Set disabled", new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
upload.setEnabled(false);
}
});
}

@Override
public String getDescription() {
return "Upload button should be disabled when upload "
+ "is set to readonly and/or disabled";
}

@Override
protected Integer getTicketNumber() {
return 14655;
}
}

+ 55
- 0
uitest/src/com/vaadin/tests/components/upload/DisabledUploadButtonTest.java Ver fichero

@@ -0,0 +1,55 @@
package com.vaadin.tests.components.upload;

import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;

import org.junit.Test;
import org.openqa.selenium.WebElement;

import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.UploadElement;
import com.vaadin.tests.tb3.MultiBrowserTest;

public class DisabledUploadButtonTest extends MultiBrowserTest {

@Override
public void setup() throws Exception {
super.setup();
openTestURL();
}

private String getUploadButtonClass() {
WebElement uploadButton = getUploadButton();

return uploadButton.getAttribute("class");
}

private void clickButton(String caption) {
$(ButtonElement.class).caption(caption).first().click();
}

private WebElement getUploadButton() {
UploadElement upload = $(UploadElement.class).first();
return upload.findElement(By.className("v-button"));
}

@Test
public void buttonIsReadonly() {
assertThat(getUploadButtonClass(), not(containsString("v-disabled")));

clickButton("Set readonly");

assertThat(getUploadButtonClass(), containsString("v-disabled"));
}

@Test
public void buttonIsDisabled() {
assertThat(getUploadButtonClass(), not(containsString("v-disabled")));

clickButton("Set disabled");

assertThat(getUploadButtonClass(), containsString("v-disabled"));
}
}

Cargando…
Cancelar
Guardar