DatabaseTableView.js [plain text]
WebInspector.DatabaseTableView = function(database, tableName)
{
WebInspector.View.call(this);
this.database = database;
this.tableName = tableName;
this.element.addStyleClass("storage-view");
this.element.addStyleClass("table");
this.refreshButton = new WebInspector.StatusBarButton(WebInspector.UIString("Refresh"), "refresh-storage-status-bar-item");
this.refreshButton.addEventListener("click", this._refreshButtonClicked, this);
}
WebInspector.DatabaseTableView.prototype = {
wasShown: function()
{
this.update();
},
get statusBarItems()
{
return [this.refreshButton.element];
},
_escapeTableName: function(tableName)
{
return tableName.replace(/\"/g, "\"\"");
},
update: function()
{
this.database.executeSql("SELECT * FROM \"" + this._escapeTableName(this.tableName) + "\"", this._queryFinished.bind(this), this._queryError.bind(this));
},
_queryFinished: function(columnNames, values)
{
this.detachChildViews();
this.element.removeChildren();
var dataGrid = WebInspector.DataGrid.createSortableDataGrid(columnNames, values);
if (!dataGrid) {
this._emptyView = new WebInspector.EmptyView(WebInspector.UIString("The ā%sā\ntable is empty.", this.tableName));
this._emptyView.show(this.element);
return;
}
dataGrid.show(this.element);
dataGrid.autoSizeColumns(5);
},
_queryError: function(error)
{
this.detachChildViews();
this.element.removeChildren();
var errorMsgElement = document.createElement("div");
errorMsgElement.className = "storage-table-error";
errorMsgElement.textContent = WebInspector.UIString("An error occurred trying to\nread the ā%sā table.", this.tableName);
this.element.appendChild(errorMsgElement);
},
_refreshButtonClicked: function(event)
{
this.update();
}
}
WebInspector.DatabaseTableView.prototype.__proto__ = WebInspector.View.prototype;