summaryrefslogtreecommitdiffstats
path: root/WebCore/page/inspector/Database.js
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/page/inspector/Database.js')
-rw-r--r--WebCore/page/inspector/Database.js129
1 files changed, 129 insertions, 0 deletions
diff --git a/WebCore/page/inspector/Database.js b/WebCore/page/inspector/Database.js
new file mode 100644
index 0000000..36e89da
--- /dev/null
+++ b/WebCore/page/inspector/Database.js
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2007 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE 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 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.Database = function(database, domain, name, version)
+{
+ this.database = database;
+ this.domain = domain;
+ this.name = name;
+ this.version = version;
+
+ this.listItem = new WebInspector.ResourceTreeElement(this);
+ this.updateTitle();
+
+ this.category.addResource(this);
+}
+
+WebInspector.Database.prototype = {
+ get database()
+ {
+ return this._database;
+ },
+
+ set database(x)
+ {
+ if (this._database === x)
+ return;
+ this._database = x;
+ },
+
+ get name()
+ {
+ return this._name;
+ },
+
+ set name(x)
+ {
+ if (this._name === x)
+ return;
+ this._name = x;
+ this.updateTitleSoon();
+ },
+
+ get version()
+ {
+ return this._version;
+ },
+
+ set version(x)
+ {
+ if (this._version === x)
+ return;
+ this._version = x;
+ },
+
+ get domain()
+ {
+ return this._domain;
+ },
+
+ set domain(x)
+ {
+ if (this._domain === x)
+ return;
+ this._domain = x;
+ this.updateTitleSoon();
+ },
+
+ get category()
+ {
+ return WebInspector.resourceCategories.databases;
+ },
+
+ updateTitle: function()
+ {
+ delete this.updateTitleTimeout;
+
+ var title = this.name;
+
+ var info = "";
+ if (this.domain && (!WebInspector.mainResource || (WebInspector.mainResource && this.domain !== WebInspector.mainResource.domain)))
+ info = this.domain;
+
+ var fullTitle = "<span class=\"title" + (info && info.length ? "" : " only") + "\">" + title.escapeHTML() + "</span>";
+ if (info && info.length)
+ fullTitle += "<span class=\"info\">" + info.escapeHTML() + "</span>";
+ fullTitle += "<div class=\"icon database\"></div>";
+
+ this.listItem.title = fullTitle;
+ },
+
+ get panel()
+ {
+ if (!this._panel)
+ this._panel = new WebInspector.DatabasePanel(this);
+ return this._panel;
+ },
+
+ // Inherit the other functions from the Resource prototype.
+ updateTitleSoon: WebInspector.Resource.prototype.updateTitleSoon,
+ select: WebInspector.Resource.prototype.select,
+ deselect: WebInspector.Resource.prototype.deselect,
+ attach: WebInspector.Resource.prototype.attach,
+ detach: WebInspector.Resource.prototype.detach
+}