package magic.ui.screen;
import java.util.List;
import javax.swing.SwingWorker;
import magic.translate.MText;
import magic.utility.MagicSystem;
class ScreenLoaderWorker extends SwingWorker<Void, String> {
// translatable strings
private static final String _S1 = "loading card data";
private final Runnable runnable;
private final boolean needsCardData;
private final ScreenLoadingPanel statusPanel;
ScreenLoaderWorker(ScreenLoadingPanel p) {
this.statusPanel = p;
this.runnable = p.getRunnable();
this.needsCardData = p.isCardDataNeeded();
}
@Override
protected Void doInBackground() throws Exception {
if (needsCardData) {
publish(MText.get(_S1));
MagicSystem.loadCards.get();
}
return null;
}
@Override
protected void process(List<String> chunks) {
statusPanel.setMessage(chunks.get(0));
}
@Override
protected void done() {
if (!isCancelled()) {
runnable.run();
} else {
System.out.println("Screen loading cancelled.");
}
}
}