/** * Adds a line highlight. * * @param line The line to highlight. This is zero-based. * @param color The color to highlight the line with. * @throws BadLocationException If <code>line</code> is an invalid line * number. * @see #removeLineHighlight(Object) * @see #removeAllLineHighlights() */ public Object addLineHighlight(int line, Color color) throws BadLocationException { if (lineHighlightManager==null) { lineHighlightManager = new LineHighlightManager(this); } return lineHighlightManager.addLineHighlight(line, color); }
@Test public void testRemoveAllHighlights() throws BadLocationException { lhm.addLineHighlight(1, Color.BLUE); lhm.addLineHighlight(1, Color.RED); Assert.assertEquals(2, lhm.getLineHighlightCount()); lhm.removeAllLineHighlights(); Assert.assertEquals(0, lhm.getLineHighlightCount()); } }
@Test public void testAddLineHighlight_removeOneOfTwoOnOneLine() throws BadLocationException { Object tag1 = lhm.addLineHighlight(1, Color.BLUE); Object tag2 = lhm.addLineHighlight(1, Color.RED); Assert.assertEquals(2, lhm.getLineHighlightCount()); // We're testing a bug here with LineHighlightInfo's equals() method, // so we use a foolproof method of telling the two tags apart. lhm.removeLineHighlight(tag1); List<Object> remainingTags = lhm.getCurrentLineHighlightTags(); Assert.assertEquals(1, remainingTags.size()); Assert.assertTrue(tag2 == remainingTags.get(0)); }
@Test public void testAddLineHighlight_twoOnSameLine() throws BadLocationException { Assert.assertEquals(0, lhm.getLineHighlightCount()); lhm.addLineHighlight(1, Color.BLUE); Assert.assertEquals(1, lhm.getLineHighlightCount()); lhm.addLineHighlight(1, Color.RED); Assert.assertEquals(2, lhm.getLineHighlightCount()); }
/** * Removes a line highlight. * * @param tag The tag of the line highlight to remove. * @see #addLineHighlight(int, Color) */ public void removeLineHighlight(Object tag) { if (tag instanceof LineHighlightInfo) { lineHighlights.remove(tag); repaintLine((LineHighlightInfo)tag); } }
/** * Removes all line highlights. * * @see #removeLineHighlight(Object) */ public void removeAllLineHighlights() { if (lineHighlightManager!=null) { lineHighlightManager.removeAllLineHighlights(); } }
/** * Removes a line highlight. * * @param tag The tag of the line highlight to remove. * @see #removeAllLineHighlights() * @see #addLineHighlight(int, Color) */ public void removeLineHighlight(Object tag) { if (lineHighlightManager!=null) { lineHighlightManager.removeLineHighlight(tag); } }
/** * Paints any line highlights. * * @param g The graphics context. */ protected void paintLineHighlights(Graphics g) { LineHighlightManager lhm = textArea.getLineHighlightManager(); if (lhm!=null) { lhm.paintLineHighlights(g); } }
@Test public void testGetCurrentLineHighlightTags() throws BadLocationException { Assert.assertEquals(0, lhm.getCurrentLineHighlightTags().size()); Object tag1 = lhm.addLineHighlight(0, Color.RED); Object tag2 = lhm.addLineHighlight(2, Color.BLUE); List<Object> actualTags = lhm.getCurrentLineHighlightTags(); Assert.assertEquals(2, actualTags.size()); Assert.assertEquals(tag1, actualTags.get(0)); Assert.assertEquals(tag2, actualTags.get(1)); }
@Before public void setUp() { textArea = new RTextArea("0123456789\n0123456789\n0123456789"); lhm = new LineHighlightManager(textArea); }
/** * Highlights the specified line. * * @param line The line to highlight. * @param color The color to highlight with. * @return A tag for the highlight. * @throws BadLocationException If <code>line</code> is not a valid line * number. * @see #removeLineHighlight(Object) */ public Object addLineHighlight(int line, Color color) throws BadLocationException { int offs = textArea.getLineStartOffset(line); LineHighlightInfo lhi = new LineHighlightInfo( textArea.getDocument().createPosition(offs), color); if (lineHighlights==null) { lineHighlights = new ArrayList<LineHighlightInfo>(1); } int index = Collections.binarySearch(lineHighlights, lhi, comparator); if (index<0) { // Common case index = -(index+1); } lineHighlights.add(index, lhi); repaintLine(lhi); return lhi; }
/** * Removes all line highlights. * * @see #removeLineHighlight(Object) */ public void removeAllLineHighlights() { if (lineHighlightManager!=null) { lineHighlightManager.removeAllLineHighlights(); } }
/** * Removes a line highlight. * * @param tag The tag of the line highlight to remove. * @see #removeAllLineHighlights() * @see #addLineHighlight(int, Color) */ public void removeLineHighlight(Object tag) { if (lineHighlightManager!=null) { lineHighlightManager.removeLineHighlight(tag); } }
@Test public void testAddLineHighlight_happyPath() throws BadLocationException { Assert.assertEquals(0, lhm.getLineHighlightCount()); lhm.addLineHighlight(1, Color.BLUE); Assert.assertEquals(1, lhm.getLineHighlightCount()); lhm.addLineHighlight(2, Color.BLUE); Assert.assertEquals(2, lhm.getLineHighlightCount()); }
/** * Paints any line highlights. * * @param g The graphics context. */ protected void paintLineHighlights(Graphics g) { LineHighlightManager lhm = textArea.getLineHighlightManager(); if (lhm!=null) { lhm.paintLineHighlights(g); } }
/** * Adds a line highlight. * * @param line The line to highlight. This is zero-based. * @param color The color to highlight the line with. * @throws BadLocationException If <code>line</code> is an invalid line * number. * @see #removeLineHighlight(Object) * @see #removeAllLineHighlights() */ public Object addLineHighlight(int line, Color color) throws BadLocationException { if (lineHighlightManager==null) { lineHighlightManager = new LineHighlightManager(this); } return lineHighlightManager.addLineHighlight(line, color); }
/** * Removes a line highlight. * * @param tag The tag of the line highlight to remove. * @see #addLineHighlight(int, Color) */ public void removeLineHighlight(Object tag) { if (tag instanceof LineHighlightInfo) { lineHighlights.remove(tag); repaintLine((LineHighlightInfo)tag); } }
/** * Removes all line highlights. * * @see #removeLineHighlight(Object) */ public void removeAllLineHighlights() { if (lineHighlightManager!=null) { lineHighlightManager.removeAllLineHighlights(); } }
/** * Removes a line highlight. * * @param tag The tag of the line highlight to remove. * @see #removeAllLineHighlights() * @see #addLineHighlight(int, Color) */ public void removeLineHighlight(Object tag) { if (lineHighlightManager!=null) { lineHighlightManager.removeLineHighlight(tag); } }
/** * Paints any line highlights. * * @param g The graphics context. */ protected void paintLineHighlights(Graphics g) { LineHighlightManager lhm = textArea.getLineHighlightManager(); if (lhm!=null) { lhm.paintLineHighlights(g); } }