package edu.mbl.jif.utils.diag.trace;
import javax.swing.JComponent;
import javax.swing.RepaintManager;
/*
* Usage: RepaintManager.setCurrentManager(new TracingRepaintManager());
*/
public class TracingRepaintManager extends RepaintManager {
@Override
public void addDirtyRegion(JComponent c, int x, int y, int w, int h) {
try {
throw new Exception();
} catch (Exception exc) {
StringBuffer sb = new StringBuffer();
StackTraceElement[] stack = exc.getStackTrace();
int count = 0;
for (StackTraceElement stackEntry : stack) {
if (count++ > 8)
break;
sb.append("\t");
sb.append(stackEntry.getClassName() + ".");
sb.append(stackEntry.getMethodName() + " [");
sb.append(stackEntry.getLineNumber() + "]");
sb.append("\n");
}
System.out.println("**** Repaint stack ****");
System.out.println(sb.toString());
}
super.addDirtyRegion(c, x, y, w, h);
}
}