package edu.harvard.wcfia.yoshikoder.util;
import java.awt.Component;
import javax.swing.JDialog;
/**
* @author will
*/
public abstract class DialogWorker extends SwingWorkerVariant {
protected JDialog dia;
protected Exception e;
public DialogWorker(Component aComponent) {
super(aComponent);
}
protected void doNonUILogic() throws RuntimeException {
try {
doWork();
} catch (Exception ex){
e = ex;
}
}
protected void doUIUpdateLogic() throws RuntimeException {
if (e == null)
dia.setVisible(true);
else {
onError();
}
}
abstract protected void doWork() throws Exception;
abstract protected void onError();
}