Explorar el Código

Added support for line wrap notifications (only for non-commands)

InputWindows now have to return WritableFrameContainers not just FrameContainers
Issue 907

git-svn-id: http://svn.dmdirc.com/trunk@3760 00569f92-eb28-0410-84fd-f71c24880f
tags/0.6
Chris Smith hace 16 años
padre
commit
3fbaf0e662

+ 4
- 5
src/com/dmdirc/addons/redirectplugin/FakeInputWindow.java Ver fichero

@@ -22,20 +22,18 @@
22 22
 
23 23
 package com.dmdirc.addons.redirectplugin;
24 24
 
25
-import com.dmdirc.FrameContainer;
26 25
 import com.dmdirc.MessageTarget;
27
-import com.dmdirc.util.StringTranscoder;
26
+import com.dmdirc.WritableFrameContainer;
28 27
 import com.dmdirc.commandparser.parsers.CommandParser;
29 28
 import com.dmdirc.config.ConfigManager;
30 29
 import com.dmdirc.ui.input.InputHandler;
31 30
 import com.dmdirc.ui.interfaces.InputWindow;
32 31
 import com.dmdirc.ui.messages.Formatter;
32
+import com.dmdirc.util.StringTranscoder;
33 33
 
34 34
 import java.beans.PropertyVetoException;
35 35
 import java.nio.charset.Charset;
36 36
 
37
-import javax.swing.Icon;
38
-
39 37
 /**
40 38
  * Implements a fake input window, which sends echoed text to the specified
41 39
  * chat window instead.
@@ -44,6 +42,7 @@ import javax.swing.Icon;
44 42
  */
