1 package net.sf.openrocket.util;
4 import java.util.Collections;
5 import java.util.HashMap;
8 import javax.swing.Icon;
9 import javax.swing.ImageIcon;
11 import net.sf.openrocket.document.Simulation;
12 import net.sf.openrocket.gui.main.ExceptionHandler;
13 import net.sf.openrocket.l10n.Translator;
14 import net.sf.openrocket.logging.LogHelper;
15 import net.sf.openrocket.startup.Application;
19 private static final LogHelper log = Application.getLogger();
20 private static final Translator trans = Application.getTranslator();
23 log.debug("Starting to load icons");
27 * Icons used for showing the status of a simulation (up to date, out of date, etc).
29 public static final Map<Simulation.Status, Icon> SIMULATION_STATUS_ICON_MAP;
31 HashMap<Simulation.Status, Icon> map = new HashMap<Simulation.Status, Icon>();
32 map.put(Simulation.Status.NOT_SIMULATED, loadImageIcon("pix/spheres/gray-16x16.png", "Not simulated"));
33 map.put(Simulation.Status.UPTODATE, loadImageIcon("pix/spheres/green-16x16.png", "Up to date"));
34 map.put(Simulation.Status.LOADED, loadImageIcon("pix/spheres/yellow-16x16.png", "Loaded from file"));
35 map.put(Simulation.Status.OUTDATED, loadImageIcon("pix/spheres/red-16x16.png", "Out-of-date"));
36 map.put(Simulation.Status.EXTERNAL, loadImageIcon("pix/spheres/blue-16x16.png", "Imported data"));
37 SIMULATION_STATUS_ICON_MAP = Collections.unmodifiableMap(map);
40 public static final Icon SIMULATION_LISTENER_OK;
41 public static final Icon SIMULATION_LISTENER_ERROR;
43 SIMULATION_LISTENER_OK = SIMULATION_STATUS_ICON_MAP.get(Simulation.Status.UPTODATE);
44 SIMULATION_LISTENER_ERROR = SIMULATION_STATUS_ICON_MAP.get(Simulation.Status.OUTDATED);
48 public static final Icon FILE_NEW = loadImageIcon("pix/icons/document-new.png", "New document");
49 public static final Icon FILE_OPEN = loadImageIcon("pix/icons/document-open.png", "Open document");
50 public static final Icon FILE_OPEN_EXAMPLE = loadImageIcon("pix/icons/document-open-example.png", "Open example document");
51 public static final Icon FILE_SAVE = loadImageIcon("pix/icons/document-save.png", "Save document");
52 public static final Icon FILE_SAVE_AS = loadImageIcon("pix/icons/document-save-as.png", "Save document as");
53 public static final Icon FILE_PRINT = loadImageIcon("pix/icons/document-print.png", "Print document");
54 public static final Icon FILE_CLOSE = loadImageIcon("pix/icons/document-close.png", "Close document");
55 public static final Icon FILE_QUIT = loadImageIcon("pix/icons/application-exit.png", "Quit OpenRocket");
57 public static final Icon EDIT_UNDO = loadImageIcon("pix/icons/edit-undo.png", trans.get("Icons.Undo"));
58 public static final Icon EDIT_REDO = loadImageIcon("pix/icons/edit-redo.png", trans.get("Icons.Redo"));
59 public static final Icon EDIT_CUT = loadImageIcon("pix/icons/edit-cut.png", "Cut");
60 public static final Icon EDIT_COPY = loadImageIcon("pix/icons/edit-copy.png", "Copy");
61 public static final Icon EDIT_PASTE = loadImageIcon("pix/icons/edit-paste.png", "Paste");
62 public static final Icon EDIT_DELETE = loadImageIcon("pix/icons/edit-delete.png", "Delete");
64 public static final Icon ZOOM_IN = loadImageIcon("pix/icons/zoom-in.png", "Zoom in");
65 public static final Icon ZOOM_OUT = loadImageIcon("pix/icons/zoom-out.png", "Zoom out");
67 public static final Icon PREFERENCES = loadImageIcon("pix/icons/preferences.png", "Preferences");
69 public static final Icon DELETE = loadImageIcon("pix/icons/delete.png", "Delete");
72 log.debug("Icons loaded");
76 * Load an ImageIcon from the specified file. The file is obtained as a system
77 * resource from the normal classpath. If the file cannot be loaded a bug dialog
78 * is opened and <code>null</code> is returned.
80 * @param file the file to load.
81 * @param name the description of the icon.
82 * @return the ImageIcon, or null if could not be loaded (after the user closes the dialog)
84 public static ImageIcon loadImageIcon(String file, String name) {
85 if (System.getProperty("openrocket.unittest") != null) {
86 return new ImageIcon();
89 URL url = ClassLoader.getSystemResource(file);
91 ExceptionHandler.handleErrorCondition("Image file " + file + " not found, ignoring.");
94 return new ImageIcon(url, name);