Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/ui/DropTarget.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4
5 /** 4 /**
6 * @constructor 5 * @unrestricted
7 * @param {!Element} element
8 * @param {!Array.<string>} transferTypes
9 * @param {string} messageText
10 * @param {function(!DataTransfer)} handleDrop
11 */ 6 */
12 WebInspector.DropTarget = function(element, transferTypes, messageText, handleDr op) 7 WebInspector.DropTarget = class {
13 { 8 /**
14 element.addEventListener("dragenter", this._onDragEnter.bind(this), true); 9 * @param {!Element} element
15 element.addEventListener("dragover", this._onDragOver.bind(this), true); 10 * @param {!Array.<string>} transferTypes
11 * @param {string} messageText
12 * @param {function(!DataTransfer)} handleDrop
13 */
14 constructor(element, transferTypes, messageText, handleDrop) {
15 element.addEventListener('dragenter', this._onDragEnter.bind(this), true);
16 element.addEventListener('dragover', this._onDragOver.bind(this), true);
16 this._element = element; 17 this._element = element;
17 this._transferTypes = transferTypes; 18 this._transferTypes = transferTypes;
18 this._messageText = messageText; 19 this._messageText = messageText;
19 this._handleDrop = handleDrop; 20 this._handleDrop = handleDrop;
20 this._enabled = true; 21 this._enabled = true;
22 }
23
24 /**
25 * @param {boolean} enabled
26 */
27 setEnabled(enabled) {
28 this._enabled = enabled;
29 }
30
31 /**
32 * @param {!Event} event
33 */
34 _onDragEnter(event) {
35 if (this._enabled && this._hasMatchingType(event))
36 event.consume(true);
37 }
38
39 /**
40 * @param {!Event} event
41 * @return {boolean}
42 */
43 _hasMatchingType(event) {
44 for (var type of this._transferTypes) {
45 if (event.dataTransfer.types.indexOf(type) !== -1)
46 return true;
47 }
48 return false;
49 }
50
51 /**
52 * @param {!Event} event
53 */
54 _onDragOver(event) {
55 if (!this._enabled || !this._hasMatchingType(event))
56 return;
57 event.dataTransfer.dropEffect = 'copy';
58 event.consume(true);
59 if (this._dragMaskElement)
60 return;
61 this._dragMaskElement = this._element.createChild('div', '');
62 var shadowRoot = WebInspector.createShadowRootWithCoreStyles(this._dragMaskE lement, 'ui/dropTarget.css');
63 shadowRoot.createChild('div', 'drop-target-message').textContent = this._mes sageText;
64 this._dragMaskElement.addEventListener('drop', this._onDrop.bind(this), true );
65 this._dragMaskElement.addEventListener('dragleave', this._onDragLeave.bind(t his), true);
66 }
67
68 /**
69 * @param {!Event} event
70 */
71 _onDrop(event) {
72 event.consume(true);
73 this._removeMask();
74 if (this._enabled)
75 this._handleDrop(event.dataTransfer);
76 }
77
78 /**
79 * @param {!Event} event
80 */
81 _onDragLeave(event) {
82 event.consume(true);
83 this._removeMask();
84 }
85
86 _removeMask() {
87 this._dragMaskElement.remove();
88 delete this._dragMaskElement;
89 }
21 }; 90 };
22 91
23 WebInspector.DropTarget.Types = { 92 WebInspector.DropTarget.Types = {
24 Files: "Files", 93 Files: 'Files',
25 URIList: "text/uri-list" 94 URIList: 'text/uri-list'
26 }; 95 };
27
28 WebInspector.DropTarget.prototype = {
29 /**
30 * @param {boolean} enabled
31 */
32 setEnabled: function(enabled)
33 {
34 this._enabled = enabled;
35 },
36
37 /**
38 * @param {!Event} event
39 */
40 _onDragEnter: function(event)
41 {
42 if (this._enabled && this._hasMatchingType(event))
43 event.consume(true);
44 },
45
46 /**
47 * @param {!Event} event
48 * @return {boolean}
49 */
50 _hasMatchingType: function(event)
51 {
52 for (var type of this._transferTypes) {
53 if (event.dataTransfer.types.indexOf(type) !== -1)
54 return true;
55 }
56 return false;
57 },
58
59 /**
60 * @param {!Event} event
61 */
62 _onDragOver: function(event)
63 {
64 if (!this._enabled || !this._hasMatchingType(event))
65 return;
66 event.dataTransfer.dropEffect = "copy";
67 event.consume(true);
68 if (this._dragMaskElement)
69 return;
70 this._dragMaskElement = this._element.createChild("div", "");
71 var shadowRoot = WebInspector.createShadowRootWithCoreStyles(this._dragM askElement, "ui/dropTarget.css");
72 shadowRoot.createChild("div", "drop-target-message").textContent = this. _messageText;
73 this._dragMaskElement.addEventListener("drop", this._onDrop.bind(this), true);
74 this._dragMaskElement.addEventListener("dragleave", this._onDragLeave.bi nd(this), true);
75 },
76
77 /**
78 * @param {!Event} event
79 */
80 _onDrop: function(event)
81 {
82 event.consume(true);
83 this._removeMask();
84 if (this._enabled)
85 this._handleDrop(event.dataTransfer);
86 },
87
88 /**
89 * @param {!Event} event
90 */
91 _onDragLeave: function(event)
92 {
93 event.consume(true);
94 this._removeMask();
95 },
96
97 _removeMask: function()
98 {
99 this._dragMaskElement.remove();
100 delete this._dragMaskElement;
101 }
102 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698