aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/util/ImageResources.java
diff options
context:
space:
mode:
authorOmair Majid <[email protected]>2012-04-19 12:36:43 -0400
committerOmair Majid <[email protected]>2012-04-19 12:36:43 -0400
commit06726d31ab5383c8b4585ae711b73fb68fc69c39 (patch)
tree2d1901772188371af40ea74674e7dc6dd3734a51 /netx/net/sourceforge/jnlp/util/ImageResources.java
parentdc0cc9b22c56c02b7c027f554e821ca9c3771b48 (diff)
PR918: java applet windows uses a low resulution black/white icon
2012-04-19 Omair Majid <[email protected]> * NEWS: Update with fix. * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: Remove windowIcon. (initialize): Do not call loadWindowIcon. (getWindowIcon): Remove. (setWindowIcon): Remove. (loadWindowIcon): Remove. * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java (checkTopLevelWindow): Do not set the icon for all top level windows. Use the default java icon instead. * netx/net/sourceforge/jnlp/util/ImageResources.java: New file. Provides access to icons. * netx/net/sourceforge/jnlp/JNLPSplashScreen.java (JNLPSplashScreen), * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java (getListener), * netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java (AdvancedProxySettingsDialog), * netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java (CacheViewer), * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java (ControlPanel), * netx/net/sourceforge/jnlp/security/SecurityDialog.java (SecurityDialog), * netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java (CertificateViewer), * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java (show), * plugin/icedteanp/java/sun/applet/JavaConsole.java (initialize): Explicitly load icons. * tests/netx/unit/net/sourceforge/jnlp/util/ImageResourcesTest.java: Test for ImageResources class.
Diffstat (limited to 'netx/net/sourceforge/jnlp/util/ImageResources.java')
-rw-r--r--netx/net/sourceforge/jnlp/util/ImageResources.java101
1 files changed, 101 insertions, 0 deletions
diff --git a/netx/net/sourceforge/jnlp/util/ImageResources.java b/netx/net/sourceforge/jnlp/util/ImageResources.java
new file mode 100644
index 0000000..0f03ffb
--- /dev/null
+++ b/netx/net/sourceforge/jnlp/util/ImageResources.java
@@ -0,0 +1,101 @@
+/* ImageResources.java
+ Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package net.sourceforge.jnlp.util;
+
+import java.awt.Image;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.imageio.ImageIO;
+
+public enum ImageResources {
+
+ INSTANCE;
+
+ private static final String APPLICATION_ICON_PATH = "net/sourceforge/jnlp/resources/netx-icon.png";
+
+ private final Map<String, Image> cache = new HashMap<String, Image>();
+
+ private ImageResources() {}
+
+ /* this is for testing ONLY */
+ void clearCache() {
+ cache.clear();
+ }
+
+ /**
+ * Returns an appropriate image, or null if there are errors loading the image.
+ */
+ private Image getApplicationImage() {
+ if (cache.containsKey(APPLICATION_ICON_PATH)) {
+ return cache.get(APPLICATION_ICON_PATH);
+ }
+
+ ClassLoader cl = this.getClass().getClassLoader();
+ if (cl == null) {
+ cl = ClassLoader.getSystemClassLoader();
+ }
+
+ InputStream in = cl.getResourceAsStream(APPLICATION_ICON_PATH);
+ try {
+ Image image = ImageIO.read(in);
+ cache.put(APPLICATION_ICON_PATH, image);
+ return image;
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ return null;
+ }
+ }
+
+ /**
+ * Returns an appropriate image, or null if there are errors loading the image.
+ */
+ public List<Image> getApplicationImages() {
+ List<Image> images = new ArrayList<Image>();
+ Image appImage = getApplicationImage();
+ if (appImage != null) {
+ images.add(appImage);
+ }
+ return images;
+ }
+
+}