Index: third_party/WebKit/Source/devtools/front_end/resources/DatabaseQueryView.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/resources/DatabaseQueryView.js b/third_party/WebKit/Source/devtools/front_end/resources/DatabaseQueryView.js |
index fbc9f2b08af6e346d3f967d226f0c15f5f887d11..f9e1490a1ae0ba5ac2c676b53afb4714de2cd939 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/resources/DatabaseQueryView.js |
+++ b/third_party/WebKit/Source/devtools/front_end/resources/DatabaseQueryView.js |
@@ -22,184 +22,171 @@ |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
- |
/** |
- * @constructor |
- * @extends {WebInspector.VBox} |
+ * @unrestricted |
*/ |
-WebInspector.DatabaseQueryView = function(database) |
-{ |
- WebInspector.VBox.call(this); |
+WebInspector.DatabaseQueryView = class extends WebInspector.VBox { |
+ constructor(database) { |
+ super(); |
this.database = database; |
- this.element.classList.add("storage-view", "query", "monospace"); |
- this.element.addEventListener("selectstart", this._selectStart.bind(this), false); |
+ this.element.classList.add('storage-view', 'query', 'monospace'); |
+ this.element.addEventListener('selectstart', this._selectStart.bind(this), false); |
- this._promptElement = createElement("div"); |
- this._promptElement.className = "database-query-prompt"; |
- this._promptElement.appendChild(createElement("br")); |
- this._promptElement.addEventListener("keydown", this._promptKeyDown.bind(this), true); |
+ this._promptElement = createElement('div'); |
+ this._promptElement.className = 'database-query-prompt'; |
+ this._promptElement.appendChild(createElement('br')); |
+ this._promptElement.addEventListener('keydown', this._promptKeyDown.bind(this), true); |
this.element.appendChild(this._promptElement); |
this._prompt = new WebInspector.TextPrompt(); |
- this._prompt.initialize(this.completions.bind(this), " "); |
+ this._prompt.initialize(this.completions.bind(this), ' '); |
this._proxyElement = this._prompt.attach(this._promptElement); |
- this.element.addEventListener("click", this._messagesClicked.bind(this), true); |
-}; |
- |
-/** @enum {symbol} */ |
-WebInspector.DatabaseQueryView.Events = { |
- SchemaUpdated: Symbol("SchemaUpdated") |
-}; |
- |
-WebInspector.DatabaseQueryView.prototype = { |
- _messagesClicked: function() |
- { |
- if (!this._prompt.isCaretInsidePrompt() && this.element.isComponentSelectionCollapsed()) |
- this._prompt.moveCaretToEndOfPrompt(); |
- }, |
+ this.element.addEventListener('click', this._messagesClicked.bind(this), true); |
+ } |
+ |
+ _messagesClicked() { |
+ if (!this._prompt.isCaretInsidePrompt() && this.element.isComponentSelectionCollapsed()) |
+ this._prompt.moveCaretToEndOfPrompt(); |
+ } |
+ |
+ /** |
+ * @param {!Element} proxyElement |
+ * @param {!Range} wordRange |
+ * @param {boolean} force |
+ * @param {function(!Array.<string>, number=)} completionsReadyCallback |
+ */ |
+ completions(proxyElement, wordRange, force, completionsReadyCallback) { |
+ var prefix = wordRange.toString().toLowerCase(); |
+ if (!prefix) |
+ return; |
+ var results = []; |
+ |
+ function accumulateMatches(textArray) { |
+ for (var i = 0; i < textArray.length; ++i) { |
+ var text = textArray[i].toLowerCase(); |
+ if (text.length < prefix.length) |
+ continue; |
+ if (!text.startsWith(prefix)) |
+ continue; |
+ results.push(textArray[i]); |
+ } |
+ } |
+ |
+ function tableNamesCallback(tableNames) { |
+ accumulateMatches(tableNames.map(function(name) { |
+ return name + ' '; |
+ })); |
+ accumulateMatches([ |
+ 'SELECT ', 'FROM ', 'WHERE ', 'LIMIT ', 'DELETE FROM ', 'CREATE ', 'DROP ', 'TABLE ', 'INDEX ', 'UPDATE ', |
+ 'INSERT INTO ', 'VALUES (' |
+ ]); |
+ |
+ completionsReadyCallback(results); |
+ } |
+ this.database.getTableNames(tableNamesCallback); |
+ } |
+ |
+ _selectStart(event) { |
+ if (this._selectionTimeout) |
+ clearTimeout(this._selectionTimeout); |
+ |
+ this._prompt.clearAutocomplete(); |
/** |
- * @param {!Element} proxyElement |
- * @param {!Range} wordRange |
- * @param {boolean} force |
- * @param {function(!Array.<string>, number=)} completionsReadyCallback |
+ * @this {WebInspector.DatabaseQueryView} |
*/ |
- completions: function(proxyElement, wordRange, force, completionsReadyCallback) |
- { |
- var prefix = wordRange.toString().toLowerCase(); |
- if (!prefix) |
- return; |
- var results = []; |
- |
- function accumulateMatches(textArray) |
- { |
- for (var i = 0; i < textArray.length; ++i) { |
- var text = textArray[i].toLowerCase(); |
- if (text.length < prefix.length) |
- continue; |
- if (!text.startsWith(prefix)) |
- continue; |
- results.push(textArray[i]); |
- } |
- } |
- |
- function tableNamesCallback(tableNames) |
- { |
- accumulateMatches(tableNames.map(function(name) { return name + " "; })); |
- accumulateMatches(["SELECT ", "FROM ", "WHERE ", "LIMIT ", "DELETE FROM ", "CREATE ", "DROP ", "TABLE ", "INDEX ", "UPDATE ", "INSERT INTO ", "VALUES ("]); |
- |
- completionsReadyCallback(results); |
- } |
- this.database.getTableNames(tableNamesCallback); |
- }, |
- |
- _selectStart: function(event) |
- { |
- if (this._selectionTimeout) |
- clearTimeout(this._selectionTimeout); |
- |
- this._prompt.clearAutocomplete(); |
- |
- /** |
- * @this {WebInspector.DatabaseQueryView} |
- */ |
- function moveBackIfOutside() |
- { |
- delete this._selectionTimeout; |
- if (!this._prompt.isCaretInsidePrompt() && this.element.isComponentSelectionCollapsed()) |
- this._prompt.moveCaretToEndOfPrompt(); |
- this._prompt.autoCompleteSoon(); |
- } |
- |
- this._selectionTimeout = setTimeout(moveBackIfOutside.bind(this), 100); |
- }, |
- |
- _promptKeyDown: function(event) |
- { |
- if (isEnterKey(event)) { |
- this._enterKeyPressed(event); |
- return; |
- } |
- }, |
- |
- _enterKeyPressed: function(event) |
- { |
- event.consume(true); |
- |
- this._prompt.clearAutocomplete(); |
- |
- var query = this._prompt.text(); |
- if (!query.length) |
- return; |
- |
- this._prompt.setText(""); |
- |
- this.database.executeSql(query, this._queryFinished.bind(this, query), this._queryError.bind(this, query)); |
- }, |
- |
- _queryFinished: function(query, columnNames, values) |
- { |
- var dataGrid = WebInspector.SortableDataGrid.create(columnNames, values); |
- var trimmedQuery = query.trim(); |
- |
- if (dataGrid) { |
- dataGrid.renderInline(); |
- this._appendViewQueryResult(trimmedQuery, dataGrid.asWidget()); |
- dataGrid.autoSizeColumns(5); |
- } |
- |
- if (trimmedQuery.match(/^create /i) || trimmedQuery.match(/^drop table /i)) |
- this.dispatchEventToListeners(WebInspector.DatabaseQueryView.Events.SchemaUpdated, this.database); |
- }, |
- |
- _queryError: function(query, errorMessage) |
- { |
- this._appendErrorQueryResult(query, errorMessage); |
- }, |
- |
- /** |
- * @param {string} query |
- * @param {!WebInspector.Widget} view |
- */ |
- _appendViewQueryResult: function(query, view) |
- { |
- var resultElement = this._appendQueryResult(query); |
- view.show(resultElement); |
- this._promptElement.scrollIntoView(false); |
- }, |
+ function moveBackIfOutside() { |
+ delete this._selectionTimeout; |
+ if (!this._prompt.isCaretInsidePrompt() && this.element.isComponentSelectionCollapsed()) |
+ this._prompt.moveCaretToEndOfPrompt(); |
+ this._prompt.autoCompleteSoon(); |
+ } |
+ |
+ this._selectionTimeout = setTimeout(moveBackIfOutside.bind(this), 100); |
+ } |
+ |
+ _promptKeyDown(event) { |
+ if (isEnterKey(event)) { |
+ this._enterKeyPressed(event); |
+ return; |
+ } |
+ } |
+ |
+ _enterKeyPressed(event) { |
+ event.consume(true); |
+ |
+ this._prompt.clearAutocomplete(); |
+ |
+ var query = this._prompt.text(); |
+ if (!query.length) |
+ return; |
+ |
+ this._prompt.setText(''); |
+ |
+ this.database.executeSql(query, this._queryFinished.bind(this, query), this._queryError.bind(this, query)); |
+ } |
+ |
+ _queryFinished(query, columnNames, values) { |
+ var dataGrid = WebInspector.SortableDataGrid.create(columnNames, values); |
+ var trimmedQuery = query.trim(); |
+ |
+ if (dataGrid) { |
+ dataGrid.renderInline(); |
+ this._appendViewQueryResult(trimmedQuery, dataGrid.asWidget()); |
+ dataGrid.autoSizeColumns(5); |
+ } |
+ |
+ if (trimmedQuery.match(/^create /i) || trimmedQuery.match(/^drop table /i)) |
+ this.dispatchEventToListeners(WebInspector.DatabaseQueryView.Events.SchemaUpdated, this.database); |
+ } |
+ |
+ _queryError(query, errorMessage) { |
+ this._appendErrorQueryResult(query, errorMessage); |
+ } |
+ |
+ /** |
+ * @param {string} query |
+ * @param {!WebInspector.Widget} view |
+ */ |
+ _appendViewQueryResult(query, view) { |
+ var resultElement = this._appendQueryResult(query); |
+ view.show(resultElement); |
+ this._promptElement.scrollIntoView(false); |
+ } |
+ |
+ /** |
+ * @param {string} query |
+ * @param {string} errorText |
+ */ |
+ _appendErrorQueryResult(query, errorText) { |
+ var resultElement = this._appendQueryResult(query); |
+ resultElement.classList.add('error'); |
+ resultElement.textContent = errorText; |
+ |
+ this._promptElement.scrollIntoView(false); |
+ } |
+ |
+ _appendQueryResult(query) { |
+ var element = createElement('div'); |
+ element.className = 'database-user-query'; |
+ this.element.insertBefore(element, this._proxyElement); |
+ |
+ var commandTextElement = createElement('span'); |
+ commandTextElement.className = 'database-query-text'; |
+ commandTextElement.textContent = query; |
+ element.appendChild(commandTextElement); |
+ |
+ var resultElement = createElement('div'); |
+ resultElement.className = 'database-query-result'; |
+ element.appendChild(resultElement); |
+ return resultElement; |
+ } |
+}; |
- /** |
- * @param {string} query |
- * @param {string} errorText |
- */ |
- _appendErrorQueryResult: function(query, errorText) |
- { |
- var resultElement = this._appendQueryResult(query); |
- resultElement.classList.add("error"); |
- resultElement.textContent = errorText; |
- |
- this._promptElement.scrollIntoView(false); |
- }, |
- |
- _appendQueryResult: function(query) |
- { |
- var element = createElement("div"); |
- element.className = "database-user-query"; |
- this.element.insertBefore(element, this._proxyElement); |
- |
- var commandTextElement = createElement("span"); |
- commandTextElement.className = "database-query-text"; |
- commandTextElement.textContent = query; |
- element.appendChild(commandTextElement); |
- |
- var resultElement = createElement("div"); |
- resultElement.className = "database-query-result"; |
- element.appendChild(resultElement); |
- return resultElement; |
- }, |
- |
- __proto__: WebInspector.VBox.prototype |
+/** @enum {symbol} */ |
+WebInspector.DatabaseQueryView.Events = { |
+ SchemaUpdated: Symbol('SchemaUpdated') |
}; |