diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java index 9c762f58cdb..ffad2e959fb 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/CardPluginImpl.java @@ -19,6 +19,7 @@ import org.mage.plugins.card.constants.Constants; import org.mage.plugins.card.dl.DownloadGui; import org.mage.plugins.card.dl.DownloadJob; import org.mage.plugins.card.dl.Downloader; +import org.mage.plugins.card.dl.sources.DirectLinksForDownload; import org.mage.plugins.card.dl.sources.GathererSets; import org.mage.plugins.card.dl.sources.GathererSymbols; import org.mage.plugins.card.images.ImageCache; @@ -444,6 +445,11 @@ public class CardPluginImpl implements CardPlugin { g.getDownloader().add(job); } + it = new DirectLinksForDownload(imagesPath); + for(DownloadJob job:it) { + g.getDownloader().add(job); + } + JDialog d = new JDialog((Frame) null, "Download pictures", false); d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); d.addWindowListener(new WindowAdapter() { diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/DirectLinksForDownload.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/DirectLinksForDownload.java new file mode 100644 index 00000000000..a0bcd861caa --- /dev/null +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/DirectLinksForDownload.java @@ -0,0 +1,74 @@ +/** + * GathererSymbols.java + * + * Created on 25.08.2010 + */ + +package org.mage.plugins.card.dl.sources; + + +import com.google.common.collect.AbstractIterator; +import org.mage.plugins.card.dl.DownloadJob; + +import java.io.File; +import java.util.*; + +import static java.lang.String.format; +import static org.mage.plugins.card.dl.DownloadJob.fromURL; +import static org.mage.plugins.card.dl.DownloadJob.toFile; + + +/** + * Used when we need to point to direct links to download resources from. + * + * @author noxx + */ +public class DirectLinksForDownload implements Iterable { + + private static final String backsideUrl = "http://upload.wikimedia.org/wikipedia/en/a/aa/Magic_the_gathering-card_back.jpg"; + + private static final Map directLinks = new LinkedHashMap(); + + static { + directLinks.put("cardback.jpg", backsideUrl); + } + + private static final String DEFAULT_IMAGES_PATH = File.separator + "default"; + private static final File DEFAULT_OUT_DIR = new File("plugins" + File.separator + "images" + DEFAULT_IMAGES_PATH); + private static File outDir = DEFAULT_OUT_DIR; + + public DirectLinksForDownload(String path) { + if (path == null) { + useDefaultDir(); + } else { + changeOutDir(path); + } + } + + @Override + public Iterator iterator() { + ArrayList jobs = new ArrayList(); + + for (Map.Entry url : directLinks.entrySet()) { + File dst = new File(outDir, url.getKey()); + jobs.add(new DownloadJob(url.getKey(), fromURL(url.getValue()), toFile(dst))); + } + return jobs.iterator(); + } + + private void changeOutDir(String path) { + File file = new File(path + DEFAULT_IMAGES_PATH); + if (file.exists()) { + outDir = file; + } else { + file.mkdirs(); + if (file.exists()) { + outDir = file; + } + } + } + + private void useDefaultDir() { + outDir = DEFAULT_OUT_DIR; + } +}