/* * SKCraft Launcher * Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors * Please see LICENSE.txt for license information. */ package com.skcraft.launcher; import com.skcraft.concurrency.ObservableFuture; import com.skcraft.launcher.dialog.ProgressDialog; import com.skcraft.launcher.swing.SwingHelper; import com.skcraft.launcher.update.HardResetter; import com.skcraft.launcher.update.Remover; import com.skcraft.launcher.util.SharedLocale; import java.awt.*; import static com.skcraft.launcher.util.SharedLocale.tr; public class InstanceTasks { private final Launcher launcher; public InstanceTasks(Launcher launcher) { this.launcher = launcher; } public ObservableFuture<Instance> delete(Window window, Instance instance) { // Execute the deleter Remover resetter = new Remover(instance); ObservableFuture<Instance> future = new ObservableFuture<Instance>( launcher.getExecutor().submit(resetter), resetter); // Show progress ProgressDialog.showProgress( window, future, SharedLocale.tr("instance.deletingTitle"), tr("instance.deletingStatus", instance.getTitle())); SwingHelper.addErrorDialogCallback(window, future); return future; } public ObservableFuture<Instance> hardUpdate(Window window, Instance instance) { // Execute the resetter HardResetter resetter = new HardResetter(instance); ObservableFuture<Instance> future = new ObservableFuture<Instance>( launcher.getExecutor().submit(resetter), resetter); // Show progress ProgressDialog.showProgress(window, future, SharedLocale.tr("instance.resettingTitle"), tr("instance.resettingStatus", instance.getTitle())); SwingHelper.addErrorDialogCallback(window, future); return future; } public ObservableFuture<InstanceList> reloadInstances(Window window) { InstanceList.Enumerator loader = launcher.getInstances().createEnumerator(); ObservableFuture<InstanceList> future = new ObservableFuture<InstanceList>(launcher.getExecutor().submit(loader), loader); ProgressDialog.showProgress(window, future, SharedLocale.tr("launcher.checkingTitle"), SharedLocale.tr("launcher.checkingStatus")); SwingHelper.addErrorDialogCallback(window, future); return future; } }