|
@@ -40,19 +40,18 @@ import javax.swing.JLabel;
|
40
|
40
|
import javax.swing.JPanel;
|
41
|
41
|
import javax.swing.SwingUtilities;
|
42
|
42
|
|
|
43
|
+import lombok.extern.slf4j.Slf4j;
|
|
44
|
+
|
43
|
45
|
import net.miginfocom.swing.MigLayout;
|
44
|
46
|
|
45
|
47
|
/**
|
46
|
48
|
* Message label handles showing messages in the status bar.
|
47
|
49
|
*/
|
|
50
|
+@Slf4j
|
48
|
51
|
public class MessageLabel extends JPanel implements StatusBarComponent,
|
49
|
52
|
MouseListener {
|
50
|
53
|
|
51
|
|
- /**
|
52
|
|
- * A version number for this class. It should be changed whenever the class
|
53
|
|
- * structure is changed (or anything else that would prevent serialized
|
54
|
|
- * objects being unserialized with the new class).
|
55
|
|
- */
|
|
54
|
+ /** Serial version UID. */
|
56
|
55
|
private static final long serialVersionUID = 1;
|
57
|
56
|
/** Default status bar message. */
|
58
|
57
|
private final StatusMessage defaultMessage;
|
|
@@ -99,8 +98,11 @@ public class MessageLabel extends JPanel implements StatusBarComponent,
|
99
|
98
|
* @param message Message object to show
|
100
|
99
|
*/
|
101
|
100
|
public void setMessage(final StatusMessage message) {
|
|
101
|
+ log.info("Adding message to queue {}", message);
|
102
|
102
|
queue.add(message);
|
|
103
|
+ log.debug("Queue size: {}", queue.size());
|
103
|
104
|
if (queue.size() == 1) {
|
|
105
|
+ log.info("Showing only messsage {}", message);
|
104
|
106
|
currentMessage = message;
|
105
|
107
|
updateCurrentMessage();
|
106
|
108
|
}
|
|
@@ -115,6 +117,7 @@ public class MessageLabel extends JPanel implements StatusBarComponent,
|
115
|
117
|
/** {@inheritDoc} */
|
116
|
118
|
@Override
|
117
|
119
|
public void run() {
|
|
120
|
+ log.info("Updating current message: {}", currentMessage);
|
118
|
121
|
if (currentMessage.getIconType() == null) {
|
119
|
122
|
label.setIcon(null);
|
120
|
123
|
} else {
|
|
@@ -125,9 +128,11 @@ public class MessageLabel extends JPanel implements StatusBarComponent,
|
125
|
128
|
currentMessage.getMessage(), getWidth()));
|
126
|
129
|
if (messageTimer != null && (System.currentTimeMillis()
|
127
|
130
|
- messageTimer.scheduledExecutionTime()) <= 0) {
|
|
131
|
+ log.debug("Cancelling message timer.");
|
128
|
132
|
messageTimer.cancel();
|
129
|
133
|
}
|
130
|
134
|
if (!defaultMessage.equals(currentMessage)) {
|
|
135
|
+ log.debug("Starting new message timer.");
|
131
|
136
|
messageTimer = new MessageTimerTask(MessageLabel.this);
|
132
|
137
|
new Timer("SwingStatusBar messageTimer").schedule(
|
133
|
138
|
messageTimer, new Date(System.currentTimeMillis()
|
|
@@ -141,11 +146,16 @@ public class MessageLabel extends JPanel implements StatusBarComponent,
|
141
|
146
|
* Removes the message from the status bar.
|
142
|
147
|
*/
|
143
|
148
|
public void clearMessage() {
|
|
149
|
+ log.info("Adding message to history {}", currentMessage);
|
144
|
150
|
historyLabel.addMessage(currentMessage);
|
|
151
|
+ log.debug("Queue size: {}", queue.size());
|
145
|
152
|
if (queue.size() <= 1) {
|
|
153
|
+ queue.remove();
|
|
154
|
+ log.info("Reverting to default message.");
|
146
|
155
|
currentMessage = defaultMessage;
|
147
|
156
|
} else {
|
148
|
157
|
currentMessage = queue.poll();
|
|
158
|
+ log.info("Showing next message in queue: {}", currentMessage);
|
149
|
159
|
}
|
150
|
160
|
updateCurrentMessage();
|
151
|
161
|
}
|