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.CursorChangingWorker; import comeon.ui.UI; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; @Singleton public class ClearMediaAction extends MediaBaseAction { private static final long serialVersionUID = 1L; private static final ImageIcon ICON = new ImageIcon(Resources.getResource("comeon/ui/clearmedia_huge.png")); @Inject protected ClearMediaAction(final Core core) { super("clearmedia", core); this.setEnabled(false); } @Override public void actionPerformed(final ActionEvent e) { SwingUtilities.invokeLater(() -> { final int choice = JOptionPane.showConfirmDialog( UI.findInstance(), UI.BUNDLE.getString("action.clearmedia.confirm"), UI.BUNDLE.getString("action.clearmedia.title"), JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, ICON ); if (JOptionPane.YES_OPTION == choice) { new RemovalWorker().execute(); } }); } private class RemovalWorker extends CursorChangingWorker { @Override protected Void doInBackground() throws Exception { core.removeAllMedia(); return null; } } }