diff options
Diffstat (limited to 'Source/WebInspectorUI/UserInterface/DatabaseContentView.js')
-rw-r--r-- | Source/WebInspectorUI/UserInterface/DatabaseContentView.js | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/Source/WebInspectorUI/UserInterface/DatabaseContentView.js b/Source/WebInspectorUI/UserInterface/DatabaseContentView.js deleted file mode 100644 index 597d614cf..000000000 --- a/Source/WebInspectorUI/UserInterface/DatabaseContentView.js +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (C) 2013 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - */ - -WebInspector.DatabaseContentView = function(representedObject) -{ - WebInspector.ContentView.call(this, representedObject); - - this.database = representedObject; - - this.element.classList.add("storage-view"); - this.element.classList.add("query"); - this.element.classList.add("monospace"); - - this._promptElement = document.createElement("div"); - this._promptElement.className = "database-query-prompt"; - this.element.appendChild(this._promptElement); - - this.prompt = new WebInspector.ConsolePrompt(this, "text/x-sql"); - this._promptElement.appendChild(this.prompt.element); - - this.element.addEventListener("click", this._messagesClicked.bind(this), true); -} - -WebInspector.DatabaseContentView.Event = { - SchemaUpdated: "SchemaUpdated" -}; - -WebInspector.DatabaseContentView.prototype = { - constructor: WebInspector.DatabaseContentView, - - // Public - - shown: function() - { - this.prompt.shown(); - }, - - updateLayout: function() - { - this.prompt.updateLayout(); - - var results = this.element.querySelectorAll(".database-query-result"); - for (var i = 0; i < results.length; ++i) { - var resultElement = results[i]; - if (resultElement.dataGrid) - resultElement.dataGrid.updateLayout(); - } - }, - - saveToCookie: function(cookie) - { - cookie.type = WebInspector.ContentViewCookieType.Database; - cookie.host = this.representedObject.host; - cookie.name = this.representedObject.name; - }, - - consolePromptCompletionsNeeded: function(prompt, defaultCompletions, base, prefix, suffix) - { - var results = []; - - prefix = prefix.toLowerCase(); - - function accumulateMatches(textArray) - { - for (var i = 0; i < textArray.length; ++i) { - var lowerCaseText = textArray[i].toLowerCase(); - if (lowerCaseText.startsWith(prefix)) - results.push(textArray[i]); - } - } - - function tableNamesCallback(tableNames) - { - accumulateMatches(tableNames); - accumulateMatches(["SELECT", "FROM", "WHERE", "LIMIT", "DELETE FROM", "CREATE", "DROP", "TABLE", "INDEX", "UPDATE", "INSERT INTO", "VALUES"]); - - this.prompt.updateCompletions(results, " "); - } - - this.database.getTableNames(tableNamesCallback.bind(this)); - }, - - consolePromptTextCommitted: function(prompt, query) - { - this.database.executeSQL(query, this._queryFinished.bind(this, query), this._queryError.bind(this, query)); - }, - - // Private - - _messagesClicked: function() - { - this.prompt.focus(); - }, - - _queryFinished: function(query, columnNames, values) - { - var dataGrid = WebInspector.DataGrid.createSortableDataGrid(columnNames, values); - var trimmedQuery = query.trim(); - - if (dataGrid) { - dataGrid.element.classList.add("inline"); - this._appendViewQueryResult(trimmedQuery, dataGrid); - dataGrid.autoSizeColumns(5); - } - - if (trimmedQuery.match(/^create /i) || trimmedQuery.match(/^drop table /i)) - this.dispatchEventToListeners(WebInspector.DatabaseContentView.Event.SchemaUpdated, this.database); - }, - - _queryError: function(query, error) - { - if (error.message) - var message = error.message; - else if (error.code == 2) - var message = WebInspector.UIString("Database no longer has expected version."); - else - var message = WebInspector.UIString("An unexpected error %s occurred.").format(error.code); - - this._appendErrorQueryResult(query, message); - }, - - /** - * @param {string} query - * @param {WebInspector.View} view - */ - _appendViewQueryResult: function(query, view) - { - var resultElement = this._appendQueryResult(query); - - // Add our DataGrid with the results to the database query result div. - resultElement.dataGrid = view; - resultElement.appendChild(view.element); - - this._promptElement.scrollIntoView(false); - }, - - /** - * @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 = document.createElement("div"); - element.className = "database-user-query"; - this.element.insertBefore(element, this._promptElement); - - var commandTextElement = document.createElement("span"); - commandTextElement.className = "database-query-text"; - commandTextElement.textContent = query; - element.appendChild(commandTextElement); - - var resultElement = document.createElement("div"); - resultElement.className = "database-query-result"; - element.appendChild(resultElement); - return resultElement; - } -} - -WebInspector.DatabaseContentView.prototype.__proto__ = WebInspector.ContentView.prototype; |