Revert "[Tizen] make SetClass() as public"
[platform/core/csapi/nui.git] / NUISamples / NUISamples / NUISamples.TizenTV / examples / as-is-test-sample.cs
1 using System;
2 using Tizen.NUI.BaseComponents;
3 using Tizen.NUI;
4
5 namespace AsIsTest
6 {
7     class Example : NUIApplication
8     {
9         private Timer myTimer;
10
11         private View myView;
12         private TextLabel myTextLabel;
13
14
15         //===========================
16         Layer layer;
17         View vi1, vi2, vi3;
18         TextLabel tl1, tl2, tl3;
19         ToggleButton tb1, tb2, tb3;
20
21
22         protected override void OnCreate()
23         {
24             base.OnCreate();
25
26             myView = new View();
27             myView.Size2D = new Size2D(100, 100);
28             myView.Position = new Position(100, 100, 0);
29             myView.BackgroundColor = Color.Red;
30             myView.Name = "myView";
31             myView.SizeWidth = 111;
32
33             Window.Instance.GetDefaultLayer().Add(myView);
34
35             myTextLabel = new TextLabel();
36             myTextLabel.Position = new Position(100, 100, 0);
37             myTextLabel.Size2D = new Size2D(100, 100);
38             myTextLabel.Name = "myTextLabel";
39
40             myView.Add(myTextLabel);
41
42             //===========================
43             LayerTest2();
44
45             myTimer = new Timer(500);
46             myTimer.Tick += Mytimer_Tick;
47             myTimer.Start();
48         }
49
50         private void ObjectDumpTrigger()
51         {
52             for (int i = 0; i < Window.LayerCount; i++)
53             {
54                 BFS(Window.GetLayer((uint)i), 1);
55             }
56         }
57
58
59
60         private static void BFS(Animatable o, int depth)
61         {
62             if (o == null)
63             {
64                 Tizen.Log.Fatal("NUI-APP", "##### o == null! return here!");
65                 return;
66             }
67
68             Tizen.Log.Fatal("NUI-APP", "##### o.GetTypeName()=" + o.GetTypeName());
69
70             if (o is View)
71             {
72                 View myView = o as View;
73
74                 if (o is TextLabel)
75                 {
76                     TextLabel myTextLabel = o as TextLabel;
77
78                     Tizen.Log.Fatal("NUI-APP", string.Format("it is TextLabel, {0}", myTextLabel.Text));
79
80                     return;
81                 }
82                 else
83                 {
84                     Tizen.Log.Fatal("NUI-APP", string.Format("it is not TextLaebl"));
85                 }
86
87                 for (int i = 0; i < myView.ChildCount; i++)
88                 {
89                     BFS(myView.GetChildAt((uint)i), depth + 1);
90                 }
91             }
92             else if (o is Layer)
93             {
94                 Layer myLayer = o as Layer;
95
96                 for (int i = 0; i < myLayer.ChildCount; i++)
97                 {
98                     BFS(myLayer.GetChildAt((uint)i), depth + 1);
99                 }
100             }
101             else
102             {
103                 return;
104             }
105         }
106
107         private bool Mytimer_Tick(object source, Timer.TickEventArgs e)
108         {
109             ObjectDumpTrigger();
110             ObjectDumpTrigger2();
111             Tizen.Log.Debug("NUI", " === Size property set/get test!");
112             myView.Size2D.Width += 5;  //this is not working, because stage's Size is Vector2 but view's Size is Vector3. need to figure out.
113             myView.SizeHeight += 5;
114             Tizen.Log.Debug("NUI", $" view's size width= {myView.Size2D.Width} heigh={myView.Size2D.Height}");
115
116             return true;
117         }
118
119
120
121         //======================================================================
122         void LayerTest2()
123         {
124             layer = new Layer();
125
126             vi1 = new View();
127             vi2 = new View();
128             vi3 = new View();
129
130             tl1 = new TextLabel();
131             tl2 = new TextLabel();
132             tl3 = new TextLabel();
133
134             tb1 = new ToggleButton();
135             tb2 = new ToggleButton();
136             tb3 = new ToggleButton();
137
138             vi1.Add(vi3);
139             vi1.Add(tl1);
140             vi1.Add(tl2);
141
142             vi3.Add(tb1);
143             vi3.Add(tb2);
144
145             vi2.Add(tl3);
146
147             layer.Add(vi1);
148             layer.Add(vi2);
149             layer.Add(tb3);
150
151             Window.Instance.AddLayer(layer);
152         }
153
154         void ObjectDumpTrigger2()
155         {
156             uint layerCnt = Window.LayerCount;
157             Tizen.Log.Fatal("NUI-APP", "layerCnt=" + layerCnt);
158
159             for (uint i = 0; i < layerCnt; i++)
160             {
161                 Tizen.Log.Fatal("NUI-APP", "T[" + DateTime.Now + "]__________ layer #" + i + " traverse");
162                 CheckViewsInLayer(Window.GetLayer(i));
163             }
164         }
165         void CheckViewsInLayer(Animatable obj)
166         {
167             if (obj is Layer)
168             {
169                 var layer = obj as Layer;
170                 if (layer == null)
171                 {
172                     Tizen.Log.Fatal("NUI-APP", "### layer is null! just return!");
173                     return;
174                 }
175                 uint childCnt = layer.ChildCount;
176                 if (childCnt > 0)
177                 {
178                     for (uint i = 0; i < childCnt; i++)
179                     {
180                         var temp = layer.GetChildAt(i) as View;
181                         Tizen.Log.Fatal("NUI-APP", "depth[1] child in layer! type=" + temp?.GetTypeName());
182                         ViewCheckRecurse(temp, 1);
183                     }
184                 }
185                 else
186                 {
187                     Tizen.Log.Fatal("NUI-APP", "### there is no child in this layer! just return!");
188                 }
189             }
190             else
191             {
192                 Tizen.Log.Fatal("NUI-APP", "obj is NOT Layer! do nothing!");
193             }
194         }
195         void ViewCheckRecurse(View view, int depth)
196         {
197             if (view)
198             {
199                 uint childCnt = view.ChildCount;
200                 if (childCnt > 0)
201                 {
202                     depth = depth + 1;
203                     for (uint i = 0; i < childCnt; i++)
204                     {
205                         var temp = view.GetChildAt(i) as View;
206                         Tizen.Log.Fatal("NUI-APP", "depth[" + depth + "] child in layer! type=" + temp.GetTypeName() + " AS-IS Test: IsView?=" + (temp is View) + " IsTextLabel?=" + (temp is TextLabel) );
207
208                         if (temp is TextLabel)
209                         {
210                             ToggleButton _toggleBt = temp as ToggleButton;
211                             if(_toggleBt == null)
212                             {
213                                 Tizen.Log.Debug("NUI", $"temp is TextLabel! try to do invalid cast! should return null! OK!GOOD!");
214                             }
215                             else
216                             {
217                                 Tizen.Log.Debug("NUI", $"temp is TextLabel! try to do invalid cast! should return null! BAD!ERROR!");
218                             }
219                         }
220                         else if (temp is ToggleButton)
221                         {
222                             TextLabel _textLb = temp as TextLabel;
223                             if(_textLb == null)
224                             {
225                                 Tizen.Log.Debug("NUI", $"temp is ToggleButton! try to do invalid cast! should return null! OK!GOOD!");
226                             }
227                             else
228                             {
229                                 Tizen.Log.Debug("NUI", $"temp is ToggleButton! try to do invalid cast! should return null! BAD!ERROR!");
230                             }
231                         }
232
233                         ViewCheckRecurse(temp, depth);
234                     }
235                 }
236                 else
237                 {
238                     //Tizen.Log.Fatal("NUI-APP", "depth[" + depth + "] child in layer! type=" + view.GetTypeName());
239                     return;
240                 }
241             }
242             else
243             {
244                 //Tizen.Log.Fatal("NUI-APP", "### view is null! just return!");
245             }
246         }
247
248         private static void _Main(string[] args)
249         {
250             //Create an Application
251             Example myProgram = new Example();
252             myProgram.Run(args);
253         }
254     }
255 }