Merge "[Telephony] Sample App implementation."
[platform/core/csapi/tizenfx.git] / test / ElmSharp.Test / TC / GenListTest3.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18 using ElmSharp;
19
20 namespace ElmSharp.Test
21 {
22     class GenListTest3 : TestCaseBase
23     {
24         public override string TestName => "GenListTest3";
25         public override string TestDescription => "To test group operation of GenList";
26
27         public override void Run(Window window)
28         {
29             Conformant conformant = new Conformant(window);
30             conformant.Show();
31             GenList list = new GenList(window)
32             {
33                 Homogeneous = false,
34                 AlignmentX = -1,
35                 AlignmentY = -1,
36                 WeightX = 1,
37                 WeightY = 1
38             };
39
40             GenItemClass groupClass = new GenItemClass("group_index")
41             {
42                 GetTextHandler = (obj, part) =>
43                 {
44                     return string.Format("{0} - {1}", (string)obj, part);
45                 }
46             };
47
48             GenListItem[] groups = new GenListItem[10];
49
50             for (int i = 0; i< 10; i++)
51             {
52                 groups[i] = list.Append(groupClass, string.Format("{0}", i) , GenListItemType.Group);
53             }
54             
55             
56             GenItemClass defaultClass = new GenItemClass("default")
57             {
58                 GetTextHandler = (obj, part) =>
59                 {
60                     return string.Format("{0} - {1}", (string)obj, part);
61                 },
62                 GetContentHandler = (obj, part) =>
63                 {
64                     Console.WriteLine("{0} - {1}", (string)obj, part);
65                     return null;
66                 }
67             };
68
69             GenItemClass fullyCustomizeClass = new GenItemClass("full")
70             {
71                 GetContentHandler = (obj, part) =>
72                 {
73                     Console.WriteLine("{0} part create requested", part);
74                     var btn = new Button(window) {
75                         Text = "Button in List",
76                         AlignmentX = -1,
77                         WeightX = 1,
78                     };
79                     return btn;
80                 }
81             };
82
83             for (int j = 0; j < 10; j++)
84             {
85                 for (int i = 0; i < 20; i++)
86                 {
87                     list.Append( j == 0 ? fullyCustomizeClass : defaultClass, string.Format("{0} Item", i), GenListItemType.Normal, groups[j]);
88                 }
89             }
90
91             list.Show();
92             list.ItemSelected += List_ItemSelected; ;
93             conformant.SetContent(list);
94         }
95
96         private void List_ItemSelected(object sender, GenListItemEventArgs e)
97         {
98             Console.WriteLine("{0} Item was selected", (string)(e.Item.Data));
99         }
100     }
101 }