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

Side by Side Diff: chrome/tools/test/reference_build/chrome_linux/resources/inspector/DOMStorageDataGrid.js

Issue 177049: On Linux, move the passing of filedescriptors to a dedicated socketpair(). (Closed)
Patch Set: Removed *.d files from reference build Created 11 years, 3 months 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
(Empty)
1 /*
2 * Copyright (C) 2009 Nokia 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.DOMStorageDataGrid = function(columns)
27 {
28 WebInspector.DataGrid.call(this, columns);
29 this.dataTableBody.addEventListener("dblclick", this._ondblclick.bind(this), false);
30 }
31
32 WebInspector.DOMStorageDataGrid.prototype = {
33 _ondblclick: function(event)
34 {
35 if (this._editing)
36 return;
37 if (this._editingNode)
38 return;
39 this._startEditing(event);
40 },
41
42 _startEditingColumnOfDataGridNode: function(node, column)
43 {
44 this._editing = true;
45 this._editingNode = node;
46 this._editingNode.select();
47 WebInspector.panels.storage._unregisterStorageEventListener();
48
49 var element = this._editingNode._element.children[column];
50 WebInspector.startEditing(element, this._editingCommitted.bind(this), th is._editingCancelled.bind(this), element.textContent);
51 window.getSelection().setBaseAndExtent(element, 0, element, 1);
52 },
53
54 _startEditing: function(event)
55 {
56 var element = event.target.enclosingNodeOrSelfWithNodeName("td");
57 if (!element)
58 return;
59
60 this._editingNode = this.dataGridNodeFromEvent(event);
61 if (!this._editingNode) {
62 if (!this.creationNode)
63 return;
64 this._editingNode = this.creationNode;
65 }
66
67 // Force editing the "Key" column when editing the creation node
68 if (this._editingNode.isCreationNode)
69 return this._startEditingColumnOfDataGridNode(this._editingNode, 0);
70
71 this._editing = true;
72 WebInspector.panels.storage._unregisterStorageEventListener();
73 WebInspector.startEditing(element, this._editingCommitted.bind(this), th is._editingCancelled.bind(this), element.textContent);
74 window.getSelection().setBaseAndExtent(element, 0, element, 1);
75 },
76
77 _editingCommitted: function(element, newText, oldText, context, moveDirectio n)
78 {
79 var columnIdentifier = (element.hasStyleClass("0-column") ? 0 : 1);
80 var textBeforeEditing = this._editingNode.data[columnIdentifier];
81 var currentEditingNode = this._editingNode;
82
83 function moveToNextIfNeeded(wasChange) {
84 if (!moveDirection)
85 return;
86
87 if (moveDirection === "forward") {
88 if (currentEditingNode.isCreationNode && columnIdentifier === 0 && !wasChange)
89 return;
90
91 if (columnIdentifier === 0)
92 return this._startEditingColumnOfDataGridNode(currentEditing Node, 1);
93
94 var nextDataGridNode = currentEditingNode.traverseNextNode(true, null, true);
95 if (nextDataGridNode)
96 return this._startEditingColumnOfDataGridNode(nextDataGridNo de, 0);
97 if (currentEditingNode.isCreationNode && wasChange) {
98 addCreationNode(false);
99 return this._startEditingColumnOfDataGridNode(this.creationN ode, 0);
100 }
101 return;
102 }
103
104 if (moveDirection === "backward") {
105 if (columnIdentifier === 1)
106 return this._startEditingColumnOfDataGridNode(currentEditing Node, 0);
107 var nextDataGridNode = currentEditingNode.traversePreviousNo de(true, null, true);
108
109 if (nextDataGridNode)
110 return this._startEditingColumnOfDataGridNode(nextDataGridNo de, 1);
111 return;
112 }
113 }
114
115 if (textBeforeEditing == newText) {
116 this._editingCancelled(element);
117 moveToNextIfNeeded.call(this, false);
118 return;
119 }
120
121 var domStorage = WebInspector.panels.storage.visibleView.domStorage.domS torage;
122 if (domStorage) {
123 if (columnIdentifier == 0) {
124 if (domStorage.getItem(newText) != null) {
125 element.textContent = this._editingNode.data[0];
126 this._editingCancelled(element);
127 moveToNextIfNeeded.call(this, false);
128 return;
129 }
130 domStorage.removeItem(this._editingNode.data[0]);
131 domStorage.setItem(newText, this._editingNode.data[1]);
132 this._editingNode.data[0] = newText;
133 } else {
134 domStorage.setItem(this._editingNode.data[0], newText);
135 this._editingNode.data[1] = newText;
136 }
137 }
138
139 if (this._editingNode.isCreationNode)
140 this.addCreationNode(false);
141
142 this._editingCancelled(element);
143 moveToNextIfNeeded.call(this, true);
144 },
145
146 _editingCancelled: function(element, context)
147 {
148 delete this._editing;
149 this._editingNode = null;
150 WebInspector.panels.storage._registerStorageEventListener();
151 },
152
153 deleteSelectedRow: function()
154 {
155 var node = this.selectedNode;
156 if (this.selectedNode.isCreationNode)
157 return;
158
159 var domStorage = WebInspector.panels.storage.visibleView.domStorage.domS torage;
160 if (node && domStorage)
161 domStorage.removeItem(node.data[0]);
162 }
163 }
164
165 WebInspector.DOMStorageDataGrid.prototype.__proto__ = WebInspector.DataGrid.prot otype;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698