Revert "[NUI] Dialog and AlertDialog code refactoring with adding DialogPage"
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Samples / Tizen.NUI.Samples / Samples / ScrollableBaseOutOfBoundSample.cs
1 
2 using Tizen.NUI.BaseComponents;
3
4 namespace Tizen.NUI.Samples
5 {
6     public class ScrollableBaseOutOfBoundSample : IExample
7     {
8         private View root;
9         private Components.ScrollableBase horizontalScrollableBase = null;
10         private TextLabel[] horizontalItems;
11
12         private Components.ScrollableBase verticalScrollableBase = null;
13         private TextLabel[] verticalItems;
14
15         public void Activate()
16         {
17             Window window = NUIApplication.GetDefaultWindow();
18             root = new View()
19             {
20                 Size = new Size(1920, 1080),
21                 BackgroundColor = new Color(0.7f, 0.9f, 0.8f, 1.0f),
22             };
23             root.Layout = new LinearLayout()
24             {
25                 LinearOrientation = LinearLayout.Orientation.Vertical,
26             };
27             window.Add(root);
28
29             CreateHorizontalScrollableBase();
30
31             CreateVerticalScrollableBase();
32         }
33
34         private void CreateHorizontalScrollableBase()
35         {
36             horizontalScrollableBase = new Components.ScrollableBase()
37             {
38                 Size = new Size(400, 300),
39                 ScrollingDirection = Components.ScrollableBase.Direction.Horizontal,
40                 HideScrollbar = false,
41             };
42             horizontalScrollableBase.ScrollOutOfBound += OnHorizontalScrollOutOfBound;
43
44             horizontalItems = new TextLabel[5];
45             for (int i = 0; i < 5; i++)
46             {
47                 horizontalItems[i] = new TextLabel
48                 {
49                     Position = new Position(i * 200, 0),
50                     Size = new Size(200, 300),
51                     PointSize = 12.0f,
52                     TextColor = Color.Black,
53                 };
54                 if (i % 2 == 0)
55                 {
56                     horizontalItems[i].BackgroundColor = Color.White;
57                 }
58                 else
59                 {
60                     horizontalItems[i].BackgroundColor = Color.Cyan;
61                 }
62                 horizontalScrollableBase.Add(horizontalItems[i]);
63             }
64             root.Add(horizontalScrollableBase);
65         }
66
67         private void OnHorizontalScrollOutOfBound(object sender, Components.ScrollOutOfBoundEventArgs e)
68         {
69             if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Left)
70             {
71                 horizontalItems[0].Text = "Reached at the left.";
72             }
73             else if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Right)
74             {
75                 horizontalItems[4].Text = "Reached at the right.";
76             }
77         }
78
79         private void CreateVerticalScrollableBase()
80         {
81             verticalScrollableBase = new Components.ScrollableBase()
82             {
83                 Size = new Size(400, 300),
84                 ScrollingDirection = Components.ScrollableBase.Direction.Vertical,
85                 EnableOverShootingEffect = true,
86                 HideScrollbar = false,
87             };
88             verticalScrollableBase.ScrollOutOfBound += OnVerticalScrollOutOfBound;
89
90             verticalItems = new TextLabel[5];
91             for (int i = 0; i < 5; i++)
92             {
93                 verticalItems[i] = new TextLabel
94                 {
95                     Position = new Position(0, i * 100),
96                     Size = new Size(400, 100),
97                     PointSize = 12.0f,
98                     TextColor = Color.Black,
99                 };
100                 if (i % 2 == 0)
101                 {
102                     verticalItems[i].BackgroundColor = Color.White;
103                 }
104                 else
105                 {
106                     verticalItems[i].BackgroundColor = Color.Cyan;
107                 }
108                 verticalScrollableBase.Add(verticalItems[i]);
109             }
110             root.Add(verticalScrollableBase);
111         }
112
113         private void OnVerticalScrollOutOfBound(object sender, Components.ScrollOutOfBoundEventArgs e)
114         {
115             if (e.Displacement > 100)
116             {
117                 if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Down)
118                 {
119                     verticalItems[0].Text = $"Reached at the top, panned displacement is {e.Displacement}.";
120                 }
121             }
122             else if (0 - e.Displacement > 100)
123             {
124                 if (e.PanDirection == Components.ScrollOutOfBoundEventArgs.Direction.Up)
125                 {
126                     verticalItems[4].Text = $"Reached at the bottom, panned displacement is {e.Displacement}.";
127                 }
128             }
129         }
130
131         public void Deactivate()
132         {
133             for (int i = 0; i < 5; i++)
134             {
135                 if (verticalItems[i] != null)
136                 {
137                     verticalScrollableBase.Remove(verticalItems[i]);
138                     verticalItems[i].Dispose();
139                 }
140             }
141             if (verticalScrollableBase != null)
142             {
143                 root.Remove(verticalScrollableBase);
144                 verticalScrollableBase.Dispose();
145             }
146             for (int i = 0; i < 5; i++)
147             {
148                 if (horizontalItems[i] != null)
149                 {
150                     horizontalScrollableBase.Remove(horizontalItems[i]);
151                     horizontalItems[i].Dispose();
152                 }
153             }
154             if (horizontalScrollableBase != null)
155             {
156                 root.Remove(horizontalScrollableBase);
157                 horizontalScrollableBase.Dispose();
158             }
159             root.Dispose();
160         }
161     }
162 }