From f72ac12fd257e218c370a4d686be4cc99c2a22d6 Mon Sep 17 00:00:00 2001 From: Pekka Hyvönen Date: Thu, 11 May 2017 14:36:27 +0300 Subject: Add mobile html5 dnd support using polyfill (#9282) First step of mobile DND support. - Add mobile html5 dnd support using polyfill - Adds a switch for enabling mobile html5 dnd support - Adds polyfill only when needed - Ignore native Android Chrome drag start because doesn't work properly (no dragend event fired) - Add documentation on enabling mobile HTML5 DnD support - Add mention of drag-drop-polyfill license - Fixed issue in polyfill when not using "snapback" - Add mention of forked polyfill Fixes #9174 --- .../main/java/com/vaadin/shared/ApplicationConstants.java | 9 ++++++++- .../main/java/com/vaadin/shared/ui/ui/PageClientRpc.java | 13 +++++++++++++ shared/src/main/java/com/vaadin/shared/ui/ui/UIState.java | 5 +++++ 3 files changed, 26 insertions(+), 1 deletion(-) (limited to 'shared') diff --git a/shared/src/main/java/com/vaadin/shared/ApplicationConstants.java b/shared/src/main/java/com/vaadin/shared/ApplicationConstants.java index bb6ec330f7..b3490a434c 100644 --- a/shared/src/main/java/com/vaadin/shared/ApplicationConstants.java +++ b/shared/src/main/java/com/vaadin/shared/ApplicationConstants.java @@ -150,7 +150,7 @@ public class ApplicationConstants implements Serializable { /** * Name of the parameter used to transmit the push connection identifier. - * + * * @since 8.0.6 */ public static final String PUSH_ID_PARAMETER = "v-pushId"; @@ -244,4 +244,11 @@ public class ApplicationConstants implements Serializable { public static final String FRONTEND_URL_ES5_DEFAULT_VALUE = VAADIN_PROTOCOL_PREFIX + "frontend/es5/"; + /** + * Name of the HTML5 DnD Polyfill JavaScript file. + * + * @since 8.1 + */ + public static final String MOBILE_DND_POLYFILL_JS = "drag-drop-polyfill.min.js"; + } diff --git a/shared/src/main/java/com/vaadin/shared/ui/ui/PageClientRpc.java b/shared/src/main/java/com/vaadin/shared/ui/ui/PageClientRpc.java index acbc41b2c8..15419831e5 100644 --- a/shared/src/main/java/com/vaadin/shared/ui/ui/PageClientRpc.java +++ b/shared/src/main/java/com/vaadin/shared/ui/ui/PageClientRpc.java @@ -18,8 +18,21 @@ package com.vaadin.shared.ui.ui; import com.vaadin.shared.communication.ClientRpc; +/** + * Client side rpc class for Page / UI. + * + * @author Vaadin Ltd + * @since 7.0 + */ public interface PageClientRpc extends ClientRpc { + /** + * Reloads the page. + */ public void reload(); + /** + * Initialize Mobile HTML5 Drag and Drop Polyfill. + */ + public void initializeMobileHtml5DndPolyfill(); } diff --git a/shared/src/main/java/com/vaadin/shared/ui/ui/UIState.java b/shared/src/main/java/com/vaadin/shared/ui/ui/UIState.java index c2c7b5c27a..b1d6be2def 100644 --- a/shared/src/main/java/com/vaadin/shared/ui/ui/UIState.java +++ b/shared/src/main/java/com/vaadin/shared/ui/ui/UIState.java @@ -86,6 +86,11 @@ public class UIState extends AbstractSingleComponentContainerState { tabIndex = 1; } + /** + * Enable Mobile HTML5 DnD support. + */ + public boolean enableMobileHTML5DnD = false; + public static class LoadingIndicatorConfigurationState implements Serializable { public int firstDelay = 300; -- cgit v1.2.3