From 3af6987333142211cd419028fbd2ac880c028349 Mon Sep 17 00:00:00 2001 From: Li REN Date: Sat, 15 Jun 2013 00:53:35 -0400 Subject: [PATCH] Add UI for background image selection - selection, random, default --- Mage.Plugins/Mage.Theme.Plugin/pom.xml | 5 + .../mage/plugins/theme/ThemePluginImpl.java | 91 ++++++++++++++++--- 2 files changed, 84 insertions(+), 12 deletions(-) diff --git a/Mage.Plugins/Mage.Theme.Plugin/pom.xml b/Mage.Plugins/Mage.Theme.Plugin/pom.xml index 967df3d3d4..b94a79649f 100644 --- a/Mage.Plugins/Mage.Theme.Plugin/pom.xml +++ b/Mage.Plugins/Mage.Theme.Plugin/pom.xml @@ -32,6 +32,11 @@ 1.2.9 provided + + ${project.groupId} + mage-client + 1.0.3 + diff --git a/Mage.Plugins/Mage.Theme.Plugin/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java b/Mage.Plugins/Mage.Theme.Plugin/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java index 3fecc7dee5..f2a10884a1 100644 --- a/Mage.Plugins/Mage.Theme.Plugin/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java +++ b/Mage.Plugins/Mage.Theme.Plugin/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java @@ -2,6 +2,7 @@ package org.mage.plugins.theme; import mage.components.ImagePanel; import mage.interfaces.plugin.ThemePlugin; +import mage.client.dialog.PreferencesDialog; import net.xeoh.plugins.base.annotations.PluginImplementation; import net.xeoh.plugins.base.annotations.events.Init; import net.xeoh.plugins.base.annotations.events.PluginLoaded; @@ -13,7 +14,7 @@ import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; -import java.io.FileNotFoundException; +import java.io.*; import java.io.InputStream; import java.util.Map; @@ -53,11 +54,33 @@ public class ThemePluginImpl implements ThemePlugin { } if(flist.getItemCount() == 0) return false; return true; - } + } + public void applyInGame(Map ui) { - String filename; BufferedImage background; - try { + try { + + if(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_BATTLEFIELD_IMAGE_DEFAULT, + "true").equals("true")){ + + background = loadbuffer_default(); + + }else if(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_BATTLEFIELD_IMAGE_RANDOM, + "true").equals("true")){ + + background = loadbuffer_random(); + + }else if(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_BATTLEFIELD_IMAGE, "") != null){ + + background = loadbuffer_selected(); + + }else{ + background = loadbuffer_default(); + } + + + + /* if(loadimages()){ int it = (int)Math.abs(Math.random()*(flist.getItemCount())); filename = BackgroundDir + flist.getItem(it); @@ -69,9 +92,9 @@ public class ThemePluginImpl implements ThemePlugin { throw new FileNotFoundException("Couldn't find " + filename + " in resources."); background = ImageIO.read(is); } - + */ if (background == null) { - throw new FileNotFoundException("Couldn't find " + filename + " in resources."); + throw new FileNotFoundException("Couldn't find background file in resources."); } if (ui.containsKey("gamePanel") && ui.containsKey("jLayeredPane")) { @@ -95,6 +118,37 @@ public class ThemePluginImpl implements ThemePlugin { return; } } + + + private BufferedImage loadbuffer_default() throws IOException{ + String filename = "/dragon.png"; + BufferedImage res; + InputStream is = this.getClass().getResourceAsStream(filename); + res = ImageIO.read(is); + return res; + } + + private BufferedImage loadbuffer_random() throws IOException{ + BufferedImage res; + if(loadimages()){ + int it = (int)Math.abs(Math.random()*(flist.getItemCount())); + String filename = BackgroundDir + flist.getItem(it); + res = ImageIO.read(new File(filename)); + return res; + } + return null; + } + + private BufferedImage loadbuffer_selected() throws IOException{ + BufferedImage res; + String path = PreferencesDialog.getCachedValue(PreferencesDialog. + KEY_BATTLEFIELD_IMAGE, ""); + if(path != null){ + res = ImageIO.read(new File(path)); + return res; + } + return null; + } public JComponent updateTable(Map ui) { @@ -116,13 +170,26 @@ public class ThemePluginImpl implements ThemePlugin { if (background == null) { String filename = "/background.png"; try { - InputStream is = this.getClass().getResourceAsStream(filename); - - if (is == null) + if(PreferencesDialog.getCachedValue(PreferencesDialog. + KEY_BACKGROUND_IMAGE_DEFAULT, "true").equals("true")){ + InputStream is = this.getClass().getResourceAsStream(filename); + if (is == null) throw new FileNotFoundException("Couldn't find " + filename + " in resources."); - - background = ImageIO.read(is); - + background = ImageIO.read(is); + }else if(PreferencesDialog.getCachedValue(PreferencesDialog. + KEY_BACKGROUND_IMAGE, "") != null){ + String path = PreferencesDialog.getCachedValue(PreferencesDialog. + KEY_BATTLEFIELD_IMAGE, ""); + if(path != null){ + background = ImageIO.read(new File(path)); + }else{ + InputStream is = this.getClass().getResourceAsStream(filename); + if (is == null) + throw new FileNotFoundException("Couldn't find " + filename + " in resources."); + background = ImageIO.read(is); + } + } + if (background == null) throw new FileNotFoundException("Couldn't find " + filename + " in resources."); } catch (Exception e) {