package comeon.ui.actions;
import com.google.common.io.Resources;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import comeon.core.Core;
import comeon.ui.UI;
import comeon.wikis.Wikis;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.text.MessageFormat;
@Singleton
public final class UploadMediaAction extends MediaBaseAction {
private static final long serialVersionUID = 1L;
static final ImageIcon ICON = new ImageIcon(Resources.getResource("comeon/ui/upload_huge.png"));
private final Wikis wikis;
@Inject
public UploadMediaAction(final Core core, final Wikis wikis) {
super("upload", core);
this.wikis = wikis;
this.setEnabled(false);
}
@Override
public void actionPerformed(final ActionEvent e) {
final int mediaToUpload = core.countMediaToBeUploaded();
if (mediaToUpload == 0) {
JOptionPane.showMessageDialog(
SwingUtilities.getWindowAncestor((Component) e.getSource()),
UI.BUNDLE.getString("action.upload.none"));
} else {
final int choice = JOptionPane.showConfirmDialog(
SwingUtilities.getWindowAncestor((Component) e.getSource()),
MessageFormat.format(
UI.BUNDLE.getString("action.upload.confirm"),
mediaToUpload, wikis.getActiveWiki().getName()),
UIManager.getString("OptionPane.titleText"),
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE,
ICON);
if (JOptionPane.OK_OPTION == choice) {
new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws Exception {
core.uploadMedia();
return null;
}
}.execute();
}
}
}
}