20 package net.sf.gridarta.utils;
22 import java.awt.Image;
23 import java.awt.Toolkit;
24 import java.awt.image.FilteredImageSource;
25 import java.awt.image.ImageFilter;
26 import java.awt.image.ImageProducer;
29 import java.util.HashMap;
31 import java.util.MissingResourceException;
32 import javax.swing.ImageIcon;
33 import org.apache.log4j.Category;
34 import org.apache.log4j.Logger;
35 import org.jetbrains.annotations.NotNull;
36 import org.jetbrains.annotations.Nullable;
51 private static final String
ICON_DIR =
"icons/";
80 public static final String
SQUARE_EMPTY = SYSTEM_DIR +
"empty.png";
91 private static final String
SQUARE_LIGHT = SYSTEM_DIR +
"light.png";
100 public static final String
TREASURE_LIST = SYSTEM_DIR +
"treasure_list.png";
106 public static final String
TREASURE_YES = SYSTEM_DIR +
"treasure_yes.png";
109 public static final String
TREASURE_NO = SYSTEM_DIR +
"treasure_no.png";
115 public static final String
DEFAULT_ICON = SYSTEM_DIR +
"default_icon.png";
139 public static final String
APP_ICON = ICON_DIR +
"app_icon.gif";
150 private final Map<String, ImageIcon>
imageCache =
new HashMap<>();
168 public ImageIcon
getResourceIcon(@NotNull
final String iconName)
throws MissingResourceException {
170 final ImageIcon imageIcon = imageCache.get(iconName);
171 if (imageIcon != null) {
172 if (LOG.isDebugEnabled()) {
173 LOG.debug(
"getResourceIcon(" + iconName +
"): return cached");
178 @NotNull
final ImageIcon icon;
180 final URL iconURL =
ResourceIcons.class.getClassLoader().getResource(iconName);
181 if (iconURL != null) {
182 if (LOG.isDebugEnabled()) {
183 LOG.debug(
"getResourceIcon(" + iconName +
"): loading from resource: " + iconURL);
185 icon =
new ImageIcon(iconURL);
187 final File iconFile =
new File(iconName);
188 if (!iconFile.exists()) {
189 LOG.warn(
"Cannot find icon '" + iconName +
"'");
190 throw new MissingResourceException(
"missing resource: icon " + iconName,
ResourceIcons.class.getName(), iconName);
193 if (LOG.isDebugEnabled()) {
194 LOG.debug(
"getResourceIcon(" + iconName +
"): loading from file: " + iconFile);
196 icon =
new ImageIcon(iconFile.getAbsolutePath());
199 imageCache.put(iconName, icon);
208 public void addToCache(@NotNull
final String name, @NotNull
final ImageIcon imageIcon) {
209 imageCache.put(name, imageIcon);
213 @SuppressWarnings(
"NullableProblems")
215 if (warningSquareIcon == null) {
218 final Image image = sysIcon.getImage();
219 final ImageProducer source = image.getSource();
220 final ImageProducer producer =
new FilteredImageSource(source, alphaFilter);
221 final Image image2 = Toolkit.getDefaultToolkit().createImage(producer);
222 warningSquareIcon =
new ImageIcon(image2);
233 @SuppressWarnings(
"NullableProblems")
238 final Image image = sysIcon.getImage();
239 final ImageProducer source = image.getSource();
240 final ImageProducer producer =
new FilteredImageSource(source, alphaFilter);
241 final Image image2 = Toolkit.getDefaultToolkit().createImage(producer);
ImageIcon getWarningSquareIcon()
static final String TREASURE_LIST
Utility class holding the singleton AlphaImageFilter instance.
ImageIcon lightSquareIcon
static final String TREASURE_YES
static final String SQUARE_NO_ARCH
static final String RUN_PLUGIN_SMALL_ICON
static final String ICON_DIR
The directory that contains the common-use icons.
static final Category LOG
The Logger for printing log messages.
ImageIcon warningSquareIcon
ImageIcon getLightSquareIcon()
Returns the ImageIcon for highlighting map squares that are affected by nearby light emitting game ob...
static final String SYSTEM_DIR
The directory that contains the system icons.
static final String SQUARE_UNKNOWN
static final String DEFAULT_PREVIEW
The default map preview to use if no icon can be created.
static final String TREASUREONE_LIST
static final String SQUARE_NO_FACE
static final String DEFAULT_ICON
The default map icon to use if no icon can be created.
static final ImageFilter ALPHA_FILTER
The singleton AlphaImageFilter instance for creating transparent images.
static final String SQUARE_SELECTED_SQUARE_NORTH
static final String SQUARE_SELECTED_SQUARE_SOUTH
Creates ImageIcon instances from resources.
static final String SQUARE_SELECTED_SQUARE_EAST
static final String SQUARE_PRE_SELECTED_SQUARE
static final String AUTO_RUN_SMALL_ICON
static final String SQUARE_LIGHT
The name of the image for highlighting map squares that are affected by nearby light emitting game ob...
static final String SQUARE_EMPTY
ImageIcon getResourceIcon(@NotNull final String iconName)
Returns the image icon for the given icon name.
static final String SQUARE_SELECTED_SQUARE_WEST
static final String SQUARE_SELECTED_SQUARE
static final String APP_ICON
Application icon definitions (icon-dir).
void addToCache(@NotNull final String name, @NotNull final ImageIcon imageIcon)
Add an image to the cache.
static final String SQUARE_WARNING
final Map< String, ImageIcon > imageCache
Caches image icons.
static final String SQUARE_CURSOR
static final String TREASURE_NO
static final String CLOSE_TAB_SMALL_ICON
static final String FILTER_SMALL_ICON