| Index: third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
|
| index 9f3efc40ce1683cfa836a9c0de796bf6e907bc5d..ef5d50daf5aeeee00eb6bdd97aea3ecb220a9108 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
|
| @@ -353,7 +353,6 @@ WebInspector.WorkspaceSettingsTab.prototype = {
|
| button.addEventListener("click", this._removeFileSystemClicked.bind(this, fileSystem));
|
| toolbar.appendToolbarItem(button);
|
| header.appendChild(toolbar.element);
|
| - //createTextButton(WebInspector.UIString("Remove"), this._removeFileSystemClicked.bind(this, fileSystem), "file-system-remove"));
|
|
|
| return element;
|
| },
|
| @@ -572,497 +571,4 @@ WebInspector.SettingsController.Revealer.prototype = {
|
| }
|
| }
|
|
|
| -/**
|
| - * @constructor
|
| - * @extends {WebInspector.Object}
|
| - * @param {!Array.<{id: string, placeholder: (string|undefined), options: (!Array.<string>|undefined)}>} columns
|
| - * @param {function(!Element, {id: string, placeholder: (string|undefined), options: (!Array.<string>|undefined)}, ?string)} itemRenderer
|
| - */
|
| -WebInspector.SettingsList = function(columns, itemRenderer)
|
| -{
|
| - this.element = createElementWithClass("div", "settings-list");
|
| - this.element.tabIndex = -1;
|
| - this._itemRenderer = itemRenderer;
|
| - /** @type {!Map.<string, !Element>} */
|
| - this._listItems = new Map();
|
| - /** @type {!Array.<?string>} */
|
| - this._ids = [];
|
| - this._columns = columns;
|
| - /** @type {!Set<string>} */
|
| - this._editableEntries = new Set();
|
| -}
|
| -
|
| -WebInspector.SettingsList.Events = {
|
| - Selected: "Selected",
|
| - Removed: "Removed",
|
| - DoubleClicked: "DoubleClicked",
|
| -}
|
| -
|
| -WebInspector.SettingsList.prototype = {
|
| - /**
|
| - * @param {?string} itemId
|
| - * @param {?string=} beforeId
|
| - * @param {boolean=} readOnly
|
| - * @return {!Element}
|
| - */
|
| - addItem: function(itemId, beforeId, readOnly)
|
| - {
|
| - if (!readOnly && itemId)
|
| - this._editableEntries.add(itemId);
|
| - var listItem = createElementWithClass("div", "settings-list-item");
|
| - listItem._id = itemId;
|
| - if (beforeId)
|
| - this.element.insertBefore(listItem, this.itemForId(beforeId));
|
| - else
|
| - this.element.appendChild(listItem);
|
| -
|
| - var listItemContents = listItem.createChild("div", "settings-list-item-contents");
|
| - var listItemColumnsElement = listItemContents.createChild("div", "settings-list-item-columns");
|
| -
|
| - listItem.columnElements = {};
|
| - for (var i = 0; i < this._columns.length; ++i) {
|
| - var column = this._columns[i];
|
| - var columnElement = listItemColumnsElement.createChild("div", "list-column settings-list-column-" + column.id);
|
| - listItem.columnElements[column.id] = columnElement;
|
| - this._itemRenderer(columnElement, column, itemId);
|
| - }
|
| - if (!readOnly) {
|
| - var removeItemButton = this._createRemoveButton(removeItemClicked.bind(this));
|
| - listItemContents.addEventListener("click", this.selectItem.bind(this, itemId), false);
|
| - listItemContents.addEventListener("dblclick", this._onDoubleClick.bind(this, itemId), false);
|
| - listItemContents.appendChild(removeItemButton);
|
| - }
|
| -
|
| - this._listItems.set(itemId || "", listItem);
|
| - if (typeof beforeId !== "undefined")
|
| - this._ids.splice(this._ids.indexOf(beforeId), 0, itemId);
|
| - else
|
| - this._ids.push(itemId);
|
| -
|
| - /**
|
| - * @param {!Event} event
|
| - * @this {WebInspector.SettingsList}
|
| - */
|
| - function removeItemClicked(event)
|
| - {
|
| - removeItemButton.disabled = true;
|
| - this.removeItem(itemId);
|
| - this.dispatchEventToListeners(WebInspector.SettingsList.Events.Removed, itemId);
|
| - event.consume();
|
| - }
|
| -
|
| - return listItem;
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} id
|
| - */
|
| - removeItem: function(id)
|
| - {
|
| - var listItem = this._listItems.remove(id || "");
|
| - if (listItem)
|
| - listItem.remove();
|
| - this._ids.remove(id);
|
| - if (id === this._selectedId) {
|
| - delete this._selectedId;
|
| - if (this._ids.length)
|
| - this.selectItem(this._ids[0]);
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @return {!Array.<?string>}
|
| - */
|
| - itemIds: function()
|
| - {
|
| - return this._ids.slice();
|
| - },
|
| -
|
| - /**
|
| - * @return {!Array.<string>}
|
| - */
|
| - columns: function()
|
| - {
|
| - return this._columns.select("id");
|
| - },
|
| -
|
| - /**
|
| - * @return {?string}
|
| - */
|
| - selectedId: function()
|
| - {
|
| - return this._selectedId;
|
| - },
|
| -
|
| - /**
|
| - * @return {?Element}
|
| - */
|
| - selectedItem: function()
|
| - {
|
| - return this._selectedId ? this.itemForId(this._selectedId) : null;
|
| - },
|
| -
|
| - /**
|
| - * @param {string} itemId
|
| - * @return {?Element}
|
| - */
|
| - itemForId: function(itemId)
|
| - {
|
| - return this._listItems.get(itemId) || null;
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} id
|
| - * @param {!Event=} event
|
| - */
|
| - _onDoubleClick: function(id, event)
|
| - {
|
| - this.dispatchEventToListeners(WebInspector.SettingsList.Events.DoubleClicked, id);
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} id
|
| - * @param {!Event=} event
|
| - */
|
| - selectItem: function(id, event)
|
| - {
|
| - if (this._selectedId)
|
| - this.itemForId(this._selectedId).classList.remove("selected");
|
| -
|
| - this._selectedId = id;
|
| - if (this._selectedId)
|
| - this.itemForId(this._selectedId).classList.add("selected");
|
| -
|
| - this.dispatchEventToListeners(WebInspector.SettingsList.Events.Selected, id);
|
| - if (event)
|
| - event.consume();
|
| - },
|
| -
|
| - /**
|
| - * @param {function(!Event)} handler
|
| - * @return {!Element}
|
| - */
|
| - _createRemoveButton: function(handler)
|
| - {
|
| - var removeButton = createElementWithClass("div", "remove-item-button");
|
| - removeButton.addEventListener("click", handler, false);
|
| - return removeButton;
|
| - },
|
| -
|
| - __proto__: WebInspector.Object.prototype
|
| -}
|
| -
|
| -/**
|
| - * @constructor
|
| - * @extends {WebInspector.SettingsList}
|
| - * @param {!Array.<{id: string, placeholder: (string|undefined), options: (!Array.<string>|undefined)}>} columns
|
| - * @param {function(string, string):string} valuesProvider
|
| - * @param {function(?string, !Object):!Array.<string>} validateHandler
|
| - * @param {function(?string, !Object)} editHandler
|
| - */
|
| -WebInspector.EditableSettingsList = function(columns, valuesProvider, validateHandler, editHandler)
|
| -{
|
| - WebInspector.SettingsList.call(this, columns, this._renderColumn.bind(this));
|
| - this._valuesProvider = valuesProvider;
|
| - this._validateHandler = validateHandler;
|
| - this._editHandler = editHandler;
|
| - /** @type {!Map.<string, (!HTMLInputElement|!HTMLSelectElement)>} */
|
| - this._addInputElements = new Map();
|
| - /** @type {!Map.<string, !Map.<string, (!HTMLInputElement|!HTMLSelectElement)>>} */
|
| - this._editInputElements = new Map();
|
| - /** @type {!Map.<string, !Map.<string, !HTMLSpanElement>>} */
|
| - this._textElements = new Map();
|
| -
|
| - this._addMappingItem = this.addItem(null);
|
| - this._addMappingItem.classList.add("item-editing", "add-list-item");
|
| -}
|
| -
|
| -WebInspector.EditableSettingsList.prototype = {
|
| - /**
|
| - * @override
|
| - * @param {?string} itemId
|
| - * @param {?string=} beforeId
|
| - * @param {boolean=} readOnly
|
| - * @return {!Element}
|
| - */
|
| - addItem: function(itemId, beforeId, readOnly)
|
| - {
|
| - var listItem = WebInspector.SettingsList.prototype.addItem.call(this, itemId, beforeId, readOnly);
|
| - if (!readOnly)
|
| - listItem.classList.add("editable");
|
| - return listItem;
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} itemId
|
| - */
|
| - refreshItem: function(itemId)
|
| - {
|
| - if (!itemId)
|
| - return;
|
| - var listItem = this.itemForId(itemId);
|
| - if (!listItem)
|
| - return;
|
| - for (var i = 0; i < this._columns.length; ++i) {
|
| - var column = this._columns[i];
|
| - var columnId = column.id;
|
| -
|
| - var value = this._valuesProvider(itemId, columnId);
|
| - this._setTextElementContent(itemId, columnId, value);
|
| -
|
| - var editElement = this._editInputElements.get(itemId).get(columnId);
|
| - this._setEditElementValue(editElement, value || "");
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} itemId
|
| - * @param {string} columnId
|
| - */
|
| - _textElementContent: function(itemId, columnId)
|
| - {
|
| - if (!itemId)
|
| - return "";
|
| - return this._textElements.get(itemId).get(columnId).textContent.replace(/\u200B/g, "");
|
| - },
|
| -
|
| - /**
|
| - * @param {string} itemId
|
| - * @param {string} columnId
|
| - * @param {string} text
|
| - */
|
| - _setTextElementContent: function(itemId, columnId, text)
|
| - {
|
| - var textElement = this._textElements.get(itemId).get(columnId);
|
| - textElement.textContent = text.replace(/.{4}/g, "$&\u200B");
|
| - textElement.title = text;
|
| - },
|
| -
|
| - /**
|
| - * @param {!Element} columnElement
|
| - * @param {{id: string, placeholder: (string|undefined), options: (!Array.<string>|undefined)}} column
|
| - * @param {?string} itemId
|
| - */
|
| - _renderColumn: function(columnElement, column, itemId)
|
| - {
|
| - var columnId = column.id;
|
| - if (itemId === null) {
|
| - this._createEditElement(columnElement, column, itemId);
|
| - return;
|
| - }
|
| - var validItemId = itemId;
|
| -
|
| - if (!this._editInputElements.has(itemId))
|
| - this._editInputElements.set(itemId, new Map());
|
| - if (!this._textElements.has(itemId))
|
| - this._textElements.set(itemId, new Map());
|
| -
|
| - var value = this._valuesProvider(itemId, columnId);
|
| -
|
| - var textElement = /** @type {!HTMLSpanElement} */ (columnElement.createChild("span", "list-column-text"));
|
| - if (this._editableEntries.has(itemId))
|
| - columnElement.addEventListener("click", rowClicked.bind(this), false);
|
| - this._textElements.get(itemId).set(columnId, textElement);
|
| - this._setTextElementContent(itemId, columnId, value);
|
| -
|
| - if (this._editableEntries.has(itemId))
|
| - this._createEditElement(columnElement, column, itemId, value);
|
| -
|
| - /**
|
| - * @param {!Event} event
|
| - * @this {WebInspector.EditableSettingsList}
|
| - */
|
| - function rowClicked(event)
|
| - {
|
| - if (itemId === this._editingId)
|
| - return;
|
| - console.assert(!this._editingId);
|
| - this._editingId = validItemId;
|
| - var listItem = this.itemForId(validItemId);
|
| - listItem.classList.add("item-editing");
|
| - var editElement = event.target.editElement || this._editInputElements.get(validItemId).get(this.columns()[0]);
|
| - editElement.focus();
|
| - if (editElement.select)
|
| - editElement.select();
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {!Element} columnElement
|
| - * @param {{id: string, placeholder: (string|undefined), options: (!Array.<string>|undefined)}} column
|
| - * @param {?string} itemId
|
| - * @param {string=} value
|
| - * @return {!Element}
|
| - */
|
| - _createEditElement: function(columnElement, column, itemId, value)
|
| - {
|
| - var options = column.options;
|
| - if (options) {
|
| - var editElement = /** @type {!HTMLSelectElement} */ (columnElement.createChild("select", "chrome-select list-column-editor"));
|
| - for (var i = 0; i < options.length; ++i) {
|
| - var option = editElement.createChild("option");
|
| - option.value = options[i];
|
| - option.textContent = options[i];
|
| - }
|
| - editElement.addEventListener("blur", this._editMappingBlur.bind(this, itemId), false);
|
| - editElement.addEventListener("change", this._editMappingBlur.bind(this, itemId), false);
|
| - } else {
|
| - var editElement = /** @type {!HTMLInputElement} */ (columnElement.createChild("input", "list-column-editor"));
|
| - editElement.addEventListener("blur", this._editMappingBlur.bind(this, itemId), false);
|
| - editElement.addEventListener("input", this._validateEdit.bind(this, itemId), false);
|
| - if (itemId === null)
|
| - editElement.placeholder = column.placeholder || "";
|
| - }
|
| -
|
| - if (itemId === null)
|
| - this._addInputElements.set(column.id, editElement);
|
| - else
|
| - this._editInputElements.get(itemId).set(column.id, editElement);
|
| -
|
| - this._setEditElementValue(editElement, value || "");
|
| - columnElement.editElement = editElement;
|
| - return editElement;
|
| - },
|
| -
|
| - /**
|
| - * @param {!HTMLInputElement|!HTMLSelectElement|undefined} editElement
|
| - * @param {string} value
|
| - */
|
| - _setEditElementValue: function(editElement, value)
|
| - {
|
| - if (!editElement)
|
| - return;
|
| - if (editElement instanceof HTMLSelectElement) {
|
| - var options = editElement.options;
|
| - for (var i = 0; i < options.length; ++i)
|
| - options[i].selected = (options[i].value === value);
|
| - } else {
|
| - editElement.value = value;
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} itemId
|
| - * @return {!Object}
|
| - */
|
| - _data: function(itemId)
|
| - {
|
| - var inputElements = this._inputElements(itemId);
|
| - var data = { __proto__: null };
|
| - var columns = this.columns();
|
| - for (var i = 0; i < columns.length; ++i)
|
| - data[columns[i]] = inputElements.get(columns[i]).value;
|
| - return data;
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} itemId
|
| - * @return {?Map.<string, (!HTMLInputElement|!HTMLSelectElement)>}
|
| - */
|
| - _inputElements: function(itemId)
|
| - {
|
| - if (!itemId)
|
| - return this._addInputElements;
|
| - return this._editInputElements.get(itemId) || null;
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} itemId
|
| - * @return {boolean}
|
| - */
|
| - _validateEdit: function(itemId)
|
| - {
|
| - var errorColumns = this._validateHandler(itemId, this._data(itemId));
|
| - var hasChanges = this._hasChanges(itemId);
|
| - var columns = this.columns();
|
| - for (var i = 0; i < columns.length; ++i) {
|
| - var columnId = columns[i];
|
| - var inputElement = this._inputElements(itemId).get(columnId);
|
| - if (hasChanges && errorColumns.indexOf(columnId) !== -1)
|
| - inputElement.classList.add("editable-item-error");
|
| - else
|
| - inputElement.classList.remove("editable-item-error");
|
| - }
|
| - return !errorColumns.length;
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} itemId
|
| - * @return {boolean}
|
| - */
|
| - _hasChanges: function(itemId)
|
| - {
|
| - var columns = this.columns();
|
| - for (var i = 0; i < columns.length; ++i) {
|
| - var columnId = columns[i];
|
| - var oldValue = this._textElementContent(itemId, columnId);
|
| - var newValue = this._inputElements(itemId).get(columnId).value;
|
| - if (oldValue !== newValue)
|
| - return true;
|
| - }
|
| - return false;
|
| - },
|
| -
|
| - /**
|
| - * @param {?string} itemId
|
| - * @param {!Event} event
|
| - */
|
| - _editMappingBlur: function(itemId, event)
|
| - {
|
| - if (itemId === null) {
|
| - this._onAddMappingInputBlur(event);
|
| - return;
|
| - }
|
| -
|
| - var inputElements = this._editInputElements.get(itemId).valuesArray();
|
| - if (inputElements.indexOf(event.relatedTarget) !== -1)
|
| - return;
|
| -
|
| - var listItem = this.itemForId(itemId);
|
| - listItem.classList.remove("item-editing");
|
| - delete this._editingId;
|
| -
|
| - if (!this._hasChanges(itemId))
|
| - return;
|
| -
|
| - if (!this._validateEdit(itemId)) {
|
| - var columns = this.columns();
|
| - for (var i = 0; i < columns.length; ++i) {
|
| - var columnId = columns[i];
|
| - var editElement = this._editInputElements.get(itemId).get(columnId);
|
| - this._setEditElementValue(editElement, this._textElementContent(itemId, columnId));
|
| - editElement.classList.remove("editable-item-error");
|
| - }
|
| - return;
|
| - }
|
| - this._editHandler(itemId, this._data(itemId));
|
| - },
|
| -
|
| - /**
|
| - * @param {!Event} event
|
| - */
|
| - _onAddMappingInputBlur: function(event)
|
| - {
|
| - var inputElements = this._addInputElements.valuesArray();
|
| - if (inputElements.indexOf(event.relatedTarget) !== -1)
|
| - return;
|
| -
|
| - if (!this._hasChanges(null))
|
| - return;
|
| -
|
| - if (!this._validateEdit(null))
|
| - return;
|
| -
|
| - this._editHandler(null, this._data(null));
|
| - var columns = this.columns();
|
| - for (var i = 0; i < columns.length; ++i) {
|
| - var columnId = columns[i];
|
| - var editElement = this._addInputElements.get(columnId);
|
| - this._setEditElementValue(editElement, "");
|
| - }
|
| - },
|
| -
|
| - __proto__: WebInspector.SettingsList.prototype
|
| -}
|
| -
|
| WebInspector._settingsController = new WebInspector.SettingsController();
|
|
|