[NUI] Add Navigator and Page classes
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Samples / Tizen.NUI.Samples / Samples / NavigatorSample.cs
1 using Tizen.NUI.BaseComponents;
2 using Tizen.NUI.Components;
3
4 namespace Tizen.NUI.Samples
5 {
6     public class NavigatorSample : IExample
7     {
8         private Navigator navigator;
9         private Page firstPage, secondPage;
10         private Button firstButton, secondButton;
11
12         public void Activate()
13         {
14             Window window = NUIApplication.GetDefaultWindow();
15
16             navigator = new Navigator()
17             {
18                 WidthResizePolicy = ResizePolicyType.FillToParent,
19                 HeightResizePolicy = ResizePolicyType.FillToParent
20             };
21             window.Add(navigator);
22
23             CreateFirstPage();
24         }
25
26         private void CreateFirstPage()
27         {
28             firstButton = new Button()
29             {
30                 Text = "First Page",
31                 WidthResizePolicy = ResizePolicyType.FillToParent,
32                 HeightResizePolicy = ResizePolicyType.FillToParent,
33             };
34             firstButton.Clicked += (object sender, ClickedEventArgs e) =>
35             {
36                 CreateSecondPage();
37             };
38
39             firstPage = new Page(firstButton);
40             firstPage.Appearing += (object sender, PageAppearingEventArgs e) =>
41             {
42                 global::System.Console.WriteLine("First Page is appearing!");
43             };
44             firstPage.Disappearing += (object sender, PageDisappearingEventArgs e) =>
45             {
46                 global::System.Console.WriteLine("First Page is disappearing!");
47             };
48
49             navigator.Push(firstPage);
50         }
51
52         private void CreateSecondPage()
53         {
54             secondButton = new Button()
55             {
56                 Text = "Second Page",
57                 WidthResizePolicy = ResizePolicyType.FillToParent,
58                 HeightResizePolicy = ResizePolicyType.FillToParent,
59             };
60             secondButton.Clicked += (object sender, ClickedEventArgs e) =>
61             {
62                 navigator.Pop();
63             };
64
65             secondPage = new Page(secondButton);
66             secondPage.Appearing += (object sender, PageAppearingEventArgs e) =>
67             {
68                 global::System.Console.WriteLine("Second Page is appearing!");
69             };
70             secondPage.Disappearing += (object sender, PageDisappearingEventArgs e) =>
71             {
72                 global::System.Console.WriteLine("Second Page is disappearing!");
73             };
74
75             navigator.Push(secondPage);
76         }
77
78         public void Deactivate()
79         {
80             if (navigator != null)
81             {
82                 NUIApplication.GetDefaultWindow().Remove(navigator);
83
84                 firstButton.Dispose();
85                 firstButton = null;
86
87                 secondButton.Dispose();
88                 secondButton = null;
89
90                 firstPage.Dispose();
91                 firstPage = null;
92
93                 secondPage.Dispose();
94                 secondPage = null;
95
96                 navigator.Dispose();
97                 navigator = null;
98             }
99         }
100     }
101 }