|
@@ -22,12 +22,14 @@
|
22
|
22
|
|
23
|
23
|
package com.dmdirc.addons.ui_swing.components.statusbar;
|
24
|
24
|
|
25
|
|
-import com.dmdirc.addons.ui_swing.SwingController;
|
|
25
|
+import com.dmdirc.ClientModule.GlobalConfig;
|
|
26
|
+import com.dmdirc.addons.ui_swing.MainFrame;
|
26
|
27
|
import com.dmdirc.addons.ui_swing.UIUtilities;
|
|
28
|
+import com.dmdirc.interfaces.config.AggregateConfigProvider;
|
27
|
29
|
import com.dmdirc.interfaces.ui.StatusBarComponent;
|
|
30
|
+import com.dmdirc.ui.IconManager;
|
28
|
31
|
import com.dmdirc.ui.StatusMessage;
|
29
|
32
|
|
30
|
|
-import java.awt.Window;
|
31
|
33
|
import java.awt.event.MouseEvent;
|
32
|
34
|
import java.awt.event.MouseListener;
|
33
|
35
|
import java.util.Date;
|
|
@@ -36,6 +38,7 @@ import java.util.Timer;
|
36
|
38
|
import java.util.TimerTask;
|
37
|
39
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
38
|
40
|
|
|
41
|
+import javax.inject.Inject;
|
39
|
42
|
import javax.swing.JLabel;
|
40
|
43
|
import javax.swing.JPanel;
|
41
|
44
|
import javax.swing.SwingUtilities;
|
|
@@ -65,25 +68,28 @@ public class MessageLabel extends JPanel implements StatusBarComponent,
|
65
|
68
|
private StatusMessage currentMessage;
|
66
|
69
|
/** Timer to clear the message. */
|
67
|
70
|
private transient TimerTask messageTimer;
|
68
|
|
- /** Swing controller. */
|
69
|
|
- private final SwingController controller;
|
|
71
|
+ /** Icon manager to retrieve icons from. */
|
|
72
|
+ private final IconManager iconManager;
|
70
|
73
|
|
71
|
74
|
/**
|
72
|
75
|
* Instantiates a new message label.
|
73
|
76
|
*
|
74
|
|
- * @param controller Swing controller
|
|
77
|
+ * @param iconManager Icon manager to retrieve icons from
|
|
78
|
+ * @param config Config to read settings from
|
75
|
79
|
* @param parentWindow Parent window
|
76
|
80
|
*/
|
77
|
|
- public MessageLabel(final SwingController controller,
|
78
|
|
- final Window parentWindow) {
|
|
81
|
+ @Inject
|
|
82
|
+ public MessageLabel(
|
|
83
|
+ @GlobalConfig final AggregateConfigProvider config,
|
|
84
|
+ @GlobalConfig final IconManager iconManager,
|
|
85
|
+ final MainFrame parentWindow) {
|
79
|
86
|
super(new MigLayout("fill, ins 0, gap 0 0"));
|
80
|
|
- this.controller = controller;
|
|
87
|
+ this.iconManager = iconManager;
|
81
|
88
|
queue = new ConcurrentLinkedQueue<>();
|
82
|
|
- defaultMessage = new StatusMessage(null, "Ready.", null, -1,
|
83
|
|
- controller.getGlobalConfig());
|
|
89
|
+ defaultMessage = new StatusMessage(null, "Ready.", null, -1, config);
|
84
|
90
|
currentMessage = defaultMessage;
|
85
|
91
|
label = new JLabel();
|
86
|
|
- historyLabel = new MessagePopup(this, parentWindow, controller);
|
|
92
|
+ historyLabel = new MessagePopup(this, parentWindow, iconManager);
|
87
|
93
|
label.setText("Ready.");
|
88
|
94
|
label.setBorder(new SidelessEtchedBorder(
|
89
|
95
|
SidelessEtchedBorder.Side.RIGHT));
|
|
@@ -120,8 +126,7 @@ public class MessageLabel extends JPanel implements StatusBarComponent,
|
120
|
126
|
if (currentMessage.getIconType() == null) {
|
121
|
127
|
label.setIcon(null);
|
122
|
128
|
} else {
|
123
|
|
- label.setIcon(controller.getIconManager().getIcon(
|
124
|
|
- currentMessage.getIconType()));
|
|
129
|
+ label.setIcon(iconManager.getIcon(currentMessage.getIconType()));
|
125
|
130
|
}
|
126
|
131
|
label.setText(UIUtilities.clipStringifNeeded(MessageLabel.this,
|
127
|
132
|
currentMessage.getMessage(), getWidth()));
|
|
@@ -135,7 +140,7 @@ public class MessageLabel extends JPanel implements StatusBarComponent,
|
135
|
140
|
messageTimer = new MessageTimerTask(MessageLabel.this);
|
136
|
141
|
new Timer("SwingStatusBar messageTimer").schedule(
|
137
|
142
|
messageTimer, new Date(System.currentTimeMillis()
|
138
|
|
- + 250 + currentMessage.getTimeout() * 1000L));
|
|
143
|
+ + 250 + currentMessage.getTimeout() * 1000L));
|
139
|
144
|
}
|
140
|
145
|
}
|
141
|
146
|
});
|