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 class BracketHighlightPainter extends
015 DefaultHighlighter.DefaultHighlightPainter {
016
017 BracketHighlightPainter(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
024 try {
025 Shape shape = view.modelToView(offs0, Position.Bias.Forward, offs1,
026 Position.Bias.Backward, bounds);
027 Rectangle r = (shape instanceof Rectangle) ? (Rectangle) shape
028 : shape.getBounds();
029 g.setColor(getColor());
030 g.drawRect(r.x, r.y, r.width - 1, r.height - 1);
031 return r;
032 } catch (BadLocationException e) {
033 }
034
035 return null;
036 }
037 }