|
@@ -41,13 +41,12 @@ import com.dmdirc.updater.retrieving.BaseRetrievalResult;
|
41
|
41
|
import com.dmdirc.updater.retrieving.TypeSensitiveRetrievalStrategy;
|
42
|
42
|
import com.dmdirc.updater.retrieving.UpdateRetrievalListener;
|
43
|
43
|
import com.dmdirc.updater.retrieving.UpdateRetrievalResult;
|
|
44
|
+import com.dmdirc.util.collections.ListenerList;
|
44
|
45
|
|
45
|
46
|
import java.util.Collection;
|
46
|
47
|
import java.util.HashMap;
|
47
|
48
|
import java.util.Map;
|
48
|
49
|
|
49
|
|
-import lombok.ListenerSupport;
|
50
|
|
-
|
51
|
50
|
/**
|
52
|
51
|
* Generates some fake updates.
|
53
|
52
|
*/
|
|
@@ -125,14 +124,11 @@ public class FakeUpdates extends DebugCommand {
|
125
|
124
|
|
126
|
125
|
}
|
127
|
126
|
|
128
|
|
- /**
|
129
|
|
- * Fake update retriever which spits out {@link FakeRetrievalResult}s.
|
130
|
|
- * Fakes progress on updates and fakes around 1 in 4 failing to download.
|
131
|
|
- */
|
132
|
|
- @ListenerSupport(UpdateRetrievalListener.class)
|
133
|
127
|
private static class FakeUpdateRetriever
|
134
|
128
|
extends TypeSensitiveRetrievalStrategy<FakeUpdateCheckResult> {
|
135
|
129
|
|
|
130
|
+ private final ListenerList listeners = new ListenerList();
|
|
131
|
+
|
136
|
132
|
/**
|
137
|
133
|
* Creates a new {@link FakeUpdateRetriever}.
|
138
|
134
|
*/
|
|
@@ -140,6 +136,28 @@ public class FakeUpdates extends DebugCommand {
|
140
|
136
|
super(FakeUpdateCheckResult.class);
|
141
|
137
|
}
|
142
|
138
|
|
|
139
|
+ protected void fireRetrievalProgressChanged(final UpdateComponent component, final double progress) {
|
|
140
|
+ listeners.getCallable(UpdateRetrievalListener.class).retrievalProgressChanged(component, progress);
|
|
141
|
+ }
|
|
142
|
+
|
|
143
|
+ protected void fireRetrievalFailed(final UpdateComponent component) {
|
|
144
|
+ listeners.getCallable(UpdateRetrievalListener.class).retrievalFailed(component);
|
|
145
|
+ }
|
|
146
|
+
|
|
147
|
+ protected void fireRetrievalCompleted(final UpdateComponent component) {
|
|
148
|
+ listeners.getCallable(UpdateRetrievalListener.class).retrievalCompleted(component);
|
|
149
|
+ }
|
|
150
|
+
|
|
151
|
+ @Override
|
|
152
|
+ public void addUpdateRetrievalListener(final UpdateRetrievalListener listener) {
|
|
153
|
+ listeners.add(UpdateRetrievalListener.class, listener);
|
|
154
|
+ }
|
|
155
|
+
|
|
156
|
+ @Override
|
|
157
|
+ public void removeUpdateRetrievalListener(final UpdateRetrievalListener listener) {
|
|
158
|
+ listeners.remove(UpdateRetrievalListener.class, listener);
|
|
159
|
+ }
|
|
160
|
+
|
143
|
161
|
/** {@inheritDoc} */
|
144
|
162
|
@Override
|
145
|
163
|
protected UpdateRetrievalResult retrieveImpl(
|
|
@@ -192,10 +210,10 @@ public class FakeUpdates extends DebugCommand {
|
192
|
210
|
/**
|
193
|
211
|
* A fake update installer.
|
194
|
212
|
*/
|
195
|
|
- @ListenerSupport(UpdateInstallationListener.class)
|
196
|
213
|
private static class FakeUpdateInstaller
|
197
|
|
- extends TypeSensitiveInstallationStrategy
|
198
|
|
- <UpdateComponent, FakeRetrievalResult> {
|
|
214
|
+ extends TypeSensitiveInstallationStrategy<UpdateComponent, FakeRetrievalResult> {
|
|
215
|
+
|
|
216
|
+ private final ListenerList listeners = new ListenerList();
|
199
|
217
|
|
200
|
218
|
/**
|
201
|
219
|
* Creates a new {@link FakeUpdateInstaller}.
|
|
@@ -204,6 +222,28 @@ public class FakeUpdates extends DebugCommand {
|
204
|
222
|
super(UpdateComponent.class, FakeRetrievalResult.class);
|
205
|
223
|
}
|
206
|
224
|
|
|
225
|
+ protected void fireInstallCompleted(final UpdateComponent component) {
|
|
226
|
+ listeners.getCallable(UpdateInstallationListener.class).installCompleted(component);
|
|
227
|
+ }
|
|
228
|
+
|
|
229
|
+ protected void fireInstallFailed(final UpdateComponent component) {
|
|
230
|
+ listeners.getCallable(UpdateInstallationListener.class).installFailed(component);
|
|
231
|
+ }
|
|
232
|
+
|
|
233
|
+ protected void fireInstallProgressChanged(final UpdateComponent component, final double progress) {
|
|
234
|
+ listeners.getCallable(UpdateInstallationListener.class).installProgressChanged(component, progress);
|
|
235
|
+ }
|
|
236
|
+
|
|
237
|
+ @Override
|
|
238
|
+ public void addUpdateInstallationListener(final UpdateInstallationListener listener) {
|
|
239
|
+ listeners.add(UpdateInstallationListener.class, listener);
|
|
240
|
+ }
|
|
241
|
+
|
|
242
|
+ @Override
|
|
243
|
+ public void removeUpdateInstallationListener(final UpdateInstallationListener listener) {
|
|
244
|
+ listeners.remove(UpdateInstallationListener.class, listener);
|
|
245
|
+ }
|
|
246
|
+
|
207
|
247
|
/** {@inheritDoc} */
|
208
|
248
|
@Override
|
209
|
249
|
protected void installImpl(final UpdateComponent component,
|