45 43
 public class FakeInputWindow implements InputWindow {
46 44
     
45
+    /** The target for this window. */
47 46
     private final MessageTarget target;
48 47
 
49 48
     /**
@@ -105,7 +104,7 @@ public class FakeInputWindow implements InputWindow {
105 104
 
106 105
     /** {@inheritDoc} */
107 106
     @Override
108
-    public FrameContainer getContainer() {
107
+    public WritableFrameContainer getContainer() {
109 108
         return target;
110 109
     }
111 110
 

+ 3
- 5
src/com/dmdirc/ui/dummy/DummyChannelWindow.java Ver fichero

@@ -23,22 +23,20 @@
23 23
 package com.dmdirc.ui.dummy;
24 24
 
25 25
 import com.dmdirc.Channel;
26
-import com.dmdirc.FrameContainer;
27
-import com.dmdirc.util.StringTranscoder;
26
+import com.dmdirc.WritableFrameContainer;
28 27
 import com.dmdirc.commandparser.parsers.ChannelCommandParser;
29 28
 import com.dmdirc.commandparser.parsers.CommandParser;
30 29
 import com.dmdirc.config.ConfigManager;
31 30
 import com.dmdirc.parser.ChannelClientInfo;
32 31
 import com.dmdirc.ui.input.InputHandler;
33 32
 import com.dmdirc.ui.interfaces.ChannelWindow;
33
+import com.dmdirc.util.StringTranscoder;
34 34
 
35 35
 import java.beans.PropertyVetoException;
36 36
 import java.nio.charset.Charset;
37 37
 import java.util.Arrays;
38 38
 import java.util.List;
39 39
 
40
-import javax.swing.Icon;
41
-
42 40
 /**
43 41
  * Dummy channel window, used for testing.
44 42
  */
@@ -135,7 +133,7 @@ public final class DummyChannelWindow implements ChannelWindow {
135 133
 
136 134
     /** {@inheritDoc} */
137 135
     @Override
138
-    public FrameContainer getContainer() {
136
+    public WritableFrameContainer getContainer() {
139 137
         return parent;
140 138
     }
141 139
 

+ 3
- 6
src/com/dmdirc/ui/dummy/DummyInputWindow.java Ver fichero

@@ -22,21 +22,18 @@
22 22
 
23 23
 package com.dmdirc.ui.dummy;
24 24
 
25
-import com.dmdirc.FrameContainer;
26
-import com.dmdirc.util.StringTranscoder;
27 25
 import com.dmdirc.WritableFrameContainer;
28 26
 import com.dmdirc.commandparser.parsers.CommandParser;
29 27
 import com.dmdirc.commandparser.parsers.GlobalCommandParser;
30 28
 import com.dmdirc.config.ConfigManager;
31 29
 import com.dmdirc.ui.input.InputHandler;
32 30
 import com.dmdirc.ui.interfaces.InputWindow;
31
+import com.dmdirc.util.StringTranscoder;
33 32
 
34 33
 import java.beans.PropertyVetoException;
35 34
 import java.nio.charset.Charset;
36 35
 import java.util.Arrays;
37 36
 
38
-import javax.swing.Icon;
39
-
40 37
 /**
41 38
  * Dummy input window, used for testing.
42 39
  */
@@ -49,7 +46,7 @@ public class DummyInputWindow implements InputWindow {
49 46
     /** are we maximised? */
50 47
     private boolean maximised;
51 48
     /** Our container. */
52
-    private final FrameContainer container;
49
+    private final WritableFrameContainer container;
53 50
     
54 51
     /** 
55 52
      * Instantiates a new DummyInputWindow.
@@ -112,7 +109,7 @@ public class DummyInputWindow implements InputWindow {
112 109
     
113 110
     /** {@inheritDoc} */
114 111
     @Override
115
-    public FrameContainer getContainer() {
112
+    public WritableFrameContainer getContainer() {
116 113
         return container;
117 114
     }
118 115
     

+ 3
- 5
src/com/dmdirc/ui/dummy/DummyServerWindow.java Ver fichero

@@ -22,21 +22,19 @@
22 22
 
23 23
 package com.dmdirc.ui.dummy;
24 24
 
25
-import com.dmdirc.FrameContainer;
26 25
 import com.dmdirc.Server;
27
-import com.dmdirc.util.StringTranscoder;
26
+import com.dmdirc.WritableFrameContainer;
28 27
 import com.dmdirc.commandparser.parsers.CommandParser;
29 28
 import com.dmdirc.commandparser.parsers.ServerCommandParser;
30 29
 import com.dmdirc.config.ConfigManager;
31 30
 import com.dmdirc.ui.input.InputHandler;
32 31
 import com.dmdirc.ui.interfaces.ServerWindow;
32
+import com.dmdirc.util.StringTranscoder;
33 33
 
34 34
 import java.beans.PropertyVetoException;
35 35
 import java.nio.charset.Charset;
36 36
 import java.util.Arrays;
37 37
 
38
-import javax.swing.Icon;
39
-
40 38
 /**
41 39
  * Dummy server window, used for testing.
42 40
  */
@@ -113,7 +111,7 @@ public final class DummyServerWindow implements ServerWindow {
113 111
     
114 112
     /** {@inheritDoc} */
115 113
     @Override
116
-    public FrameContainer getContainer() {
114
+    public WritableFrameContainer getContainer() {
117 115
         return parent;
118 116
     }
119 117
     

+ 15
- 1
src/com/dmdirc/ui/input/InputHandler.java Ver fichero

@@ -235,7 +235,10 @@ public abstract class InputHandler implements ConfigChangeListener {
235 235
             
236 236
             // TODO: Wrapping commands
237 237
         } else {
238
-            // TODO: Wrapping text
238
+            final int lines = parentWindow.getContainer().getNumLines(text);
239
+            if (lines > 1) {
240
+                fireLineWrap(lines);
241
+            }
239 242
         }
240 243
     }
241 244
     
@@ -250,6 +253,17 @@ public abstract class InputHandler implements ConfigChangeListener {
250 253
         }
251 254
     }
252 255
     
256
+    /**
257
+     * Fires the "wrappedText" method of all validation listeners.
258
+     * 
259
+     * @param lines The number of lines that the text will wrap to
260
+     */
261
+    private void fireLineWrap(final int lines) {
262
+        for (InputValidationListener listener : listeners.get(InputValidationListener.class)) {
263
+            listener.wrappedText(lines);
264
+        }        
265
+    }
266
+    
253 267
     /**
254 268
      * Adds an InputValidationListener to this input handler.
255 269
      * 

+ 9
- 0
src/com/dmdirc/ui/interfaces/InputWindow.java Ver fichero

@@ -22,6 +22,7 @@
22 22
 
23 23
 package com.dmdirc.ui.interfaces;
24 24
 
25
+import com.dmdirc.WritableFrameContainer;
25 26
 import com.dmdirc.commandparser.parsers.CommandParser;
26 27
 import com.dmdirc.ui.input.InputHandler;
27 28
 
@@ -55,4 +56,12 @@ public interface InputWindow extends Window {
55 56
      */
56 57
     void setAwayIndicator(boolean isAway);
57 58
     
59
+    /**
60
+     * Retrieves the container that owns this command window.
61
+     *
62
+     * @return The container that owns this command window.
63
+     */
64
+    @Override
65
+    WritableFrameContainer getContainer();    
66
+    
58 67
 }

Loading…
Cancelar
Guardar