2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Collections.Generic;
21 namespace ElmSharp.Test
23 class CalendarTest1 : TestCaseBase
25 public override string TestName => "CalendarTest1";
26 public override string TestDescription => "To test basic operation of Calendar";
28 public override void Run(Window window)
30 Background bg = new Background(window);
31 bg.Color = Color.White;
33 bg.Resize(window.ScreenSize.Width, window.ScreenSize.Height);
36 Calendar calendar = new Calendar(window)
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
44 IList<CalendarMark> marks = new List<CalendarMark>();
46 var mark = calendar.AddMark("holiday", DateTime.Today, CalendarMarkRepeatType.Unique);
49 Label label1 = new Label(window)
51 Text = string.Format("WeekDayLabel.Count={0}", calendar.WeekDayNames.Count),
55 Label label2 = new Label(window)
57 Text = string.Format("WeekDayLabel.FirstDayOfWeek={0}", calendar.FirstDayOfWeek),
61 Label label3 = new Label(window)
63 Text = string.Format("WeekDayLabel.SelectedDate={0}", calendar.SelectedDate),
67 var selectMode = new Label(window)
69 Text = string.Format("SelectMode = {0}", calendar.SelectMode),
73 var addMark = new Button(window)
80 addMark.Clicked += (s, e) =>
82 var newMark = calendar.AddMark("holiday", DateTime.Today.AddDays(i), CalendarMarkRepeatType.Unique);
84 Console.WriteLine("Call Add Mark : " + DateTime.Today.AddDays(i));
90 var delMark = new Button(window)
95 delMark.Clicked += (s, e) =>
99 calendar.DeleteMark(marks[0]);
100 marks.Remove(marks[0]);
101 calendar.DrawMarks();
105 var changeMode = new Button(window)
107 Text = "Change Select Mode"
110 changeMode.Clicked += (s, e) =>
112 if (calendar.SelectMode == CalendarSelectMode.Always || calendar.SelectMode == CalendarSelectMode.Default)
114 calendar.SelectMode = CalendarSelectMode.None;
116 else if (calendar.SelectMode == CalendarSelectMode.None)
118 calendar.SelectMode = CalendarSelectMode.OnDemand;
122 calendar.SelectMode = CalendarSelectMode.Always;
124 selectMode.Text = string.Format("SelectMode = {0}", calendar.SelectMode);
127 calendar.DateChanged += (object sender, DateChangedEventArgs e) =>
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);
134 calendar.DisplayedMonthChanged += (object sender, DisplayedMonthChangedEventArgs e) =>
136 label3.Text = string.Format("Old Month={0}, New Month={1}", e.OldMonth, e.NewMonth);
139 var label4 = new Label(window)
141 Text = string.Format("Selectable={0}", calendar.Selectable),
145 var changeSelectable = new Button(window)
147 Text = "Change Selectable"
150 calendar.Selectable = CalendarSelectable.Month;
152 changeSelectable.Clicked += (s, e) =>
154 if (calendar.Selectable == CalendarSelectable.None)
156 calendar.Selectable = CalendarSelectable.Year;
158 else if (calendar.Selectable == CalendarSelectable.Year)
160 calendar.Selectable = CalendarSelectable.Month;
162 else if (calendar.Selectable == CalendarSelectable.Month)
164 calendar.Selectable = CalendarSelectable.Day;
168 calendar.Selectable = CalendarSelectable.None;
170 label4.Text = string.Format("Selectable={0}", calendar.Selectable);
173 var setTime = new Button(window)
175 Text = "Set 2015,1,1",
178 setTime.Clicked += (s, e) =>
180 calendar.SelectedDate = new DateTime(2015, 1, 1);
183 calendar.Resize(600, 600);
184 calendar.Move(0, 150);
187 label1.Resize(600, 30);
191 label2.Resize(600, 30);
195 label3.Resize(600, 30);
199 selectMode.Resize(600, 30);
200 selectMode.Move(0, 90);
203 addMark.Resize(600, 100);
204 addMark.Move(0, 750);
207 delMark.Resize(600, 100);
208 delMark.Move(0, 850);
211 changeMode.Resize(600, 100);
212 changeMode.Move(0, 950);
215 label4.Resize(600, 30);
216 label4.Move(0, 1050);
219 changeSelectable.Resize(600, 100);
220 changeSelectable.Move(0, 1080);
221 changeSelectable.Show();
223 setTime.Resize(600, 100);
224 setTime.Move(0, 1180);