Merge "[Telephony] Sample App implementation."
[platform/core/csapi/tizenfx.git] / test / ElmSharp.Test / TC / CalendarTest1.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 System.Collections.Generic;
19 using ElmSharp;
20
21 namespace ElmSharp.Test
22 {
23     class CalendarTest1 : TestCaseBase
24     {
25         public override string TestName => "CalendarTest1";
26         public override string TestDescription => "To test basic operation of Calendar";
27
28         public override void Run(Window window)
29         {
30             Background bg = new Background(window);
31             bg.Color = Color.White;
32             bg.Move(0, 0);
33             bg.Resize(window.ScreenSize.Width, window.ScreenSize.Height);
34             bg.Show();
35
36             Calendar calendar = new Calendar(window)
37             {
38                 FirstDayOfWeek = DayOfWeek.Monday,
39                 WeekDayNames = new List<string>() { "S", "M", "T", "W", "T", "F", "S" },
40                 MinimumYear = DateTime.MinValue.Year,
41                 MaximumYear = DateTime.MaxValue.Year
42             };
43
44             IList<CalendarMark> marks = new List<CalendarMark>();
45
46             var mark = calendar.AddMark("holiday", DateTime.Today, CalendarMarkRepeatType.Unique);
47             marks.Add(mark);
48
49             Label label1 = new Label(window)
50             {
51                 Text = string.Format("WeekDayLabel.Count={0}", calendar.WeekDayNames.Count),
52                 Color = Color.Black,
53             };
54
55             Label label2 = new Label(window)
56             {
57                 Text = string.Format("WeekDayLabel.FirstDayOfWeek={0}", calendar.FirstDayOfWeek),
58                 Color = Color.Black,
59             };
60
61             Label label3 = new Label(window)
62             {
63                 Text = string.Format("WeekDayLabel.SelectedDate={0}", calendar.SelectedDate),
64                 Color = Color.Black,
65             };
66
67             var selectMode = new Label(window)
68             {
69                 Text = string.Format("SelectMode = {0}", calendar.SelectMode),
70                 Color = Color.Black,
71             };
72
73             var addMark = new Button(window)
74             {
75                 Text = "Add Mark"
76             };
77
78             var i = 1;
79
80             addMark.Clicked += (s, e) =>
81             {
82                 var newMark = calendar.AddMark("holiday", DateTime.Today.AddDays(i), CalendarMarkRepeatType.Unique);
83
84                 Console.WriteLine("Call Add Mark : " + DateTime.Today.AddDays(i));
85                 marks.Add(newMark);
86                 calendar.DrawMarks();
87                 i++;
88             };
89
90             var delMark = new Button(window)
91             {
92                 Text = "Delete Mark"
93             };
94
95             delMark.Clicked += (s, e) =>
96             {
97                 if (marks.Count > 0)
98                 {
99                     calendar.DeleteMark(marks[0]);
100                     marks.Remove(marks[0]);
101                     calendar.DrawMarks();
102                 }
103             };
104
105             var changeMode = new Button(window)
106             {
107                 Text = "Change Select Mode"
108             };
109
110             changeMode.Clicked += (s, e) =>
111             {
112                 if (calendar.SelectMode == CalendarSelectMode.Always || calendar.SelectMode == CalendarSelectMode.Default)
113                 {
114                     calendar.SelectMode = CalendarSelectMode.None;
115                 }
116                 else if (calendar.SelectMode == CalendarSelectMode.None)
117                 {
118                     calendar.SelectMode = CalendarSelectMode.OnDemand;
119                 }
120                 else
121                 {
122                     calendar.SelectMode = CalendarSelectMode.Always;
123                 }
124                 selectMode.Text = string.Format("SelectMode = {0}", calendar.SelectMode);
125             };
126
127             calendar.DateChanged += (object sender, DateChangedEventArgs e) =>
128             {
129                 label1.Text = string.Format("Old.Day={0}, Month={1}, Year={2}", e.OldDate.Day, e.OldDate.Month, e.OldDate.Year);
130                 label2.Text = string.Format("New.Day={0}, Month={1}, Year={2}", e.NewDate.Day, e.NewDate.Month, e.NewDate.Year);
131                 label3.Text = string.Format("SelectedDate={0}", calendar.SelectedDate);
132             };
133
134             calendar.DisplayedMonthChanged += (object sender, DisplayedMonthChangedEventArgs e) =>
135             {
136                 label3.Text = string.Format("Old Month={0}, New Month={1}", e.OldMonth, e.NewMonth);
137             };
138
139             var label4 = new Label(window)
140             {
141                 Text = string.Format("Selectable={0}", calendar.Selectable),
142                 Color = Color.Black,
143             };
144
145             var changeSelectable = new Button(window)
146             {
147                 Text = "Change Selectable"
148             };
149
150             calendar.Selectable = CalendarSelectable.Month;
151
152             changeSelectable.Clicked += (s, e) =>
153             {
154                 if (calendar.Selectable == CalendarSelectable.None)
155                 {
156                     calendar.Selectable = CalendarSelectable.Year;
157                 }
158                 else if (calendar.Selectable == CalendarSelectable.Year)
159                 {
160                     calendar.Selectable = CalendarSelectable.Month;
161                 }
162                 else if (calendar.Selectable == CalendarSelectable.Month)
163                 {
164                     calendar.Selectable = CalendarSelectable.Day;
165                 }
166                 else
167                 {
168                     calendar.Selectable = CalendarSelectable.None;
169                 }
170                 label4.Text = string.Format("Selectable={0}", calendar.Selectable);
171             };
172
173             var setTime = new Button(window)
174             {
175                 Text = "Set 2015,1,1",
176             };
177
178             setTime.Clicked += (s, e) =>
179             {
180                 calendar.SelectedDate = new DateTime(2015, 1, 1);
181             };
182
183             calendar.Resize(600, 600);
184             calendar.Move(0, 150);
185             calendar.Show();
186
187             label1.Resize(600, 30);
188             label1.Move(0, 0);
189             label1.Show();
190
191             label2.Resize(600, 30);
192             label2.Move(0, 30);
193             label2.Show();
194
195             label3.Resize(600, 30);
196             label3.Move(0, 60);
197             label3.Show();
198
199             selectMode.Resize(600, 30);
200             selectMode.Move(0, 90);
201             selectMode.Show();
202
203             addMark.Resize(600, 100);
204             addMark.Move(0, 750);
205             addMark.Show();
206
207             delMark.Resize(600, 100);
208             delMark.Move(0, 850);
209             delMark.Show();
210
211             changeMode.Resize(600, 100);
212             changeMode.Move(0, 950);
213             changeMode.Show();
214
215             label4.Resize(600, 30);
216             label4.Move(0, 1050);
217             label4.Show();
218
219             changeSelectable.Resize(600, 100);
220             changeSelectable.Move(0, 1080);
221             changeSelectable.Show();
222
223             setTime.Resize(600, 100);
224             setTime.Move(0, 1180);
225             setTime.Show();
226         }
227     }
228 }