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 }