From cd6039ce6cf07d5a1ee718a00211baf74a4433b7 Mon Sep 17 00:00:00 2001 From: Rossen Hristov Date: Mon, 3 Oct 2016 17:54:34 +0300 Subject: [PATCH] ListView item template selector --- tests/app/ui/list-view/list-view-tests.ts | 137 +++++++++++++++++- tns-core-modules/ui/builder/builder.d.ts | 1 + tns-core-modules/ui/builder/builder.ts | 100 ++++++++++--- .../ui/builder/component-builder.ts | 10 +- tns-core-modules/ui/core/view.d.ts | 15 ++ .../ui/list-view/list-view-common.ts | 96 +++++++++++- .../ui/list-view/list-view.android.ts | 82 +++++++++-- tns-core-modules/ui/list-view/list-view.d.ts | 10 ++ .../ui/list-view/list-view.ios.ts | 36 ++++- 9 files changed, 436 insertions(+), 51 deletions(-) diff --git a/tests/app/ui/list-view/list-view-tests.ts b/tests/app/ui/list-view/list-view-tests.ts index 05ece626a..b94b6dc59 100644 --- a/tests/app/ui/list-view/list-view-tests.ts +++ b/tests/app/ui/list-view/list-view-tests.ts @@ -8,6 +8,7 @@ import utils = require("utils/utils"); import { Label } from "ui/label"; import helper = require("../helper"); import { Page } from "ui/page"; +import { View, KeyedTemplate } from "ui/core/view"; // >> article-require-listview-module import listViewModule = require("ui/list-view"); @@ -581,7 +582,7 @@ export class ListViewTest extends testModule.UITest { if (platform.isAndroid) { // simulates Angular way of removing views (listView)._realizedItems.forEach((view, nativeView, map) => { - console.log("view: " + view); + //console.log("view: " + view); listView._removeView(view); }); this.tearDown(); @@ -640,6 +641,7 @@ export class ListViewTest extends testModule.UITest { for (let i = 0; i < count; i++) { items.push({ text: "Item " + i, + age: i, loadedCount: 0, unloadedCount: 0, onViewLoaded: function onViewLoaded(args) { @@ -767,10 +769,143 @@ export class ListViewTest extends testModule.UITest { private waitUntilListViewReady(): void { TKUnit.waitUntilReady(() => this.getNativeViewCount(this.testView) === this.testView.items.length); } + + // Multiple item templates tests + public test_ItemTemplateSelector_WhenWrongTemplateKeyIsSpecified_TheDefaultTemplateIsUsed() { + let listView = this.testView; + listView.height = 200; + + listView.itemTemplate = "