| Index: third_party/WebKit/Source/devtools/front_end/ui/DropTarget.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/ui/DropTarget.js b/third_party/WebKit/Source/devtools/front_end/ui/DropTarget.js
|
| index 5d113037138aa4fd25cf9bd97bd236d98e8e6e53..c6b914dff1551d9e8abef5f57385094654920088 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/ui/DropTarget.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/ui/DropTarget.js
|
| @@ -1,102 +1,95 @@
|
| // Copyright (c) 2015 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
| -
|
| /**
|
| - * @constructor
|
| - * @param {!Element} element
|
| - * @param {!Array.<string>} transferTypes
|
| - * @param {string} messageText
|
| - * @param {function(!DataTransfer)} handleDrop
|
| + * @unrestricted
|
| */
|
| -WebInspector.DropTarget = function(element, transferTypes, messageText, handleDrop)
|
| -{
|
| - element.addEventListener("dragenter", this._onDragEnter.bind(this), true);
|
| - element.addEventListener("dragover", this._onDragOver.bind(this), true);
|
| +WebInspector.DropTarget = class {
|
| + /**
|
| + * @param {!Element} element
|
| + * @param {!Array.<string>} transferTypes
|
| + * @param {string} messageText
|
| + * @param {function(!DataTransfer)} handleDrop
|
| + */
|
| + constructor(element, transferTypes, messageText, handleDrop) {
|
| + element.addEventListener('dragenter', this._onDragEnter.bind(this), true);
|
| + element.addEventListener('dragover', this._onDragOver.bind(this), true);
|
| this._element = element;
|
| this._transferTypes = transferTypes;
|
| this._messageText = messageText;
|
| this._handleDrop = handleDrop;
|
| this._enabled = true;
|
| -};
|
| + }
|
|
|
| -WebInspector.DropTarget.Types = {
|
| - Files: "Files",
|
| - URIList: "text/uri-list"
|
| -};
|
| + /**
|
| + * @param {boolean} enabled
|
| + */
|
| + setEnabled(enabled) {
|
| + this._enabled = enabled;
|
| + }
|
|
|
| -WebInspector.DropTarget.prototype = {
|
| - /**
|
| - * @param {boolean} enabled
|
| - */
|
| - setEnabled: function(enabled)
|
| - {
|
| - this._enabled = enabled;
|
| - },
|
| + /**
|
| + * @param {!Event} event
|
| + */
|
| + _onDragEnter(event) {
|
| + if (this._enabled && this._hasMatchingType(event))
|
| + event.consume(true);
|
| + }
|
|
|
| - /**
|
| - * @param {!Event} event
|
| - */
|
| - _onDragEnter: function(event)
|
| - {
|
| - if (this._enabled && this._hasMatchingType(event))
|
| - event.consume(true);
|
| - },
|
| + /**
|
| + * @param {!Event} event
|
| + * @return {boolean}
|
| + */
|
| + _hasMatchingType(event) {
|
| + for (var type of this._transferTypes) {
|
| + if (event.dataTransfer.types.indexOf(type) !== -1)
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
|
|
| - /**
|
| - * @param {!Event} event
|
| - * @return {boolean}
|
| - */
|
| - _hasMatchingType: function(event)
|
| - {
|
| - for (var type of this._transferTypes) {
|
| - if (event.dataTransfer.types.indexOf(type) !== -1)
|
| - return true;
|
| - }
|
| - return false;
|
| - },
|
| + /**
|
| + * @param {!Event} event
|
| + */
|
| + _onDragOver(event) {
|
| + if (!this._enabled || !this._hasMatchingType(event))
|
| + return;
|
| + event.dataTransfer.dropEffect = 'copy';
|
| + event.consume(true);
|
| + if (this._dragMaskElement)
|
| + return;
|
| + this._dragMaskElement = this._element.createChild('div', '');
|
| + var shadowRoot = WebInspector.createShadowRootWithCoreStyles(this._dragMaskElement, 'ui/dropTarget.css');
|
| + shadowRoot.createChild('div', 'drop-target-message').textContent = this._messageText;
|
| + this._dragMaskElement.addEventListener('drop', this._onDrop.bind(this), true);
|
| + this._dragMaskElement.addEventListener('dragleave', this._onDragLeave.bind(this), true);
|
| + }
|
|
|
| - /**
|
| - * @param {!Event} event
|
| - */
|
| - _onDragOver: function(event)
|
| - {
|
| - if (!this._enabled || !this._hasMatchingType(event))
|
| - return;
|
| - event.dataTransfer.dropEffect = "copy";
|
| - event.consume(true);
|
| - if (this._dragMaskElement)
|
| - return;
|
| - this._dragMaskElement = this._element.createChild("div", "");
|
| - var shadowRoot = WebInspector.createShadowRootWithCoreStyles(this._dragMaskElement, "ui/dropTarget.css");
|
| - shadowRoot.createChild("div", "drop-target-message").textContent = this._messageText;
|
| - this._dragMaskElement.addEventListener("drop", this._onDrop.bind(this), true);
|
| - this._dragMaskElement.addEventListener("dragleave", this._onDragLeave.bind(this), true);
|
| - },
|
| + /**
|
| + * @param {!Event} event
|
| + */
|
| + _onDrop(event) {
|
| + event.consume(true);
|
| + this._removeMask();
|
| + if (this._enabled)
|
| + this._handleDrop(event.dataTransfer);
|
| + }
|
|
|
| - /**
|
| - * @param {!Event} event
|
| - */
|
| - _onDrop: function(event)
|
| - {
|
| - event.consume(true);
|
| - this._removeMask();
|
| - if (this._enabled)
|
| - this._handleDrop(event.dataTransfer);
|
| - },
|
| + /**
|
| + * @param {!Event} event
|
| + */
|
| + _onDragLeave(event) {
|
| + event.consume(true);
|
| + this._removeMask();
|
| + }
|
|
|
| - /**
|
| - * @param {!Event} event
|
| - */
|
| - _onDragLeave: function(event)
|
| - {
|
| - event.consume(true);
|
| - this._removeMask();
|
| - },
|
| + _removeMask() {
|
| + this._dragMaskElement.remove();
|
| + delete this._dragMaskElement;
|
| + }
|
| +};
|
|
|
| - _removeMask: function()
|
| - {
|
| - this._dragMaskElement.remove();
|
| - delete this._dragMaskElement;
|
| - }
|
| +WebInspector.DropTarget.Types = {
|
| + Files: 'Files',
|
| + URIList: 'text/uri-list'
|
| };
|
|
|