| OLD | NEW |
| 1 TestRunner.addResult('Test ListControl rendering for various height items case.'
); | 1 TestRunner.addResult('Test ListControl rendering for various height items case.'
); |
| 2 | 2 |
| 3 class Delegate { | 3 class Delegate { |
| 4 constructor() { | 4 constructor() { |
| 5 } | 5 } |
| 6 | 6 |
| 7 createElementForItem(item) { | 7 createElementForItem(item) { |
| 8 TestRunner.addResult('Creating element for ' + item); | 8 TestRunner.addResult('Creating element for ' + item); |
| 9 var element = document.createElement('div'); | 9 var element = document.createElement('div'); |
| 10 element.style.height = this.heightForItem(item) + 'px'; | 10 element.style.height = this.heightForItem(item) + 'px'; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 selectedItemChanged(from, to, fromElement, toElement) { | 23 selectedItemChanged(from, to, fromElement, toElement) { |
| 24 TestRunner.addResult('Selection changed from ' + from + ' to ' + to); | 24 TestRunner.addResult('Selection changed from ' + from + ' to ' + to); |
| 25 if (fromElement) | 25 if (fromElement) |
| 26 fromElement.classList.remove('selected'); | 26 fromElement.classList.remove('selected'); |
| 27 if (toElement) | 27 if (toElement) |
| 28 toElement.classList.add('selected'); | 28 toElement.classList.add('selected'); |
| 29 } | 29 } |
| 30 } | 30 } |
| 31 | 31 |
| 32 var delegate = new Delegate(); | 32 var delegate = new Delegate(); |
| 33 var list = new UI.ListControl(delegate, UI.ListMode.VariousHeightItems); | 33 var model = new UI.ListModel(); |
| 34 var list = new UI.ListControl(model, delegate, UI.ListMode.VariousHeightItems); |
| 34 list.element.style.height = '73px'; | 35 list.element.style.height = '73px'; |
| 35 UI.inspectorView.element.appendChild(list.element); | 36 UI.inspectorView.element.appendChild(list.element); |
| 36 | 37 |
| 37 function dumpList() | 38 function dumpList() |
| 38 { | 39 { |
| 39 var height = list.element.offsetHeight; | 40 var height = list.element.offsetHeight; |
| 40 TestRunner.addResult(`----list[length=${list.length()}][height=${height}]----`
); | 41 TestRunner.addResult(`----list[length=${model.length()}][height=${height}]----
`); |
| 41 for (var child of list.element.children) { | 42 for (var child of list.element.children) { |
| 42 var offsetTop = child.getBoundingClientRect().top - list.element.getBounding
ClientRect().top; | 43 var offsetTop = child.getBoundingClientRect().top - list.element.getBounding
ClientRect().top; |
| 43 var offsetBottom = child.getBoundingClientRect().bottom - list.element.getBo
undingClientRect().top; | 44 var offsetBottom = child.getBoundingClientRect().bottom - list.element.getBo
undingClientRect().top; |
| 44 var visible = (offsetBottom <= 0 || offsetTop >= height) ? ' ' : | 45 var visible = (offsetBottom <= 0 || offsetTop >= height) ? ' ' : |
| 45 (offsetTop >= 0 && offsetBottom <= height ? '*' : '+'); | 46 (offsetTop >= 0 && offsetBottom <= height ? '*' : '+'); |
| 46 var selected = child.classList.contains('selected') ? ' (selected)' : ''; | 47 var selected = child.classList.contains('selected') ? ' (selected)' : ''; |
| 47 var text = child === list._topElement ? 'top' : (child === list._bottomEleme
nt ? 'bottom' : child.textContent); | 48 var text = child === list._topElement ? 'top' : (child === list._bottomEleme
nt ? 'bottom' : child.textContent); |
| 48 TestRunner.addResult(`${visible}[${offsetTop}] ${text}${selected}`); | 49 TestRunner.addResult(`${visible}[${offsetTop}] ${text}${selected}`); |
| 49 } | 50 } |
| 50 TestRunner.addResult('offsets: ' + list._variableOffsets.join(' ')); | 51 TestRunner.addResult('offsets: ' + list._variableOffsets.join(' ')); |
| 51 TestRunner.addResult(''); | 52 TestRunner.addResult(''); |
| 52 } | 53 } |
| 53 | 54 |
| 54 TestRunner.addResult('Adding 0, 1, 2'); | 55 TestRunner.addResult('Adding 0, 1, 2'); |
| 55 list.replaceAllItems([0, 1, 2]); | 56 model.replaceAllItems([0, 1, 2]); |
| 56 dumpList(); | 57 dumpList(); |
| 57 | 58 |
| 58 TestRunner.addResult('Scrolling to 0'); | 59 TestRunner.addResult('Scrolling to 0'); |
| 59 list.scrollItemIntoView(0); | 60 list.scrollItemIntoView(0); |
| 60 dumpList(); | 61 dumpList(); |
| 61 | 62 |
| 62 TestRunner.addResult('Scrolling to 2'); | 63 TestRunner.addResult('Scrolling to 2'); |
| 63 list.scrollItemIntoView(2); | 64 list.scrollItemIntoView(2); |
| 64 dumpList(); | 65 dumpList(); |
| 65 | 66 |
| 66 TestRunner.addResult('Adding 3-20'); | 67 TestRunner.addResult('Adding 3-20'); |
| 67 list.replaceItemsInRange(3, 3, [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19]); | 68 model.replaceItemsInRange(3, 3, [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
, 17, 18, 19]); |
| 68 dumpList(); | 69 dumpList(); |
| 69 | 70 |
| 70 TestRunner.addResult('Scrolling to 11'); | 71 TestRunner.addResult('Scrolling to 11'); |
| 71 list.scrollItemIntoView(11); | 72 list.scrollItemIntoView(11); |
| 72 dumpList(); | 73 dumpList(); |
| 73 | 74 |
| 74 TestRunner.addResult('Scrolling to 19'); | 75 TestRunner.addResult('Scrolling to 19'); |
| 75 list.scrollItemIntoView(19); | 76 list.scrollItemIntoView(19); |
| 76 dumpList(); | 77 dumpList(); |
| 77 | 78 |
| 78 TestRunner.addResult('Scrolling to 16 (center)'); | 79 TestRunner.addResult('Scrolling to 16 (center)'); |
| 79 list.scrollItemIntoView(16, true); | 80 list.scrollItemIntoView(16, true); |
| 80 dumpList(); | 81 dumpList(); |
| 81 | 82 |
| 82 TestRunner.addResult('Scrolling to 3'); | 83 TestRunner.addResult('Scrolling to 3'); |
| 83 list.scrollItemIntoView(3); | 84 list.scrollItemIntoView(3); |
| 84 dumpList(); | 85 dumpList(); |
| 85 | 86 |
| 86 TestRunner.addResult('Replacing 0, 1 with 25-36'); | 87 TestRunner.addResult('Replacing 0, 1 with 25-36'); |
| 87 list.replaceItemsInRange(0, 2, [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36])
; | 88 model.replaceItemsInRange(0, 2, [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
); |
| 88 dumpList(); | 89 dumpList(); |
| 89 | 90 |
| 90 TestRunner.addResult('Scrolling to 18'); | 91 TestRunner.addResult('Scrolling to 18'); |
| 91 list.scrollItemIntoView(18); | 92 list.scrollItemIntoView(18); |
| 92 dumpList(); | 93 dumpList(); |
| 93 | 94 |
| 94 TestRunner.addResult('Replacing 25-36 with 0-1'); | 95 TestRunner.addResult('Replacing 25-36 with 0-1'); |
| 95 list.replaceItemsInRange(0, 12, [0, 1]); | 96 model.replaceItemsInRange(0, 12, [0, 1]); |
| 96 dumpList(); | 97 dumpList(); |
| 97 | 98 |
| 98 TestRunner.addResult('Replacing 16-18 with 45'); | 99 TestRunner.addResult('Replacing 16-18 with 45'); |
| 99 list.replaceItemsInRange(16, 19, [45]); | 100 model.replaceItemsInRange(16, 19, [45]); |
| 100 dumpList(); | 101 dumpList(); |
| 101 | 102 |
| 102 TestRunner.addResult('Scrolling to 4'); | 103 TestRunner.addResult('Scrolling to 4'); |
| 103 list.scrollItemIntoView(4); | 104 list.scrollItemIntoView(4); |
| 104 dumpList(); | 105 dumpList(); |
| 105 | 106 |
| 106 TestRunner.addResult('Replacing 45 with 16-18'); | 107 TestRunner.addResult('Replacing 45 with 16-18'); |
| 107 list.replaceItemsInRange(16, 17, [16, 17, 18]); | 108 model.replaceItemsInRange(16, 17, [16, 17, 18]); |
| 108 dumpList(); | 109 dumpList(); |
| 109 | 110 |
| 110 TestRunner.addResult('Resizing'); | 111 TestRunner.addResult('Resizing'); |
| 111 list.element.style.height = '190px'; | 112 list.element.style.height = '190px'; |
| 112 list.viewportResized(); | 113 list.viewportResized(); |
| 113 dumpList(); | 114 dumpList(); |
| 114 | 115 |
| 115 TestRunner.completeTest(); | 116 TestRunner.completeTest(); |
| OLD | NEW |