[NUI] Adjust directory (#903)
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / XamlBinding / Trigger.cs
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Reflection;
5
6 using Tizen.NUI.Xaml;
7
8 namespace Tizen.NUI.Binding
9 {
10     /// <since_tizen> 6 </since_tizen>
11     /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
12     [EditorBrowsable(EditorBrowsableState.Never)]
13     [ContentProperty("Setters")]
14     [ProvideCompiled("Tizen.NUI.Xaml.Core.XamlC.PassthroughValueProvider")]
15     [AcceptEmptyServiceProvider]
16     public sealed class Trigger : TriggerBase, IValueProvider
17     {
18         /// <since_tizen> 6 </since_tizen>
19         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
20         [EditorBrowsable(EditorBrowsableState.Never)]
21         public Trigger([TypeConverter(typeof(TypeTypeConverter))] [Parameter("TargetType")] Type targetType) : base(new XamlPropertyCondition(), targetType)
22         {
23         }
24
25         /// <since_tizen> 6 </since_tizen>
26         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
27         [EditorBrowsable(EditorBrowsableState.Never)]
28         public BindableProperty Property
29         {
30             get { return ((XamlPropertyCondition)Condition).Property; }
31             set
32             {
33                 if (((XamlPropertyCondition)Condition).Property == value)
34                     return;
35                 if (IsSealed)
36                     throw new InvalidOperationException("Can not change Property once the Trigger has been applied.");
37                 OnPropertyChanging();
38                 ((XamlPropertyCondition)Condition).Property = value;
39                 OnPropertyChanged();
40             }
41         }
42
43         /// <since_tizen> 6 </since_tizen>
44         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
45         [EditorBrowsable(EditorBrowsableState.Never)]
46         public new IList<Setter> Setters
47         {
48             get { return base.Setters; }
49         }
50
51         /// <since_tizen> 6 </since_tizen>
52         /// This will be public opened in tizen_6.0 after ACR done. Before ACR, need to be hidden as inhouse API.
53         [EditorBrowsable(EditorBrowsableState.Never)]
54         public object Value
55         {
56             get { return ((XamlPropertyCondition)Condition).Value; }
57             set
58             {
59                 if (((XamlPropertyCondition)Condition).Value == value)
60                     return;
61                 if (IsSealed)
62                     throw new InvalidOperationException("Can not change Value once the Trigger has been applied.");
63                 OnPropertyChanging();
64                 ((XamlPropertyCondition)Condition).Value = value;
65                 OnPropertyChanged();
66             }
67         }
68
69         object IValueProvider.ProvideValue(IServiceProvider serviceProvider)
70         {
71             //This is no longer required
72             return this;
73         }
74     }
75 }