Example usage for com.google.gwt.event.dom.client DragDropEventBase isSupported

List of usage examples for com.google.gwt.event.dom.client DragDropEventBase isSupported

Introduction

In this page you can find the example usage for com.google.gwt.event.dom.client DragDropEventBase isSupported.

Prototype

public static boolean isSupported() 

Source Link

Document

Runtime check for whether drag events are supported in this browser.

Usage

From source file:com.google.gwt.sample.mobilewebapp.client.desktop.DesktopTaskEditView.java

License:Apache License

/**
 * Construct a new {@link DesktopTaskEditView}.
 *///from ww w  .j  a  va 2 s  . c  om
public DesktopTaskEditView() {
    // Initialize the styles.
    resources = GWT.create(Resources.class);
    resources.style().ensureInjected();

    // Create the template list.
    templateList = createTaskTemplateList();

    initWidget(uiBinder.createAndBindUi(this));
    nameEditor = EditorDecorator.create(nameField.asEditor(), nameViolation);
    driver.initialize(this);

    // Hide the template list if it isn't supported.
    if (!DragDropEventBase.isSupported()) {
        dockLayoutPanel.setWidgetSize(templateListContainer, 0);
    }

    // Create a new task or modify the current task when done is pressed.
    saveButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            if (presenter != null) {
                presenter.saveTask();
            }
        }
    });

    // Delete the current task or cancel when delete is pressed.
    deleteButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            if (presenter != null) {
                presenter.deleteTask();
            }
        }
    });

    // Add the form as a drop target.
    editForm.addDomHandler(new DragOverHandler() {
        public void onDragOver(DragOverEvent event) {
            // Highlight the name and notes box.
            nameField.getElement().getStyle().setBackgroundColor("#ffa");
            notesEditor.getElement().getStyle().setBackgroundColor("#ffa");
        }
    }, DragOverEvent.getType());
    editForm.addDomHandler(new DragLeaveHandler() {
        public void onDragLeave(DragLeaveEvent event) {
            EventTarget eventTarget = event.getNativeEvent().getEventTarget();
            if (!Element.is(eventTarget)) {
                return;
            }
            Element target = Element.as(eventTarget);

            if (target == editForm.getElement()) {
                // Un-highlight the name and notes box.
                nameField.getElement().getStyle().clearBackgroundColor();
                notesEditor.getElement().getStyle().clearBackgroundColor();
            }
        }
    }, DragLeaveEvent.getType());
    editForm.addDomHandler(new DropHandler() {
        public void onDrop(DropEvent event) {
            // Prevent the default text drop.
            event.preventDefault();

            // Un-highlight the name and notes box.
            nameField.getElement().getStyle().clearBackgroundColor();
            notesEditor.getElement().getStyle().clearBackgroundColor();

            // Fill in the form.
            try {
                // Get the template the from the data transfer object.
                DataTransfer dataTransfer = event.getNativeEvent().getDataTransfer();
                int templateIndex = Integer.parseInt(dataTransfer.getData("text"));
                TaskProxy template = templateList.getVisibleItem(templateIndex);
                nameField.setValue(template.getName());
                notesEditor.setValue(template.getNotes());
            } catch (NumberFormatException e) {
                // The user probably dragged something other than a template.
            }
        }
    }, DropEvent.getType());
}