OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
884 if (!itemId) | 884 if (!itemId) |
885 return; | 885 return; |
886 var listItem = this.itemForId(itemId); | 886 var listItem = this.itemForId(itemId); |
887 if (!listItem) | 887 if (!listItem) |
888 return; | 888 return; |
889 for (var i = 0; i < this._columns.length; ++i) { | 889 for (var i = 0; i < this._columns.length; ++i) { |
890 var column = this._columns[i]; | 890 var column = this._columns[i]; |
891 var columnId = column.id; | 891 var columnId = column.id; |
892 | 892 |
893 var value = this._valuesProvider(itemId, columnId); | 893 var value = this._valuesProvider(itemId, columnId); |
894 var textElement = this._textElements.get(itemId).get(columnId); | 894 this._setTextElementContent(itemId, columnId, value); |
895 textElement.textContent = value; | |
896 textElement.title = value; | |
897 | 895 |
898 var editElement = this._editInputElements.get(itemId).get(columnId); | 896 var editElement = this._editInputElements.get(itemId).get(columnId); |
899 this._setEditElementValue(editElement, value || ""); | 897 this._setEditElementValue(editElement, value || ""); |
900 } | 898 } |
901 }, | 899 }, |
902 | 900 |
903 /** | 901 /** |
| 902 * @param {?string} itemId |
| 903 * @param {string} columnId |
| 904 */ |
| 905 _textElementContent: function(itemId, columnId) |
| 906 { |
| 907 if (!itemId) |
| 908 return ""; |
| 909 return this._textElements.get(itemId).get(columnId).textContent.replace(
/\u200B/g, ""); |
| 910 }, |
| 911 |
| 912 /** |
| 913 * @param {string} itemId |
| 914 * @param {string} columnId |
| 915 * @param {string} text |
| 916 */ |
| 917 _setTextElementContent: function(itemId, columnId, text) |
| 918 { |
| 919 var textElement = this._textElements.get(itemId).get(columnId); |
| 920 textElement.textContent = text.replace(/.{4}/g, "$&\u200B"); |
| 921 textElement.title = text; |
| 922 }, |
| 923 |
| 924 /** |
904 * @param {!Element} columnElement | 925 * @param {!Element} columnElement |
905 * @param {{id: string, placeholder: (string|undefined), options: (!Array.<s
tring>|undefined)}} column | 926 * @param {{id: string, placeholder: (string|undefined), options: (!Array.<s
tring>|undefined)}} column |
906 * @param {?string} itemId | 927 * @param {?string} itemId |
907 */ | 928 */ |
908 _renderColumn: function(columnElement, column, itemId) | 929 _renderColumn: function(columnElement, column, itemId) |
909 { | 930 { |
910 var columnId = column.id; | 931 var columnId = column.id; |
911 if (itemId === null) { | 932 if (itemId === null) { |
912 this._createEditElement(columnElement, column, itemId); | 933 this._createEditElement(columnElement, column, itemId); |
913 return; | 934 return; |
914 } | 935 } |
915 var validItemId = itemId; | 936 var validItemId = itemId; |
916 | 937 |
917 if (!this._editInputElements.has(itemId)) | 938 if (!this._editInputElements.has(itemId)) |
918 this._editInputElements.set(itemId, new StringMap()); | 939 this._editInputElements.set(itemId, new StringMap()); |
919 if (!this._textElements.has(itemId)) | 940 if (!this._textElements.has(itemId)) |
920 this._textElements.set(itemId, new StringMap()); | 941 this._textElements.set(itemId, new StringMap()); |
921 | 942 |
922 var value = this._valuesProvider(itemId, columnId); | 943 var value = this._valuesProvider(itemId, columnId); |
923 | 944 |
924 var textElement = /** @type {!HTMLSpanElement} */ (columnElement.createC
hild("span", "list-column-text")); | 945 var textElement = /** @type {!HTMLSpanElement} */ (columnElement.createC
hild("span", "list-column-text")); |
925 textElement.textContent = value; | |
926 textElement.title = value; | |
927 columnElement.addEventListener("click", rowClicked.bind(this), false); | 946 columnElement.addEventListener("click", rowClicked.bind(this), false); |
928 this._textElements.get(itemId).set(columnId, textElement); | 947 this._textElements.get(itemId).set(columnId, textElement); |
| 948 this._setTextElementContent(itemId, columnId, value); |
929 | 949 |
930 this._createEditElement(columnElement, column, itemId, value); | 950 this._createEditElement(columnElement, column, itemId, value); |
931 | 951 |
932 /** | 952 /** |
933 * @param {!Event} event | 953 * @param {!Event} event |
934 * @this {WebInspector.EditableSettingsList} | 954 * @this {WebInspector.EditableSettingsList} |
935 */ | 955 */ |
936 function rowClicked(event) | 956 function rowClicked(event) |
937 { | 957 { |
938 if (itemId === this._editingId) | 958 if (itemId === this._editingId) |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1049 | 1069 |
1050 /** | 1070 /** |
1051 * @param {?string} itemId | 1071 * @param {?string} itemId |
1052 * @return {boolean} | 1072 * @return {boolean} |
1053 */ | 1073 */ |
1054 _hasChanges: function(itemId) | 1074 _hasChanges: function(itemId) |
1055 { | 1075 { |
1056 var columns = this.columns(); | 1076 var columns = this.columns(); |
1057 for (var i = 0; i < columns.length; ++i) { | 1077 for (var i = 0; i < columns.length; ++i) { |
1058 var columnId = columns[i]; | 1078 var columnId = columns[i]; |
1059 var oldValue = itemId ? this._textElements.get(itemId).get(columnId)
.textContent : ""; | 1079 var oldValue = this._textElementContent(itemId, columnId); |
1060 var newValue = this._inputElements(itemId).get(columnId).value; | 1080 var newValue = this._inputElements(itemId).get(columnId).value; |
1061 if (oldValue !== newValue) | 1081 if (oldValue !== newValue) |
1062 return true; | 1082 return true; |
1063 } | 1083 } |
1064 return false; | 1084 return false; |
1065 }, | 1085 }, |
1066 | 1086 |
1067 /** | 1087 /** |
1068 * @param {?string} itemId | 1088 * @param {?string} itemId |
1069 * @param {!Event} event | 1089 * @param {!Event} event |
(...skipping 14 matching lines...) Expand all Loading... |
1084 delete this._editingId; | 1104 delete this._editingId; |
1085 | 1105 |
1086 if (!this._hasChanges(itemId)) | 1106 if (!this._hasChanges(itemId)) |
1087 return; | 1107 return; |
1088 | 1108 |
1089 if (!this._validateEdit(itemId)) { | 1109 if (!this._validateEdit(itemId)) { |
1090 var columns = this.columns(); | 1110 var columns = this.columns(); |
1091 for (var i = 0; i < columns.length; ++i) { | 1111 for (var i = 0; i < columns.length; ++i) { |
1092 var columnId = columns[i]; | 1112 var columnId = columns[i]; |
1093 var editElement = this._editInputElements.get(itemId).get(column
Id); | 1113 var editElement = this._editInputElements.get(itemId).get(column
Id); |
1094 this._setEditElementValue(editElement, this._textElements.get(it
emId).get(columnId).textContent); | 1114 this._setEditElementValue(editElement, this._textElementContent(
itemId, columnId)); |
1095 editElement.classList.remove("editable-item-error"); | 1115 editElement.classList.remove("editable-item-error"); |
1096 } | 1116 } |
1097 return; | 1117 return; |
1098 } | 1118 } |
1099 this._editHandler(itemId, this._data(itemId)); | 1119 this._editHandler(itemId, this._data(itemId)); |
1100 }, | 1120 }, |
1101 | 1121 |
1102 /** | 1122 /** |
1103 * @param {!Event} event | 1123 * @param {!Event} event |
1104 */ | 1124 */ |
(...skipping 15 matching lines...) Expand all Loading... |
1120 var columnId = columns[i]; | 1140 var columnId = columns[i]; |
1121 var editElement = this._addInputElements.get(columnId); | 1141 var editElement = this._addInputElements.get(columnId); |
1122 this._setEditElementValue(editElement, ""); | 1142 this._setEditElementValue(editElement, ""); |
1123 } | 1143 } |
1124 }, | 1144 }, |
1125 | 1145 |
1126 __proto__: WebInspector.SettingsList.prototype | 1146 __proto__: WebInspector.SettingsList.prototype |
1127 } | 1147 } |
1128 | 1148 |
1129 WebInspector._settingsController = new WebInspector.SettingsController(); | 1149 WebInspector._settingsController = new WebInspector.SettingsController(); |
OLD | NEW |