| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> | 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> |
| 4 * Copyright (C) 2009 Joseph Pecoraro | 4 * Copyright (C) 2009 Joseph Pecoraro |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * | 9 * |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 525 | 525 |
| 526 contextMenu.appendItem(Common.UIString('Expand all'), this.expandRecursively
.bind(this)); | 526 contextMenu.appendItem(Common.UIString('Expand all'), this.expandRecursively
.bind(this)); |
| 527 contextMenu.appendItem(Common.UIString('Collapse all'), this.collapseRecursi
vely.bind(this)); | 527 contextMenu.appendItem(Common.UIString('Collapse all'), this.collapseRecursi
vely.bind(this)); |
| 528 contextMenu.appendSeparator(); | 528 contextMenu.appendSeparator(); |
| 529 } | 529 } |
| 530 | 530 |
| 531 _startEditing() { | 531 _startEditing() { |
| 532 if (this.treeOutline.selectedDOMNode() !== this._node) | 532 if (this.treeOutline.selectedDOMNode() !== this._node) |
| 533 return; | 533 return; |
| 534 | 534 |
| 535 var listItem = this._listItemNode; | 535 var listItem = this.listItemElement; |
| 536 | 536 |
| 537 if (this._canAddAttributes) { | 537 if (this._canAddAttributes) { |
| 538 var attribute = listItem.getElementsByClassName('webkit-html-attribute')[0
]; | 538 var attribute = listItem.getElementsByClassName('webkit-html-attribute')[0
]; |
| 539 if (attribute) { | 539 if (attribute) { |
| 540 return this._startEditingAttribute( | 540 return this._startEditingAttribute( |
| 541 attribute, attribute.getElementsByClassName('webkit-html-attribute-v
alue')[0]); | 541 attribute, attribute.getElementsByClassName('webkit-html-attribute-v
alue')[0]); |
| 542 } | 542 } |
| 543 | 543 |
| 544 return this._addNewAttribute(); | 544 return this._addNewAttribute(); |
| 545 } | 545 } |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 742 this._htmlEditElement = createElement('div'); | 742 this._htmlEditElement = createElement('div'); |
| 743 this._htmlEditElement.className = 'source-code elements-tree-editor'; | 743 this._htmlEditElement.className = 'source-code elements-tree-editor'; |
| 744 | 744 |
| 745 // Hide header items. | 745 // Hide header items. |
| 746 var child = this.listItemElement.firstChild; | 746 var child = this.listItemElement.firstChild; |
| 747 while (child) { | 747 while (child) { |
| 748 child.style.display = 'none'; | 748 child.style.display = 'none'; |
| 749 child = child.nextSibling; | 749 child = child.nextSibling; |
| 750 } | 750 } |
| 751 // Hide children item. | 751 // Hide children item. |
| 752 if (this._childrenListNode) | 752 if (this.childrenListElement) |
| 753 this._childrenListNode.style.display = 'none'; | 753 this.childrenListElement.style.display = 'none'; |
| 754 // Append editor. | 754 // Append editor. |
| 755 this.listItemElement.appendChild(this._htmlEditElement); | 755 this.listItemElement.appendChild(this._htmlEditElement); |
| 756 this.listItemElement.classList.add('editing-as-html'); | 756 this.listItemElement.classList.add('editing-as-html'); |
| 757 this.treeOutline.element.addEventListener('mousedown', consume, false); | 757 this.treeOutline.element.addEventListener('mousedown', consume, false); |
| 758 | 758 |
| 759 /** | 759 /** |
| 760 * @param {!Element} element | 760 * @param {!Element} element |
| 761 * @param {string} newValue | 761 * @param {string} newValue |
| 762 * @this {Elements.ElementsTreeElement} | 762 * @this {Elements.ElementsTreeElement} |
| 763 */ | 763 */ |
| 764 function commit(element, newValue) { | 764 function commit(element, newValue) { |
| 765 commitCallback(initialValue, newValue); | 765 commitCallback(initialValue, newValue); |
| 766 dispose.call(this); | 766 dispose.call(this); |
| 767 } | 767 } |
| 768 | 768 |
| 769 /** | 769 /** |
| 770 * @this {Elements.ElementsTreeElement} | 770 * @this {Elements.ElementsTreeElement} |
| 771 */ | 771 */ |
| 772 function dispose() { | 772 function dispose() { |
| 773 disposeCallback(); | 773 disposeCallback(); |
| 774 delete this._editing; | 774 delete this._editing; |
| 775 this.treeOutline.setMultilineEditing(null); | 775 this.treeOutline.setMultilineEditing(null); |
| 776 | 776 |
| 777 this.listItemElement.classList.remove('editing-as-html'); | 777 this.listItemElement.classList.remove('editing-as-html'); |
| 778 // Remove editor. | 778 // Remove editor. |
| 779 this.listItemElement.removeChild(this._htmlEditElement); | 779 this.listItemElement.removeChild(this._htmlEditElement); |
| 780 delete this._htmlEditElement; | 780 delete this._htmlEditElement; |
| 781 // Unhide children item. | 781 // Unhide children item. |
| 782 if (this._childrenListNode) | 782 if (this.childrenListElement) |
| 783 this._childrenListNode.style.removeProperty('display'); | 783 this.childrenListElement.style.removeProperty('display'); |
| 784 // Unhide header items. | 784 // Unhide header items. |
| 785 var child = this.listItemElement.firstChild; | 785 var child = this.listItemElement.firstChild; |
| 786 while (child) { | 786 while (child) { |
| 787 child.style.removeProperty('display'); | 787 child.style.removeProperty('display'); |
| 788 child = child.nextSibling; | 788 child = child.nextSibling; |
| 789 } | 789 } |
| 790 | 790 |
| 791 this.treeOutline.element.removeEventListener('mousedown', consume, false); | 791 this.treeOutline.element.removeEventListener('mousedown', consume, false); |
| 792 this.treeOutline.focus(); | 792 this.treeOutline.focus(); |
| 793 } | 793 } |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 954 | 954 |
| 955 /** | 955 /** |
| 956 * @return {!Element} | 956 * @return {!Element} |
| 957 */ | 957 */ |
| 958 _distinctClosingTagElement() { | 958 _distinctClosingTagElement() { |
| 959 // FIXME: Improve the Tree Element / Outline Abstraction to prevent crawling
the DOM | 959 // FIXME: Improve the Tree Element / Outline Abstraction to prevent crawling
the DOM |
| 960 | 960 |
| 961 // For an expanded element, it will be the last element with class "close" | 961 // For an expanded element, it will be the last element with class "close" |
| 962 // in the child element list. | 962 // in the child element list. |
| 963 if (this.expanded) { | 963 if (this.expanded) { |
| 964 var closers = this._childrenListNode.querySelectorAll('.close'); | 964 var closers = this.childrenListElement.querySelectorAll('.close'); |
| 965 return closers[closers.length - 1]; | 965 return closers[closers.length - 1]; |
| 966 } | 966 } |
| 967 | 967 |
| 968 // Remaining cases are single line non-expanded elements with a closing | 968 // Remaining cases are single line non-expanded elements with a closing |
| 969 // tag, or HTML elements without a closing tag (such as <br>). Return | 969 // tag, or HTML elements without a closing tag (such as <br>). Return |
| 970 // null in the case where there isn't a closing tag. | 970 // null in the case where there isn't a closing tag. |
| 971 var tags = this.listItemElement.getElementsByClassName('webkit-html-tag'); | 971 var tags = this.listItemElement.getElementsByClassName('webkit-html-tag'); |
| 972 return (tags.length === 1 ? null : tags[tags.length - 1]); | 972 return (tags.length === 1 ? null : tags[tags.length - 1]); |
| 973 } | 973 } |
| 974 | 974 |
| (...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1564 | 1564 |
| 1565 // A union of HTML4 and HTML5-Draft elements that explicitly | 1565 // A union of HTML4 and HTML5-Draft elements that explicitly |
| 1566 // or implicitly (for HTML5) forbid the closing tag. | 1566 // or implicitly (for HTML5) forbid the closing tag. |
| 1567 Elements.ElementsTreeElement.ForbiddenClosingTagElements = new Set([ | 1567 Elements.ElementsTreeElement.ForbiddenClosingTagElements = new Set([ |
| 1568 'area', 'base', 'basefont', 'br', 'canvas', 'col', 'command', 'embed',
'frame', 'hr', | 1568 'area', 'base', 'basefont', 'br', 'canvas', 'col', 'command', 'embed',
'frame', 'hr', |
| 1569 'img', 'input', 'keygen', 'link', 'menuitem', 'meta', 'param', 'source',
'track', 'wbr' | 1569 'img', 'input', 'keygen', 'link', 'menuitem', 'meta', 'param', 'source',
'track', 'wbr' |
| 1570 ]); | 1570 ]); |
| 1571 | 1571 |
| 1572 // These tags we do not allow editing their tag name. | 1572 // These tags we do not allow editing their tag name. |
| 1573 Elements.ElementsTreeElement.EditTagBlacklist = new Set(['html', 'head', 'body']
); | 1573 Elements.ElementsTreeElement.EditTagBlacklist = new Set(['html', 'head', 'body']
); |
| OLD | NEW |