boolean () { ProgressWrapper current = this; while (true) { if (current.myCheckCanceledForMe && current.isCanceledRaw()) return true; ProgressIndicator original = current.getOriginalProgressIndicator(); if (original instanceof ProgressWrapper) { current = (ProgressWrapper)original; } else { return original.isCanceled(); } } }