aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/main/java/com/vaadin/tests/components/draganddropwrapper/Html5DropDenied.java
blob: 39eecdc70e41b126298a8afac01630737cc04934 (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
66
67
68
69
70
71
package com.vaadin.tests.components.draganddropwrapper;

import com.vaadin.event.dd.DragAndDropEvent;
import com.vaadin.event.dd.DropHandler;
import com.vaadin.event.dd.acceptcriteria.AcceptAll;
import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
import com.vaadin.event.dd.acceptcriteria.ClientSideCriterion;
import com.vaadin.event.dd.acceptcriteria.Not;
import com.vaadin.server.ThemeResource;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUIWithLog;
import com.vaadin.ui.Button;
import com.vaadin.ui.DragAndDropWrapper;
import com.vaadin.ui.DragAndDropWrapper.DragStartMode;
import com.vaadin.ui.Image;

public class Html5DropDenied extends AbstractTestUIWithLog {

    @Override
    protected void setup(VaadinRequest request) {
        Image sample = new Image();
        sample.setSource(new ThemeResource("../runo/icons/64/document.png"));

        Button neverButton = new Button("Never accepts drop");
        neverButton.setId("never");
        neverButton.addClickListener(
                event -> log("click on " + event.getButton().getCaption()));

        DragAndDropWrapper neverAccept = new DragAndDropWrapper(neverButton);
        neverAccept.setSizeFull();
        neverAccept.setDragStartMode(DragStartMode.NONE);
        neverAccept.setDropHandler(new DropHandler() {

            @Override
            public AcceptCriterion getAcceptCriterion() {
                return new Not((ClientSideCriterion) AcceptAll.get());
            }

            @Override
            public void drop(DragAndDropEvent event) {
                log("This should never happen");
            }
        });
        Button alwaysButton = new Button("always accepts drop");
        alwaysButton.setId("always");
        alwaysButton.addClickListener(
                event -> log("click on " + event.getButton().getCaption()));

        DragAndDropWrapper alwaysAccept = new DragAndDropWrapper(alwaysButton);
        alwaysAccept.setSizeFull();
        alwaysAccept.setDragStartMode(DragStartMode.NONE);
        alwaysAccept.setDropHandler(new DropHandler() {

            @Override
            public AcceptCriterion getAcceptCriterion() {
                return AcceptAll.get();
            }

            @Override
            public void drop(DragAndDropEvent event) {
                log("Drop on always accept");
            }
        });

        addComponent(sample);
        addComponent(neverAccept);
        addComponent(alwaysAccept);

    }

}