diff --git a/list.html b/list.html
index 7904b903324d53c6180fd920dda49cee5d6d809e..0595a55b6420f635cb6dfe7645176f08e896ac18 100644
--- a/list.html
+++ b/list.html
@@ -11,7 +11,17 @@
require(['vs/base/browser/ui/list/listTest'], function (test) {
test.setupList(document.getElementById('list'));
- document.getElementById('list-add').onclick = test.addPersonToList;
+ document.getElementById('list-add').onclick = function () {
+ test.addPersonToList(
+ document.getElementById('list-name').value,
+ document.getElementById('list-index').value
+ );
+ };
+ document.getElementById('list-remove').onclick = function () {
+ test.removePersonFromList(
+ document.getElementById('list-index').value
+ );
+ };
document.getElementById('list-addmany').onclick = test.addManyPeopleToList;
document.getElementById('list-addmanyreal').onclick = test.addManyRealPeopleToList;
document.getElementById('list-addmanyboring').onclick = test.addManyBoringPeopleToList;
@@ -34,7 +44,10 @@
+
+
+
diff --git a/src/vs/base/browser/ui/list/listTest.ts b/src/vs/base/browser/ui/list/listTest.ts
index a170bf64aea99b79861e9151d9dba8d652511c15..76e2e5693f0dc12536be1b6b1a0274740907e109 100644
--- a/src/vs/base/browser/ui/list/listTest.ts
+++ b/src/vs/base/browser/ui/list/listTest.ts
@@ -70,10 +70,25 @@ export function setupList(container: HTMLElement) {
list = new List(container, new Delegate(), { person: renderer });
}
-export function addPersonToList() {
- const person = generatePerson();
+export function addPersonToList(name, index) {
+ const person = name
+ ? { name, height: 24 }
+ : {
+ name: new Array(16).join().replace(/(.|$)/g, function(){return ((Math.random()*36)|0).toString(36);}),
+ height: 24
+ };
+
+ index = Number(index);
+ index = index === NaN ? list.length : Math.min(index, list.length);
- list.splice(list.length, 0, person);
+ list.splice(index, 0, person);
+}
+
+export function removePersonFromList(index) {
+ index = Number(index);
+ index = index === NaN ? list.length : Math.min(index, list.length - 1);
+
+ list.splice(index, 1);
}
export function addManyPeopleToList() {
@@ -129,7 +144,7 @@ export function setupTree(container: HTMLElement) {
}
export function addPersonToTree() {
- treeModel.push(generatePerson());
+ treeModel.unshift(generatePerson());
tree.refresh();
}
@@ -162,6 +177,6 @@ export function addManyBoringPeopleToTree() {
people.push(generateBoringPerson());
}
- treeModel.push(...people);
+ treeModel.unshift(...people);
tree.refresh();
}
\ No newline at end of file