Revert "Revert "[Tizen] Add translatable text in TextLabel, TextField, TextEditor""
[platform/core/csapi/nui.git] / Tizen.NUI / src / internal / WeakEventHandler.cs
1 using System;\r
2 using System.Reflection;\r
3 \r
4 namespace Tizen.NUI\r
5 {\r
6     internal sealed class WeakEventHandler<TEventArgs> where TEventArgs : EventArgs\r
7     {\r
8         private readonly WeakReference _targetReference;\r
9         private readonly MethodInfo _method;\r
10 \r
11         public WeakEventHandler(EventHandler<TEventArgs> callback)\r
12         {\r
13             _method = callback.GetMethodInfo();           \r
14             _targetReference = new WeakReference(callback.Target, true);\r
15         }\r
16 \r
17         public void Handler(object sender, TEventArgs e)\r
18         {\r
19             var target = _targetReference.Target;\r
20             if (target != null)\r
21             {\r
22                 var callback = (Action<object, TEventArgs>)_method.CreateDelegate(typeof(Action<object, TEventArgs>), target);\r
23                 if (callback != null)\r
24                 {\r
25                     callback(sender, e);\r
26                 }\r
27             }\r
28         }\r
29 }\r
30 \r
31 }\r
32 \r