Develop and Download Open Source Software

Browse Subversion Repository

Contents of /branches/ProcessWatchImpl/Scone/EventSurrogater.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 44 - (show annotations) (download)
Tue Dec 15 16:20:54 2009 UTC (14 years, 3 months ago) by netseed
File size: 5953 byte(s)


1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Windows;
6 using System.Windows.Controls;
7 using System.Windows.Data;
8 using System.Windows.Documents;
9 using System.Windows.Input;
10 using System.Windows.Media;
11 using System.Windows.Media.Imaging;
12 using System.Windows.Navigation;
13 using System.Windows.Shapes;
14 using Toast.IsolationLayer;
15 using Toast.NicoNico;
16 using SeedCreate.CommonLibrary;
17
18 namespace Toast.Scone
19 {
20 public sealed class EventSurrogater : Control
21 {
22 private EventHandler detectWatchProcessStart;
23 private EventHandler detectWatchProcessTerminated;
24 private EventHandler<DetectProgramStartEventArgs> programStarted;
25 private EventHandler<ReceieverStatusChangedEventArgs> receieverStatusChanged;
26 private EventHandler<TwitterWriteFailedEventArgs> twitterWriteFaild;
27
28
29
30 public EventSurrogater()
31 {
32 detectWatchProcessStart
33 = new EventHandler((sender, e) => OnWatchingProcessStarted(new RoutedEventArgs(WatchingProcessStartedEvent)));
34
35 detectWatchProcessTerminated
36 = new EventHandler((sender, e) => OnWachingProcessTerminated(new RoutedEventArgs(WathingProcessTerminatedEvent)));
37
38 programStarted
39 = new EventHandler<DetectProgramStartEventArgs>((sender, e) =>
40 OnProgramStarted(new MonoFieldRoutedEventArgs<LiveProgram>(e.TargetProgram, ProgramStartedEvent)));
41
42 receieverStatusChanged
43 = new EventHandler<ReceieverStatusChangedEventArgs>((sender, e) =>
44 OnRecieverStatusChanged(new RoutedPropertyChangedEventArgs<ReceieverStatus>(e.Recent, e.Current, ReceieverStatusChangedEvent)));
45
46 twitterWriteFaild
47 = new EventHandler<TwitterWriteFailedEventArgs>((sender, e) =>
48 OnTwitterWriteFailed(new MonoFieldRoutedEventArgs<Pair<Exception, string>>(new Pair<Exception, string>(e.CauseException, e.Message),
49 TwitterWriteFailedEvent)));
50
51
52 }
53
54 public static readonly DependencyProperty TargetProperty
55 = DependencyProperty.Register("Target", typeof(Toast.IsolationLayer.Repeater),
56 typeof(EventSurrogater));
57
58 public Repeater Target
59 {
60 get
61 {
62 return (Repeater)GetValue(TargetProperty);
63 }
64 set
65 {
66 if (value == null)
67 {
68 throw new NullReferenceException("Target is null referenced");
69 }
70
71 if (!object.ReferenceEquals(Target,value))
72 {
73 Target.DetectWatchProcessStarted -= detectWatchProcessStart;
74 Target.DetectWatchProcessTerminated -= detectWatchProcessTerminated;
75 Target.ProgramStarted -= programStarted;
76 Target.ReceieverStatusChanged -= receieverStatusChanged;
77 Target.TwitterWriteFailed -= twitterWriteFaild;
78 }
79
80 value.DetectWatchProcessStarted += detectWatchProcessStart;
81 value.DetectWatchProcessTerminated += detectWatchProcessTerminated;
82 value.ProgramStarted += programStarted;
83 value.ReceieverStatusChanged += receieverStatusChanged;
84 value.TwitterWriteFailed += twitterWriteFaild;
85
86 SetValue(TargetProperty, value);
87 }
88 }
89
90
91 public static readonly RoutedEvent WatchingProcessStartedEvent
92 = EventManager.RegisterRoutedEvent("WatchingProcessStarted", RoutingStrategy.Bubble, typeof(RoutedEventHandler),
93 typeof(EventSurrogater));
94
95 public event RoutedEventHandler WatchingProcessStarted
96 {
97 add
98 {
99 AddHandler(WatchingProcessStartedEvent, value);
100 }
101 remove
102 {
103 RemoveHandler(WatchingProcessStartedEvent, value);
104 }
105 }
106
107
108 private void OnWatchingProcessStarted(RoutedEventArgs e)
109 {
110 RaiseEvent(e);
111 }
112
113
114 public static readonly RoutedEvent WathingProcessTerminatedEvent =
115 EventManager.RegisterRoutedEvent("WatchingProcessTerminated", RoutingStrategy.Bubble,
116 typeof(RoutedEventHandler), typeof(EventSurrogater));
117
118 public event RoutedEventHandler WatchingProcessTerminated
119 {
120 add
121 {
122 AddHandler(WathingProcessTerminatedEvent, value);
123 }
124 remove
125 {
126 RemoveHandler(WathingProcessTerminatedEvent, value);
127 }
128 }
129
130
131 private void OnWachingProcessTerminated(RoutedEventArgs e)
132 {
133 RaiseEvent(e);
134 }
135
136
137 public static readonly RoutedEvent ProgramStartedEvent
138 = EventManager.RegisterRoutedEvent("ProgramStarted", RoutingStrategy.Bubble,
139 typeof(MonoFieldRoutedEventHandler<LiveProgram>), typeof(EventSurrogater));
140
141 public event MonoFieldRoutedEventHandler<LiveProgram> ProgramStarted
142 {
143 add
144 {
145 AddHandler(ProgramStartedEvent, value);
146 }
147 remove
148 {
149 RemoveHandler(ProgramStartedEvent, value);
150 }
151 }
152
153 private void OnProgramStarted(MonoFieldRoutedEventArgs<LiveProgram> e)
154 {
155 RaiseEvent(e);
156 }
157
158
159 public static readonly RoutedEvent ReceieverStatusChangedEvent=
160 EventManager.RegisterRoutedEvent("ReceiverStatusChanged", RoutingStrategy.Bubble,
161 typeof(RoutedPropertyChangedEventHandler<ReceieverStatus>),typeof(EventSurrogater));
162
163 public event RoutedPropertyChangedEventHandler<ReceieverStatus> ReceieverStatusChanged
164 {
165 add
166 {
167 AddHandler(ReceieverStatusChangedEvent, value);
168 }
169 remove
170 {
171 RemoveHandler(ReceieverStatusChangedEvent, value);
172 }
173 }
174
175 private void OnRecieverStatusChanged(RoutedPropertyChangedEventArgs<ReceieverStatus> e)
176 {
177 RaiseEvent(e);
178 }
179
180 public static readonly RoutedEvent TwitterWriteFailedEvent=
181 EventManager.RegisterRoutedEvent("TwitterWriteFailed", RoutingStrategy.Bubble,
182 typeof(MonoFieldRoutedEventArgs<SeedCreate.CommonLibrary.Pair<System.Net.WebException,string>>),
183 typeof(EventSurrogater));
184
185 public event MonoFieldRoutedEventHandler<SeedCreate.CommonLibrary.Pair<Exception, string>> TwitterWriteFailed
186 {
187 add
188 {
189 AddHandler(TwitterWriteFailedEvent, value);
190 }
191 remove
192 {
193 RemoveHandler(TwitterWriteFailedEvent, value);
194 }
195 }
196
197 private void OnTwitterWriteFailed(MonoFieldRoutedEventArgs<Pair<Exception, string>> e)
198 {
199 RaiseEvent(e);
200 }
201
202
203
204
205
206 }
207 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26