001 package nl.cwi.sen1.gui.plugin.editor;
002
003 import java.awt.Color;
004 import java.awt.Graphics;
005 import java.awt.Rectangle;
006 import java.awt.Shape;
007
008 import javax.swing.text.BadLocationException;
009 import javax.swing.text.DefaultHighlighter;
010 import javax.swing.text.JTextComponent;
011 import javax.swing.text.Position;
012 import javax.swing.text.View;
013
014 public class JaggedHighlightPainter extends
015 DefaultHighlighter.DefaultHighlightPainter {
016
017 public JaggedHighlightPainter(Color color) {
018 super(color);
019 }
020
021 public Shape paintLayer(Graphics g, int offs0, int offs1, Shape bounds,
022 JTextComponent c, View view) {
023 try {
024 Shape shape = view.modelToView(offs0, Position.Bias.Forward, offs1,
025 Position.Bias.Backward, bounds);
026
027 Rectangle r = (shape instanceof Rectangle) ? (Rectangle) shape
028 : shape.getBounds();
029
030 int y = (int) (shape.getBounds().getY() + shape.getBounds()
031 .getHeight());
032 int x1 = (int) shape.getBounds().getX();
033 int x2 = (int) (shape.getBounds().getX() + shape.getBounds()
034 .getWidth());
035
036 g.setColor(getColor());
037 for (int i = x1; i < x2 - 6; i += 6) {
038 g.drawArc(i, y - 3, 3, 2, 0, 180);
039 g.drawArc(i + 3, y - 3, 3, 2, 180, 181);
040 }
041 return r;
042 } catch (BadLocationException e) {
043 }
044
045 return null;
046 }
047 }