|
@@ -24,6 +24,8 @@ package com.dmdirc.ui.messages;
|
24
|
24
|
|
25
|
25
|
import com.dmdirc.DMDircMBassador;
|
26
|
26
|
import com.dmdirc.FrameContainer;
|
|
27
|
+import com.dmdirc.config.ConfigBinding;
|
|
28
|
+import com.dmdirc.events.DisplayProperty;
|
27
|
29
|
import com.dmdirc.events.DisplayableEvent;
|
28
|
30
|
import com.dmdirc.interfaces.config.AggregateConfigProvider;
|
29
|
31
|
|
|
@@ -36,14 +38,15 @@ import net.engio.mbassy.listener.Handler;
|
36
|
38
|
*/
|
37
|
39
|
public class BackBuffer {
|
38
|
40
|
|
39
|
|
- private static final boolean ENABLED = false;
|
40
|
|
-
|
41
|
41
|
private final IRCDocument document;
|
42
|
42
|
private final Styliser styliser;
|
43
|
43
|
private final DMDircMBassador eventBus;
|
44
|
44
|
private final EventFormatter formatter;
|
45
|
45
|
private final AggregateConfigProvider configProvider;
|
46
|
46
|
|
|
47
|
+ @ConfigBinding(domain="dev", key="enableNewEvents")
|
|
48
|
+ private boolean enabled;
|
|
49
|
+
|
47
|
50
|
public BackBuffer(
|
48
|
51
|
final FrameContainer owner,
|
49
|
52
|
final ColourManagerFactory colourManagerFactory,
|
|
@@ -64,6 +67,7 @@ public class BackBuffer {
|
64
|
67
|
*/
|
65
|
68
|
public void startAddingEvents() {
|
66
|
69
|
eventBus.subscribe(this);
|
|
70
|
+ configProvider.getBinder().bind(this, BackBuffer.class);
|
67
|
71
|
}
|
68
|
72
|
|
69
|
73
|
/**
|
|
@@ -71,6 +75,7 @@ public class BackBuffer {
|
71
|
75
|
*/
|
72
|
76
|
public void stopAddingEvents() {
|
73
|
77
|
eventBus.unsubscribe(this);
|
|
78
|
+ configProvider.getBinder().unbind(this);
|
74
|
79
|
}
|
75
|
80
|
|
76
|
81
|
/**
|
|
@@ -80,10 +85,11 @@ public class BackBuffer {
|
80
|
85
|
*/
|
81
|
86
|
@Handler
|
82
|
87
|
public void handleDisplayableEvent(final DisplayableEvent event) {
|
83
|
|
- if (ENABLED) {
|
|
88
|
+ if (enabled && !event.getDisplayProperty(DisplayProperty.HANDLED).isPresent()) {
|
84
|
89
|
formatter.format(event)
|
85
|
90
|
.map(l -> new String[]{getTimestamp(event), l})
|
86
|
91
|
.ifPresent(document::addText);
|
|
92
|
+ event.setDisplayProperty(DisplayProperty.HANDLED, Boolean.TRUE);
|
87
|
93
|
}
|
88
|
94
|
}
|
89
|
95
|
|