package io.andrewohara.tinkertime.controllers.workflows.tasks;
import io.andrewohara.common.workflows.tasks.BrowserGoToTask;
import io.andrewohara.common.workflows.tasks.WorkflowTask;
import io.andrewohara.tinkertime.io.crawlers.Crawler;
import io.andrewohara.tinkertime.models.mod.Mod;
import io.andrewohara.tinkertime.models.mod.ModUpdateData;
import java.io.IOException;
import javax.swing.JOptionPane;
public class DownloadModInBrowserTask extends WorkflowTask {
private final Crawler<?> crawler;
private final Mod mod;
public DownloadModInBrowserTask(Crawler<?> crawler, Mod mod) {
super("Downloading Mod in Browser");
this.crawler = crawler;
this.mod = mod;
}
@Override
public boolean execute() throws Exception {
ModUpdateData data = crawler.getModUpdateData();
if (JOptionPane.showConfirmDialog(
null,
String.format(
"%s v%s is available.%n" +
"Would you like to download it?%n" +
"%n" +
"You currently have v%s",
data.name, data.modVersion, mod.getModVersion()
),
"Update Tinker Time",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE
) == JOptionPane.YES_OPTION){
BrowserGoToTask.callNow(crawler.getDownloadLink());
return true;
}
return false;
}
@Override
protected int findTargetProgress() throws IOException {
return 0;
}
}