home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 July / CA07.iso / Multimedija / QuickTimeInstaller.exe / AppleApplicationSupport.msi / WebKit.resources_inspector_DatabaseTableView.js < prev    next >
Encoding:
Text File  |  2010-03-15  |  3.7 KB  |  97 lines

  1. /*
  2.  * Copyright (C) 2008 Apple Inc. All Rights Reserved.
  3.  *
  4.  * Redistribution and use in source and binary forms, with or without
  5.  * modification, are permitted provided that the following conditions
  6.  * are met:
  7.  * 1. Redistributions of source code must retain the above copyright
  8.  *    notice, this list of conditions and the following disclaimer.
  9.  * 2. Redistributions in binary form must reproduce the above copyright
  10.  *    notice, this list of conditions and the following disclaimer in the
  11.  *    documentation and/or other materials provided with the distribution.
  12.  *
  13.  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
  14.  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  15.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  16.  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
  17.  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  18.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  19.  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  20.  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  21.  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  22.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  23.  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  24.  */
  25.  
  26. WebInspector.DatabaseTableView = function(database, tableName)
  27. {
  28.     WebInspector.View.call(this);
  29.  
  30.     this.database = database;
  31.     this.tableName = tableName;
  32.  
  33.     this.element.addStyleClass("storage-view");
  34.     this.element.addStyleClass("table");
  35.  
  36.     this.refreshButton = document.createElement("button");
  37.     this.refreshButton.title = WebInspector.UIString("Refresh");
  38.     this.refreshButton.className = "refresh-storage-status-bar-item status-bar-item";
  39.     this.refreshButton.addEventListener("click", this._refreshButtonClicked.bind(this), false);
  40. }
  41.  
  42. WebInspector.DatabaseTableView.prototype = {
  43.     show: function(parentElement)
  44.     {
  45.         WebInspector.View.prototype.show.call(this, parentElement);
  46.         this.update();
  47.     },
  48.  
  49.     get statusBarItems()
  50.     {
  51.         return [this.refreshButton];
  52.     },
  53.  
  54.     update: function()
  55.     {
  56.         function queryTransaction(tx)
  57.         {
  58.             tx.executeSql("SELECT * FROM " + this.tableName, null, InspectorController.wrapCallback(this._queryFinished.bind(this)), InspectorController.wrapCallback(this._queryError.bind(this)));
  59.         }
  60.  
  61.         this.database.database.transaction(InspectorController.wrapCallback(queryTransaction.bind(this)), InspectorController.wrapCallback(this._queryError.bind(this)));
  62.     },
  63.  
  64.     _queryFinished: function(tx, result)
  65.     {
  66.         this.element.removeChildren();
  67.  
  68.         var dataGrid = WebInspector.panels.databases.dataGridForResult(result);
  69.         if (!dataGrid) {
  70.             var emptyMsgElement = document.createElement("div");
  71.             emptyMsgElement.className = "storage-table-empty";
  72.             emptyMsgElement.textContent = WebInspector.UIString("The ΓÇ£%sΓÇ¥\ntable is empty.", this.tableName);
  73.             this.element.appendChild(emptyMsgElement);
  74.             return;
  75.         }
  76.  
  77.         this.element.appendChild(dataGrid.element);
  78.     },
  79.  
  80.     _queryError: function(tx, error)
  81.     {
  82.         this.element.removeChildren();
  83.  
  84.         var errorMsgElement = document.createElement("div");
  85.         errorMsgElement.className = "storage-table-error";
  86.         errorMsgElement.textContent = WebInspector.UIString("An error occurred trying to\nread the ΓÇ£%sΓÇ¥ table.", this.tableName);
  87.         this.element.appendChild(errorMsgElement);
  88.     },
  89.  
  90.     _refreshButtonClicked: function(event)
  91.     {
  92.         this.update();
  93.     }
  94. }
  95.  
  96. WebInspector.DatabaseTableView.prototype.__proto__ = WebInspector.View.prototype;
  97.