package magic.ui.widget.alerter; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.SwingUtilities; import magic.data.CardDefinitions; import magic.data.GeneralConfig; import magic.translate.MText; import magic.ui.ScreenController; @SuppressWarnings("serial") public class MissingImagesAlertButton extends AlertButton { // translatable strings private static final String _S1 = "Download missing card images"; private static boolean isSoundEffectPlayed = false; private static boolean hasChecked = false; private boolean isMissingImages = false; @Override protected AbstractAction getAlertAction() { return new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { setVisible(false); ScreenController.showDownloadImagesScreen(); hasChecked = false; } }; } @Override protected void playNewAlertSoundEffect() { if (!isSoundEffectPlayed) { super.playNewAlertSoundEffect(); isSoundEffectPlayed = true; } } @Override protected String getAlertCaption() { assert !SwingUtilities.isEventDispatchThread(); if (!hasChecked || isVisible()) { isMissingImages = CardDefinitions.isMissingPlayableImages(); GeneralConfig.getInstance().setIsMissingFiles(isMissingImages); hasChecked = true; } if (isMissingImages) { return MText.get(_S1); } else { return ""; } } @Override public void doAlertCheck() { if (GeneralConfig.getInstance().getImagesOnDemand()) { setVisible(false); } else { super.doAlertCheck(); } } }