1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.io;
21
22 import java.beans.PropertyChangeEvent;
23 import java.beans.PropertyChangeListener;
24
25 import org.xnap.util.Preferences;
26
27 /***
28 *
29 */
30 public class UploadBandwidthManager extends BandwidthManager
31 implements PropertyChangeListener{
32
33
34
35 private static Preferences prefs = Preferences.getInstance();
36 private static UploadBandwidthManager instance
37 = new UploadBandwidthManager();
38
39
40
41
42
43 public UploadBandwidthManager()
44 {
45 prefs.addPropertyChangeListener("uploadThrottle", this);
46 prefs.addPropertyChangeListener("throttleUploads", this);
47
48 updateThrottle();
49 }
50
51
52
53 public static UploadBandwidthManager getInstance()
54 {
55 return instance;
56 }
57
58 public void propertyChange(PropertyChangeEvent e)
59 {
60 updateThrottle();
61 }
62
63 private void updateThrottle()
64 {
65 boolean throttle = prefs.getThrottleUploads();
66 long b = prefs.getUploadThrottle() * 1024;
67 setBandwidth((throttle) ? b : 0);
68 }
69
70
71 }