package tools.map.making;
import java.awt.Image;
import java.awt.image.ImageObserver;
import java.util.concurrent.CountDownLatch;
/**
* Code originally contributed by "Thomas Carvin".
*/
public class ImageIoCompletionWatcher implements ImageObserver {
// we countdown when we are done
private final CountDownLatch countDownLatch = new CountDownLatch(1);
public ImageIoCompletionWatcher() {}
public void waitForCompletion() {
try {
countDownLatch.await();
} catch (final InterruptedException e) {
// Ignore interrupted exception
}
}
@Override
public boolean imageUpdate(final Image image, final int flags, final int x, final int y, final int width,
final int height) {
// wait for complete or error/abort
if (((flags & ALLBITS) != 0) || ((flags & ABORT) != 0)) {
countDownLatch.countDown();
return false;
}
return true;
}
}