aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/main/java/com/vaadin/tests/components/upload/DisablingUpload.java
blob: 8b884942316ab309792631cb326ae02b3abb1e91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.vaadin.tests.components.upload;

import java.io.ByteArrayOutputStream;
import java.io.OutputStream;

import com.vaadin.annotations.Push;
import com.vaadin.server.VaadinRequest;
import com.vaadin.shared.communication.PushMode;
import com.vaadin.tests.components.AbstractTestUIWithLog;
import com.vaadin.ui.Button;
import com.vaadin.ui.UI;
import com.vaadin.ui.Upload;

@Push
public class DisablingUpload extends AbstractTestUIWithLog {

    @Override
    protected void setup(VaadinRequest request) {
        Upload ul = new Upload(
                "Uploading anything will disable the Upload on SucceededListener",
                new Upload.Receiver() {
                    @Override
                    public OutputStream receiveUpload(String s, String s1) {
                        return new ByteArrayOutputStream();
                    }
                });
        Button button = new Button("Disable upload from Button click", e -> {
            ul.setEnabled(!ul.isEnabled());
        });
        button.setId("button-id");

        ul.addSucceededListener(e -> {
            ul.setEnabled(false);
            log("File has been uploaded.");
        });

        ul.addStartedListener(e -> {
            log("File upload starts");
        });

        Button pushButton = new Button("Set the Push Mode");
        pushButton.setId("push-button");

        Button stateButton = new Button("" + ul.isEnabled());
        stateButton.setId("state-button");

        stateButton.addClickListener(event -> {
            stateButton.setCaption("" + ul.isEnabled());
        });
        pushButton.addClickListener(event -> {
            if (UI.getCurrent().getPushConfiguration().getPushMode()
                    .isEnabled()) {
                UI.getCurrent().getPushConfiguration()
                        .setPushMode(PushMode.DISABLED);
                pushButton.setCaption("enable push mode");
            } else {
                UI.getCurrent().getPushConfiguration()
                        .setPushMode(PushMode.AUTOMATIC);
                pushButton.setCaption("disable push mode");
            }
        });

        addComponents(ul, button, pushButton, stateButton);
    }
}