Browse Source

Plugin support for core changes.

pull/191/head
Chris Smith 9 years ago
parent
commit
7a348af9db

+ 5
- 5
ui_swing/src/com/dmdirc/addons/ui_swing/textpane/BasicTextLineRenderer.java View File

@@ -22,7 +22,7 @@
22 22
 
23 23
 package com.dmdirc.addons.ui_swing.textpane;
24 24
 
25
-import com.dmdirc.ui.messages.IRCDocument;
25
+import com.dmdirc.ui.messages.CachingDocument;
26 26
 import com.dmdirc.ui.messages.LinePosition;
27 27
 
28 28
 import java.awt.Color;
@@ -56,7 +56,7 @@ public class BasicTextLineRenderer implements LineRenderer {
56 56
 
57 57
     private final TextPane textPane;
58 58
     private final TextPaneCanvas textPaneCanvas;
59
-    private final IRCDocument document;
59
+    private final CachingDocument<AttributedString> document;
60 60
 
61 61
     private final Color highlightForeground;
62 62
     private final Color highlightBackground;
@@ -65,7 +65,7 @@ public class BasicTextLineRenderer implements LineRenderer {
65 65
     private final List<TextLayout> wrappedLines = new ArrayList<>();
66 66
 
67 67
     public BasicTextLineRenderer(final TextPane textPane, final TextPaneCanvas textPaneCanvas,
68
-            final IRCDocument document) {
68
+            final CachingDocument<AttributedString> document) {
69 69
         this.textPane = textPane;
70 70
         this.textPaneCanvas = textPaneCanvas;
71 71
         this.document = document;
@@ -81,7 +81,7 @@ public class BasicTextLineRenderer implements LineRenderer {
81 81
         result.textLayouts.clear();
82 82
         result.totalHeight = 0;
83 83
 
84
-        final AttributedCharacterIterator iterator = document.getStyledLine(line);
84
+        final AttributedCharacterIterator iterator = document.getStyledLine(line).getIterator();
85 85
         final int paragraphStart = iterator.getBeginIndex();
86 86
         final int paragraphEnd = iterator.getEndIndex();
87 87
         final LineBreakMeasurer lineMeasurer = new LineBreakMeasurer(iterator,
@@ -195,7 +195,7 @@ public class BasicTextLineRenderer implements LineRenderer {
195 195
     private void doHighlight(final int line, final Shape logicalHighlightShape, final Graphics2D g,
196 196
             final float canvasWidth, final float drawPosY, final float drawPosX,
197 197
             final int firstChar, final int lastChar, final boolean isEndOfLine) {
198
-        final AttributedCharacterIterator iterator = document.getStyledLine(line);
198
+        final AttributedCharacterIterator iterator = document.getStyledLine(line).getIterator();
199 199
         final AttributedString as = new AttributedString(iterator, firstChar, lastChar);
200 200
 
201 201
         as.addAttribute(TextAttribute.FOREGROUND, highlightForeground);

+ 4
- 1
ui_swing/src/com/dmdirc/addons/ui_swing/textpane/TextPane.java View File

@@ -26,6 +26,8 @@ import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.addons.ui_swing.UIUtilities;
27 27
 import com.dmdirc.interfaces.config.ConfigChangeListener;
28 28
 import com.dmdirc.interfaces.ui.Window;
29
+import com.dmdirc.ui.messages.AttributedStringMessageMaker;
30
+import com.dmdirc.ui.messages.CachingDocument;
29 31
 import com.dmdirc.ui.messages.IRCDocument;
30 32
 import com.dmdirc.ui.messages.IRCDocumentListener;
31 33
 import com.dmdirc.ui.messages.LinePosition;
@@ -117,7 +119,8 @@ public final class TextPane extends JComponent implements MouseWheelListener,
117 119
         backgroundPainter = new BackgroundPainter(frame.getContainer().getConfigManager(),
118 120
                 urlBuilder, eventBus, configDomain, "textpanebackground",
119 121
                 "textpanebackgroundoption");
120
-        canvas = new TextPaneCanvas(this, document);
122
+        canvas = new TextPaneCanvas(this,
123
+                new CachingDocument<>(document, new AttributedStringMessageMaker()));
121 124
         final JXLayer<JComponent> layer = new JXLayer<>(canvas);
122 125
         layer.setUI(backgroundPainter);
123 126
         add(layer, "dock center");

+ 7
- 5
ui_swing/src/com/dmdirc/addons/ui_swing/textpane/TextPaneCanvas.java View File

@@ -26,7 +26,7 @@ import com.dmdirc.addons.ui_swing.UIUtilities;
26 26
 import com.dmdirc.addons.ui_swing.textpane.LineRenderer.RenderResult;
27 27
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
28 28
 import com.dmdirc.interfaces.config.ConfigChangeListener;
29
-import com.dmdirc.ui.messages.IRCDocument;
29
+import com.dmdirc.ui.messages.CachingDocument;
30 30
 import com.dmdirc.ui.messages.IRCTextAttribute;
31 31
 import com.dmdirc.ui.messages.LinePosition;
32 32
 import com.dmdirc.util.StringUtils;
@@ -48,6 +48,7 @@ import java.awt.font.TextHitInfo;
48 48
 import java.awt.font.TextLayout;
49 49
 import java.awt.geom.Rectangle2D;
50 50
 import java.text.AttributedCharacterIterator;
51
+import java.text.AttributedString;
51 52
 import java.util.HashMap;
52 53
 import java.util.Map;
53 54
 
@@ -69,7 +70,7 @@ class TextPaneCanvas extends JPanel implements MouseInputListener,
69 70
     /** Both Side padding for textpane. */
70 71
     private static final int DOUBLE_SIDE_PADDING = SINGLE_SIDE_PADDING * 2;
71 72
     /** IRCDocument. */
72
-    private final IRCDocument document;
73
+    private final CachingDocument<AttributedString> document;
73 74
     /** parent textpane. */
74 75
     private final TextPane textPane;
75 76
     /** Position -> LineInfo. */
@@ -99,7 +100,7 @@ class TextPaneCanvas extends JPanel implements MouseInputListener,
99 100
      * @param parent   parent text pane for the canvas
100 101
      * @param document IRCDocument to be displayed
101 102
      */
102
-    public TextPaneCanvas(final TextPane parent, final IRCDocument document) {
103
+    public TextPaneCanvas(final TextPane parent, final CachingDocument<AttributedString> document) {
103 104
         this.document = document;
104 105
         textPane = parent;
105 106
         this.manager = parent.getWindow().getContainer().getConfigManager();
@@ -260,7 +261,7 @@ class TextPaneCanvas extends JPanel implements MouseInputListener,
260 261
     public ClickTypeValue getClickType(final LineInfo lineInfo) {
261 262
         if (lineInfo.getLine() != -1) {
262 263
             final AttributedCharacterIterator iterator = document.getStyledLine(
263
-                    lineInfo.getLine());
264
+                    lineInfo.getLine()).getIterator();
264 265
             final int index = lineInfo.getIndex();
265 266
             if (index >= iterator.getBeginIndex() && index <= iterator.getEndIndex()) {
266 267
                 iterator.setIndex(lineInfo.getIndex());
@@ -361,7 +362,8 @@ class TextPaneCanvas extends JPanel implements MouseInputListener,
361 362
 
362 363
         if (lineInfo.getLine() != -1
363 364
                 && document.getLine(lineInfo.getLine()) != null) {
364
-            final AttributedCharacterIterator iterator = document.getStyledLine(lineInfo.getLine());
365
+            final AttributedCharacterIterator iterator =
366
+                    document.getStyledLine(lineInfo.getLine()).getIterator();
365 367
 
366 368
             if (lineInfo.getIndex() < iterator.getBeginIndex()
367 369
                     || lineInfo.getIndex() > iterator.getEndIndex()) {

Loading…
Cancel
Save