1+ import { Component , OnInit } from "@angular/core" ;
2+ import { ObservableArray } from "tns-core-modules/data/observable-array" ;
3+ import { DataItem } from "../dataItem" ;
4+ import { DataItemService } from "../dataItem.service" ;
5+ import { ListViewEventData , RadListView } from "nativescript-ui-listview" ;
6+
7+ @Component ( {
8+ moduleId : module . id ,
9+ selector : "tk-listview-item-selection" ,
10+ providers : [ DataItemService ] ,
11+ templateUrl : "styling-item-selection.component.html" ,
12+ styleUrls : [ "styling-item-selection.component.css" ]
13+ } )
14+ export class StylingItemSelectionComponent implements OnInit {
15+ private _dataItems : ObservableArray < DataItem > ;
16+ private _selectedItems : string ;
17+
18+ constructor ( private _dataItemService : DataItemService ) {
19+ }
20+
21+ get dataItems ( ) : ObservableArray < DataItem > {
22+ return this . _dataItems ;
23+ }
24+
25+ get selectedItems ( ) : string {
26+ return this . _selectedItems ;
27+ }
28+
29+ ngOnInit ( ) {
30+ this . _dataItems = new ObservableArray ( this . _dataItemService . getNameEmailDataItems ( ) ) ;
31+ this . _selectedItems = "No Selected items." ;
32+ }
33+
34+ public onItemSelected ( args : ListViewEventData ) {
35+ const listview = args . object as RadListView ;
36+ const selectedItems = listview . getSelectedItems ( ) as Array < DataItem > ;
37+ let selectedTitles = "Selected items: " ;
38+ for ( let i = 0 ; i < selectedItems . length ; i ++ ) {
39+ selectedTitles += selectedItems [ i ] ? selectedItems [ i ] . name : "" ;
40+
41+ if ( i < selectedItems . length - 1 ) {
42+ selectedTitles += ", " ;
43+ }
44+ }
45+
46+ this . _selectedItems = selectedTitles ;
47+ const selectedItem = this . dataItems . getItem ( args . index ) ;
48+ console . log ( "Item selected: " + ( selectedItem && selectedItem . name ) ) ;
49+ }
50+
51+ public onItemSelecting ( args : ListViewEventData ) {
52+ const listview = args . object as RadListView ;
53+ const selectedItems = listview . getSelectedItems ( ) as Array < DataItem > ;
54+ let selectedTitles = "Selecting item: " ;
55+ for ( let i = 0 ; i < selectedItems . length ; i ++ ) {
56+ selectedTitles += selectedItems [ i ] ? selectedItems [ i ] . name : "" ;
57+
58+ if ( i < selectedItems . length - 1 ) {
59+ selectedTitles += ", " ;
60+ }
61+ }
62+
63+ const selectedItem = this . dataItems . getItem ( args . index ) ;
64+ console . log ( "Item selecting: " + ( selectedItem && selectedItem . name ) ) ;
65+ }
66+
67+ public onItemDeselecting ( args : ListViewEventData ) {
68+ const listview = args . object as RadListView ;
69+ const selectedItems = listview . getSelectedItems ( ) as Array < DataItem > ;
70+ let selectedTitles = "Deselecting item: " ;
71+ for ( let i = 0 ; i < selectedItems . length ; i ++ ) {
72+ selectedTitles += selectedItems [ i ] ? selectedItems [ i ] . name : "" ;
73+
74+ if ( i < selectedItems . length - 1 ) {
75+ selectedTitles += ", " ;
76+ }
77+ }
78+
79+ const selectedItem = this . dataItems . getItem ( args . index ) ;
80+ console . log ( "Item deselecting: " + ( selectedItem && selectedItem . name ) ) ;
81+ }
82+
83+ public onItemDeselected ( args : ListViewEventData ) {
84+ const listview = args . object as RadListView ;
85+ const selectedItems = listview . getSelectedItems ( ) as Array < DataItem > ;
86+ if ( selectedItems . length > 0 ) {
87+ let selectedTitles = "Selected items: " ;
88+ for ( let i = 0 ; i < selectedItems . length ; i ++ ) {
89+ selectedTitles += selectedItems [ i ] ? selectedItems [ i ] . name : "" ;
90+
91+ if ( i < selectedItems . length - 1 ) {
92+ selectedTitles += ", " ;
93+ }
94+ }
95+
96+ this . _selectedItems = selectedTitles ;
97+ } else {
98+ this . _selectedItems = "No Selected items." ;
99+ }
100+
101+ const deselectedItem = this . dataItems . getItem ( args . index ) ;
102+ console . log ( "Item deselected: " + ( deselectedItem && deselectedItem . name ) ) ;
103+ }
104+ }
0 commit comments