Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/resources/DatabaseTableView.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 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. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25
26 /** 25 /**
27 * @constructor 26 * @unrestricted
28 * @extends {WebInspector.SimpleView}
29 */ 27 */
30 WebInspector.DatabaseTableView = function(database, tableName) 28 WebInspector.DatabaseTableView = class extends WebInspector.SimpleView {
31 { 29 constructor(database, tableName) {
32 WebInspector.SimpleView.call(this, WebInspector.UIString("Database")); 30 super(WebInspector.UIString('Database'));
33 31
34 this.database = database; 32 this.database = database;
35 this.tableName = tableName; 33 this.tableName = tableName;
36 34
37 this.element.classList.add("storage-view", "table"); 35 this.element.classList.add('storage-view', 'table');
38 36
39 this._visibleColumnsSetting = WebInspector.settings.createSetting("databaseT ableViewVisibleColumns", {}); 37 this._visibleColumnsSetting = WebInspector.settings.createSetting('databaseT ableViewVisibleColumns', {});
40 38
41 this.refreshButton = new WebInspector.ToolbarButton(WebInspector.UIString("R efresh"), "refresh-toolbar-item"); 39 this.refreshButton = new WebInspector.ToolbarButton(WebInspector.UIString('R efresh'), 'refresh-toolbar-item');
42 this.refreshButton.addEventListener("click", this._refreshButtonClicked, thi s); 40 this.refreshButton.addEventListener('click', this._refreshButtonClicked, thi s);
43 this._visibleColumnsInput = new WebInspector.ToolbarInput(WebInspector.UIStr ing("Visible columns"), 1); 41 this._visibleColumnsInput = new WebInspector.ToolbarInput(WebInspector.UIStr ing('Visible columns'), 1);
44 this._visibleColumnsInput.addEventListener(WebInspector.ToolbarInput.Event.T extChanged, this._onVisibleColumnsChanged, this); 42 this._visibleColumnsInput.addEventListener(
43 WebInspector.ToolbarInput.Event.TextChanged, this._onVisibleColumnsChang ed, this);
44 }
45
46 /**
47 * @override
48 */
49 wasShown() {
50 this.update();
51 }
52
53 /**
54 * @override
55 * @return {!Array.<!WebInspector.ToolbarItem>}
56 */
57 syncToolbarItems() {
58 return [this.refreshButton, this._visibleColumnsInput];
59 }
60
61 /**
62 * @param {string} tableName
63 * @return {string}
64 */
65 _escapeTableName(tableName) {
66 return tableName.replace(/\"/g, '""');
67 }
68
69 update() {
70 this.database.executeSql(
71 'SELECT rowid, * FROM "' + this._escapeTableName(this.tableName) + '"', this._queryFinished.bind(this),
72 this._queryError.bind(this));
73 }
74
75 _queryFinished(columnNames, values) {
76 this.detachChildWidgets();
77 this.element.removeChildren();
78
79 this._dataGrid = WebInspector.SortableDataGrid.create(columnNames, values);
80 this._visibleColumnsInput.setVisible(!!this._dataGrid);
81 if (!this._dataGrid) {
82 this._emptyWidget =
83 new WebInspector.EmptyWidget(WebInspector.UIString('The “%s”\ntable is empty.', this.tableName));
84 this._emptyWidget.show(this.element);
85 return;
86 }
87 this._dataGrid.asWidget().show(this.element);
88 this._dataGrid.autoSizeColumns(5);
89
90 this._columnsMap = new Map();
91 for (var i = 1; i < columnNames.length; ++i)
92 this._columnsMap.set(columnNames[i], String(i));
93 this._lastVisibleColumns = '';
94 var visibleColumnsText = this._visibleColumnsSetting.get()[this.tableName] | | '';
95 this._visibleColumnsInput.setValue(visibleColumnsText);
96 this._onVisibleColumnsChanged();
97 }
98
99 _onVisibleColumnsChanged() {
100 if (!this._dataGrid)
101 return;
102 var text = this._visibleColumnsInput.value();
103 var parts = text.split(/[\s,]+/);
104 var matches = new Set();
105 var columnsVisibility = {};
106 columnsVisibility['0'] = true;
107 for (var i = 0; i < parts.length; ++i) {
108 var part = parts[i];
109 if (this._columnsMap.has(part)) {
110 matches.add(part);
111 columnsVisibility[this._columnsMap.get(part)] = true;
112 }
113 }
114 var newVisibleColumns = matches.valuesArray().sort().join(', ');
115 if (newVisibleColumns.length === 0) {
116 for (var v of this._columnsMap.values())
117 columnsVisibility[v] = true;
118 }
119 if (newVisibleColumns === this._lastVisibleColumns)
120 return;
121 var visibleColumnsRegistry = this._visibleColumnsSetting.get();
122 visibleColumnsRegistry[this.tableName] = text;
123 this._visibleColumnsSetting.set(visibleColumnsRegistry);
124 this._dataGrid.setColumnsVisiblity(columnsVisibility);
125 this._lastVisibleColumns = newVisibleColumns;
126 }
127
128 _queryError(error) {
129 this.detachChildWidgets();
130 this.element.removeChildren();
131
132 var errorMsgElement = createElement('div');
133 errorMsgElement.className = 'storage-table-error';
134 errorMsgElement.textContent =
135 WebInspector.UIString('An error occurred trying to\nread the “%s” table. ', this.tableName);
136 this.element.appendChild(errorMsgElement);
137 }
138
139 _refreshButtonClicked(event) {
140 this.update();
141 }
45 }; 142 };
46
47 WebInspector.DatabaseTableView.prototype = {
48 wasShown: function()
49 {
50 this.update();
51 },
52
53 /**
54 * @override
55 * @return {!Array.<!WebInspector.ToolbarItem>}
56 */
57 syncToolbarItems: function()
58 {
59 return [this.refreshButton, this._visibleColumnsInput];
60 },
61
62 /**
63 * @param {string} tableName
64 * @return {string}
65 */
66 _escapeTableName: function(tableName)
67 {
68 return tableName.replace(/\"/g, "\"\"");
69 },
70
71 update: function()
72 {
73 this.database.executeSql("SELECT rowid, * FROM \"" + this._escapeTableNa me(this.tableName) + "\"", this._queryFinished.bind(this), this._queryError.bind (this));
74 },
75
76 _queryFinished: function(columnNames, values)
77 {
78 this.detachChildWidgets();
79 this.element.removeChildren();
80
81 this._dataGrid = WebInspector.SortableDataGrid.create(columnNames, value s);
82 this._visibleColumnsInput.setVisible(!!this._dataGrid);
83 if (!this._dataGrid) {
84 this._emptyWidget = new WebInspector.EmptyWidget(WebInspector.UIStri ng("The “%s”\ntable is empty.", this.tableName));
85 this._emptyWidget.show(this.element);
86 return;
87 }
88 this._dataGrid.asWidget().show(this.element);
89 this._dataGrid.autoSizeColumns(5);
90
91 this._columnsMap = new Map();
92 for (var i = 1; i < columnNames.length; ++i)
93 this._columnsMap.set(columnNames[i], String(i));
94 this._lastVisibleColumns = "";
95 var visibleColumnsText = this._visibleColumnsSetting.get()[this.tableNam e] || "";
96 this._visibleColumnsInput.setValue(visibleColumnsText);
97 this._onVisibleColumnsChanged();
98 },
99
100 _onVisibleColumnsChanged: function()
101 {
102 if (!this._dataGrid)
103 return;
104 var text = this._visibleColumnsInput.value();
105 var parts = text.split(/[\s,]+/);
106 var matches = new Set();
107 var columnsVisibility = {};
108 columnsVisibility["0"] = true;
109 for (var i = 0; i < parts.length; ++i) {
110 var part = parts[i];
111 if (this._columnsMap.has(part)) {
112 matches.add(part);
113 columnsVisibility[this._columnsMap.get(part)] = true;
114 }
115 }
116 var newVisibleColumns = matches.valuesArray().sort().join(", ");
117 if (newVisibleColumns.length === 0) {
118 for (var v of this._columnsMap.values())
119 columnsVisibility[v] = true;
120 }
121 if (newVisibleColumns === this._lastVisibleColumns)
122 return;
123 var visibleColumnsRegistry = this._visibleColumnsSetting.get();
124 visibleColumnsRegistry[this.tableName] = text;
125 this._visibleColumnsSetting.set(visibleColumnsRegistry);
126 this._dataGrid.setColumnsVisiblity(columnsVisibility);
127 this._lastVisibleColumns = newVisibleColumns;
128 },
129
130 _queryError: function(error)
131 {
132 this.detachChildWidgets();
133 this.element.removeChildren();
134
135 var errorMsgElement = createElement("div");
136 errorMsgElement.className = "storage-table-error";
137 errorMsgElement.textContent = WebInspector.UIString("An error occurred t rying to\nread the “%s” table.", this.tableName);
138 this.element.appendChild(errorMsgElement);
139 },
140
141 _refreshButtonClicked: function(event)
142 {
143 this.update();
144 },
145
146 __proto__: WebInspector.SimpleView.prototype
147 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698