PropertyChangeListener listener = new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (useBorders) {
Component oldValue = (Component) evt.getOldValue();
if (oldValue instanceof JComponent) {
Border oldBorder = ((JComponent) oldValue).getBorder();
if (oldBorder instanceof TraceDebugBorder)
((JComponent) oldValue).setBorder(((TraceDebugBorder) oldBorder).getInsideBorder());
}
Component newValue = (Component) evt.getNewValue();
if (newValue instanceof JComponent) {
Border oldBorder = ((JComponent) newValue).getBorder();
if (oldBorder == null)
oldBorder = new EmptyBorder(0, 0, 0, 0);
if (!(oldBorder instanceof TraceDebugBorder))
((JComponent) newValue).setBorder(new TraceDebugBorder(oldBorder));
}