package comeon.ui.actions;
import com.google.common.eventbus.Subscribe;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import comeon.core.Core;
import comeon.core.events.UploadDoneEvent;
import comeon.core.events.UploadStartingEvent;
import comeon.ui.UI;
import javax.swing.*;
import java.awt.event.ActionEvent;
@Singleton
public final class AbortAction extends AbstractAction {
private static final long serialVersionUID = 1L;
private final Core core;
@Inject
public AbortAction(final Core core) {
super(UI.BUNDLE.getString("upload.abort"));
this.core = core;
}
@Override
public void actionPerformed(final ActionEvent e) {
new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws Exception {
core.abort();
return null;
}
}.execute();
SwingUtilities.invokeLater(() -> setEnabled(false));
}
@Subscribe
public void uploadStarting(final UploadStartingEvent event) {
SwingUtilities.invokeLater(() -> setEnabled(true));
}
@Subscribe
public void uploadDone(final UploadDoneEvent event) {
SwingUtilities.invokeLater(() -> setEnabled(false));
}
}