public int compare(CheckedTreeNode o1, CheckedTreeNode o2) {
   final int w1 = getWeight(o1);
   final int w2 = getWeight(o2);
   if (w1 != w2) {
     return w1 - w2;
   }
   final TreeDescriptor d1 = (TreeDescriptor) o1.getUserObject();
   final TreeDescriptor d2 = (TreeDescriptor) o2.getUserObject();
   if (d1 instanceof BreakpointDescriptor && d2 instanceof BreakpointDescriptor) {
     return 0;
   }
   return d1.getDisplayString().compareTo(d2.getDisplayString());
 }