/* * org.openmicroscopy.shoola.util.ui.IconManager * *------------------------------------------------------------------------------ * Copyright (C) 2006-2013 University of Dundee. All rights reserved. * * * This program 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 of the License, or * (at your option) any later version. * This program 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 this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * *------------------------------------------------------------------------------ */ package org.openmicroscopy.shoola.util.ui; //Java imports import java.awt.Image; import java.net.URL; import javax.swing.Icon; import javax.swing.ImageIcon; //Third-party libraries //Application-internal dependencies /** * Provides the icons used by the util.ui package. * <p>The icons are retrieved by first calling the * {@link #getInstance() getInstance} method and then the * {@link #getIcon(int) getIcon} method passing one of the icon ID's specified * by the static constants within this class.</p> * * @author Jean-Marie Burel      * <a href="mailto:j.burel@dundee.ac.uk">j.burel@dundee.ac.uk</a> * @author Donald MacDonald      * <a href="mailto:donald@lifesci.dundee.ac.uk">donald@lifesci.dundee.ac.uk</a> * @version 3.0 * @since OME2.2 */ public class IconManager { /** The pathname, relative to this class, of the login splash screen. */ private static final String LOGIN_BACKGROUND = "graphx/login_background.png"; /** The pathname, relative to this class, of the login splash screen. */ private static final String IMAGEJ_SPLASHSCREEN = "graphx/omeroImageJSplashscreen.png"; /** The pathname, relative to this class, of the OME screen. */ private static final String OME_ICON = "graphx/omero16.png"; /** ID of the <code>Colour slider</code> icon. */ public static final int COLOUR_SLIDER_24 = 0; /** ID of the <code>Colour watch</code> icon. */ public static final int COLOUR_SWATCH_24 = 1; /** ID of the <code>Colour wheel</code> icon. */ public static final int COLOUR_WHEEL_24 = 2; /** ID of the <code>Cancel</code> icon. */ public static final int CANCEL_22 = 3; /** ID of the <code>OK</code> icon. */ public static final int OK_22 = 4; /** ID of the <code>Undo</code> icon. */ public static final int UNDO_22 = 5; /** ID of the <code>Thumb</code> icon for the slider. */ public static final int THUMB = 6; /** ID of the <code>ThumbDisabled</code> icon for the slider. */ public static final int THUMB_DISABLED = 7; /** ID of the <code>UpArrow</code> icon for the slider. */ public static final int UP_ARROW_10 = 8; /** ID of the <code>DownArrow</code> icon for the slider. */ public static final int DOWN_ARROW_10 = 9; /** ID of the <code>LeftArrow</code> icon for the slider. */ public static final int LEFT_ARROW_10 = 10; /** ID of the <code>RightArrow</code> icon for the slider. */ public static final int RIGHT_ARROW_10 = 11; /** ID of the <code>UpArrowDisabled</code> icon for the slider. */ public static final int UP_ARROW_DISABLED_10 = 12; /** ID of the <code>DownArrowDisabled</code> icon for the slider. */ public static final int DOWN_ARROW_DISABLED_10 = 13; /** ID of the <code>LeftArrowDisabled</code> icon for the slider. */ public static final int LEFT_ARROW_DISABLED_10 = 14; /** ID of the <code>RightArrowDisabled</code> icon for the slider. */ public static final int RIGHT_ARROW_DISABLED_10 = 15; /** ID of the <code>QuestionIcon</code> icon for the slider. */ public static final int QUESTION_ICON_48 = 16; /** ID of the <code>Annotation 48</code> icon. */ public static final int ANNOTATION_48 = 17; /** ID of the <code>Info</code> icon. */ public static final int INFO = 18; /** ID of the <code>Progress</code> icon. */ public static final int PROGRESS = 19; /** ID of the <code>Classification 48</code> icon. */ public static final int CLASSIFICATION_48 = 20; /** ID of the <code>Comment icon 64</code> icon. */ public static final int COMMENT_ICON_64 = 21; /** ID of the <code>Error icon 64</code> icon. */ public static final int ERROR_ICON_64 = 22; /** ID of the <code>Server</code> icon. */ public static final int SERVER_22 = 23; /** ID of the <code>Remove</code> icon. */ public static final int REMOVE = 24; /** ID of the <code>Config</code> icon. */ public static final int CONFIG_24 = 25; /** ID of the <code>Config pressed</code> icon. */ public static final int CONFIG_PRESSED_24 = 26; /** ID of the <code>Config 48</code> icon. */ public static final int CONFIG_48= 27; /** ID of the <code>Add</code> icon. */ public static final int ADD = 28; /** ID of the <code>Info 32</code> icon. */ public static final int INFO_32 = 29; /** ID of the <code>Download 48</code> icon. */ public static final int DOWNLOAD_48 = 30; /** ID of the <code>Minus</code> icon. */ public static final int MINUS_9 = 31; /** ID of the <code>Minus over</code> icon. */ public static final int MINUS_OVER_9 = 32; /** ID of the <code>Plus</code> icon. */ public static final int PLUS_9 = 33; /** ID of the <code>Plus over</code> icon. */ public static final int PLUS_OVER_9 = 34; /** ID of the <code>Cross</code> icon. */ public static final int CROSS = 35; /** ID of the <code>Cross over</code> icon. */ public static final int CROSS_OVER = 36; /** ID of the <code>Error</code> icon. */ public static final int ERROR = 37; /** ID of the <code>History</code> icon. */ public static final int HISTORY = 38; /** ID of the <code>Backward navigation</code> icon. */ public static final int BACKWARD_NAV = 39; /** ID of the <code>Trashcan full</code> icon. */ public static final int TRASH_CAN = 40; /** ID of the <code>Save</code> icon. */ public static final int SAVE = 41; /** ID of the <code>Owner</code> icon. */ public static final int OWNER = 42; /** ID of the <code>Calendar</code> icon. */ public static final int CALENDAR = 43; /** ID of the <code>Image</code> icon. */ public static final int IMAGE = 44; /** ID of the <code>Dataset</code> icon. */ public static final int DATASET = 45; /** ID of the single-view icon in the browser's internal frame. */ public static final int SINGLE_VIEW_MODE_9 = 46; /** ID of the single-view over icon in the browser's internal frame. */ public static final int SINGLE_VIEW_MODE_OVER_9 = 47; /** ID of the multi-view icon in the browser's internal frame. */ public static final int MULTI_VIEW_MODE = 48; /** ID of the views list icon in the browser's internal frame. */ public static final int VIEWS_LIST_9 = 49; /** ID of the views list over icon in the browser's internal frame. */ public static final int VIEWS_LIST_OVER_9 = 50; /** ID of <code>information message</code> icon. */ public static final int INFORMATION_MESSAGE_48 = 51; /** ID of <code>information message</code> icon. */ public static final int QUESTION_32 = 52; /** ID of <code>Save 48</code> icon. */ public static final int SAVE_48 = 53; /** ID of <code>Load 48</code> icon. */ public static final int LOAD_48 = 54; /** ID of <code>Search 48</code> icon. */ public static final int SEARCH_48 = 55; /** ID of <code>Search</code> icon. */ public static final int SEARCH = 56; /** The <code>Filter menu</code> icon. */ public static final int FILTER_MENU = 57; /** The <code>Clear disabled</code> icon. */ public static final int CLEAR_DISABLED = 58; /** The <code>Search Tag</code> icon. */ public static final int SEARCH_TAG = 59; /** The <code>Search Image</code> icon. */ public static final int SEARCH_IMAGE = 60; /** The <code>Search Annotation</code> icon. */ public static final int SEARCH_ANNOTATION = 61; /** The <code>Search Dataset</code> icon. */ public static final int SEARCH_DATASET = 62; /** The <code>Search Project</code> icon. */ public static final int SEARCH_PROJECT = 63; /** The <code>Tag</code> icon. */ public static final int TAG = 64; /** The <code>Tag Set</code> icon. */ public static final int TAG_SET = 65; /** The <code>Tag big</code> icon. */ public static final int TAG_48 = 66; /** The <code>Tag used</code> icon. */ public static final int TAG_USED = 67; /** The <code>Tag used</code> icon. */ public static final int BROWSE = 68; /** The <code>Transparent</code> icon. */ public static final int TRANSPARENT = 69; /** The <code>Owner 48</code> icon. */ public static final int OWNER_48 = 70; /** The <code>Owner 48</code> icon. */ public static final int SEARCH_TAG_SET = 71; /** The <code>Edit remove</code> icon. */ public static final int EDIT_REMOVE_12 = 72; /** The <code>Add 12</code> icon. */ public static final int ADD_12 = 73; /** The <code>Close 8</code> icon. */ public static final int CLOSE = 74; /** The <code>Close over 8</code> icon. */ public static final int CLOSE_OVER = 75; /** The <code>Help</code> icon. */ public static final int HELP = 76; /** The <code>Help</code> icon. */ public static final int HELP_48 = 77; /** The <code>Annotation</code> icon. */ public static final int ANNOTATION = 78; /** The <code>File Annotation</code> icon. */ public static final int FILE_ANNOTATION = 79; /** The <code>URL Annotation</code> icon. */ public static final int URL_ANNOTATION = 80; /** The <code>Start selected</code> icon. */ public static final int START_SELECTED = 81; /** The <code>Start unselected</code> icon. */ public static final int START_UNSELECTED = 82; /** The <code>Start unselected</code> icon. */ public static final int BROKEN_FILE_96 = 83; /** ID of the <code>RightArrow</code> icon for the slider. */ public static final int DOUBLE_RIGHT_ARROW = 84; /** ID of the <code>Double</code> icon for the slider. */ public static final int DOUBLE_LEFT_ARROW = 85; /** ID of the <code>RightArrow</code> icon for the slider. */ public static final int RIGHT_ARROW = 86; /** ID of the <code>Double</code> icon for the slider. */ public static final int LEFT_ARROW = 87; /** The <code>Tag</code> icon. */ public static final int TAG_OTHER_OWNER = 88; /** The <code>Wizard</code> icon. */ public static final int WIZARD_48 = 89; /** The <code>Start selected</code> icon. */ public static final int START_SELECTED_12 = 90; /** The <code>Start unselected</code> icon. */ public static final int START_UNSELECTED_12 = 91; /** The <code>Start selected</code> icon. */ public static final int START_SELECTED_8 = 92; /** The <code>Start unselected</code> icon. */ public static final int START_UNSELECTED_8 = 93; /** The <code>File</code> icon. */ public static final int FILE = 94; /** The <code>Browser</code> icon. */ public static final int BROWSER = 95; /** ID of the <code>LeftArrowDisabled</code> icon for the slider. */ public static final int DOWN_ARROW_BLACK_10 = 96; /** ID of the <code>RightArrowDisabled</code> icon for the slider. */ public static final int RIGHT_ARROW_BLACK_10 = 97; /** ID of the <code>Forward</code> icon. */ public static final int FORWARD = 98; /** ID of the <code>Backward</code> icon. */ public static final int BACKWARD = 99; /** ID of the <code>Backward</code> icon. */ public static final int ACQUISITION_48 = 100; /** The <code>PDF File</code> icon. */ public static final int FILE_PDF = 101; /** The <code>Text File</code> icon. */ public static final int FILE_TEXT = 102; /** The <code>Editor File</code> icon. */ public static final int FILE_EDITOR = 103; /** The <code>Word File</code> icon. */ public static final int FILE_WORD = 104; /** The <code>Excel File</code> icon. */ public static final int FILE_EXCEL = 105; /** The <code>PPT file</code> icon. */ public static final int FILE_PPT = 106; /** The <code>XML File</code> icon. */ public static final int FILE_XML = 107; /** The <code>HTML File</code> icon. */ public static final int FILE_HTML = 108; /** The <code>Hyperlink</code> icon. */ public static final int HYPERLINK = 109; /** The <code>Hyperlink</code> icon. */ public static final int UP_DOWN_9_12 = 110; /** A 48x48 version of the <code>Project</code> icon. */ public static final int PROJECT_48 = 111; /** A 48x48 version of the <code>Dataset</code> icon. */ public static final int DATASET_48 = 112; /** A 48x48 version of the <code>Tag Set</code> icon. */ public static final int TAG_SET_48 = 113; /** A 48x48 version of the <code>Screen</code> icon. */ public static final int SCREEN_48 = 114; /** A 48x48 version of the <code>Create</code> icon. */ public static final int CREATE_48 = 115; /** A 16x16 version of the <code>Edit</code> icon. */ public static final int EDIT = 116; /** A 16x16 version of the <code>Experiment</code> icon. */ public static final int EDITOR_EXPERIMENT = 117; /** A 16x16 version of the <code>Collapse</code> icon. */ public static final int COLLAPSE = 118; /** A 16x16 version of the <code>sort alphabetically</code> icon. */ public static final int SORT_ALPHABETICALLY = 119; /** A 16x16 version of the <code>sort by date</code> icon. */ public static final int SORT_BY_DATE = 120; /** A 16x16 version of the <code>words</code> icon. */ public static final int MESSED_WORDS = 121; /** A 16x16 version of the <code>project</code> icon. */ public static final int PROJECT = 122; /** A 16x16 version of the <code>quit</code> icon. */ public static final int QUIT = 123; /** A 16x16 version of the <code>refresh</code> icon. */ public static final int REFRESH = 124; /** A 16x16 version of the <code>empty trash can</code> icon. */ public static final int TRASH_CAN_EMPTY = 125; /** A 22x22 version of the <code>quit</code> icon. */ public static final int QUIT_22 = 126; /** A 22x22 version of the <code>refresh</code> icon. */ public static final int REFRESH_22 = 127; /** A 22x22 version of the <code>image</code> icon. */ public static final int IMAGE_22 = 128; /** A 48x48 version of the <code>image</code> icon. */ public static final int MOVIE_48 = 129; /** The <code>Color Picker</code> icon. */ public static final int COLOR_PICKER = 130; /** A 48x48 version of the <code>Import</code> icon. */ public static final int IMPORT_48 = 131; /** A 64x64 version of the <code>Submit</code> icon. */ public static final int SUBMIT_ICON_64 = 132; /** ID of the <code>Actual Size</code> icon. */ public static final int ACTUAL_SIZE = 133; /** ID of the <code>Zoom In</code> icon. */ public static final int ZOOM_IN = 134; /** ID of the <code>Zoom Out</code> icon. */ public static final int ZOOM_OUT = 135; /** The <code>Tag</code> icon. */ public static final int TAG_SET_OTHER_OWNER = 136; /** ID of the <code>Group</code> icon. */ public static final int GROUP = 137; /** ID of the <code>encrypted</code> icon. */ public static final int ENCRYPTED_24 = 138; /** ID of the <code>decrypted</code> icon. */ public static final int DECRYPTED_24 = 139; /** ID of the 96x96 <code>Personal</code> icon. */ public static final int PERSONAL_96 = 140; /** The <code>Private Group</code> icon. */ public static final int PRIVATE_GROUP = 141; /** The <code>Read Group</code> icon. */ public static final int READ_GROUP = 142; /** The <code>Read Link Group</code> icon. */ public static final int READ_LINK_GROUP = 143; /** The <code>Public Group</code> icon. */ public static final int PUBLIC_GROUP = 144; /** The 12x12 <code>Private Group Drop Down</code> icon. */ public static final int PRIVATE_GROUP_DD_12 = 145; /** The 12x12 <code>Read Group Drop Down</code> icon. */ public static final int READ_GROUP_DD_12 = 146; /** The 12x12 <code>Read Link Group Drop Down</code> icon. */ public static final int READ_LINK_GROUP_DD_12 = 147; /** The 12x12 <code>Public Group Drop Down</code> icon. */ public static final int PUBLIC_GROUP_DD_12 = 148; /** The <code>Ontology</code> icon. */ public static final int ONTOLOGY = 149; /** The 32x32 <code>Error</code> icon. */ public static final int ERROR_32 = 150; /** The 48x48 <code>Upload Script</code> icon. */ public static final int UPLOAD_SCRIPT_48 = 151; /** The <code>Upload Script</code> icon. */ public static final int UPLOAD_SCRIPT = 152; /** The <code>No entry</code> icon. */ public static final int NO_ENTRY = 153; /** The <code>Read Link Group</code> icon. */ public static final int READ_WRITE_GROUP = 154; /** The <code>Read Link Group</code> icon. */ public static final int NOT_OWNED_8 = 155; /** The <code>Selected</code> icon. */ public static final int SELECTED = 156; /** The <code>Not Selected</code> icon. */ public static final int NOT_SELECTED = 157; /** The <code>Public Group</code> icon. */ public static final int PUBLIC_GROUP_READ_WRITE = 158; /** * The maximum ID used for the icon IDs. * Allows to correctly build arrays for direct indexing. */ private static int MAX_ID = 158; /** Paths of the icon files. */ private static String[] relPaths = new String[MAX_ID+1]; static { relPaths[COLOUR_SLIDER_24] = "coloursliders24.png"; relPaths[COLOUR_SWATCH_24] = "colourswatch24.png"; relPaths[COLOUR_WHEEL_24] = "colourwheel24.png"; relPaths[CANCEL_22] = "nuvola_cancel22.png"; relPaths[OK_22] = "nuvola_button_accept22.png"; relPaths[UNDO_22] = "nuvola_undo22.png"; relPaths[THUMB] = "sliderthumb.png"; relPaths[THUMB_DISABLED] = "sliderthumb_disabled.png"; relPaths[UP_ARROW_10] = "nuvola_player_play10_up.png"; relPaths[DOWN_ARROW_10] = "nuvola_player_play10_down.png"; relPaths[LEFT_ARROW_10] = "nuvola_player_play10_left.png"; relPaths[RIGHT_ARROW_10] = "nuvola_player_play10_right.png"; relPaths[UP_ARROW_DISABLED_10] = "nuvola_player_play10_up_disabled.png"; relPaths[DOWN_ARROW_DISABLED_10] = "nuvola_player_play10_down_disabled.png"; relPaths[LEFT_ARROW_DISABLED_10] = "nuvola_player_play10_left_disabled.png"; relPaths[RIGHT_ARROW_DISABLED_10] = "nuvola_player_play10_right_disabled.png"; relPaths[RIGHT_ARROW_BLACK_10] = "nuvola_player_play10_right_black.png"; relPaths[DOWN_ARROW_BLACK_10] = "nuvola_player_play10_down_black.png"; relPaths[QUESTION_ICON_48] = "nuvola_filetypes48.png"; relPaths[ANNOTATION_48] = "nuvola_kwrite48.png"; relPaths[INFO] = "nuvola_messagebox_info16.png"; relPaths[PROGRESS] = "eclipse_progress_none16"; relPaths[CLASSIFICATION_48] = "nuvola_filenew48.png"; relPaths[ERROR_ICON_64] = "nuvola_important64.png"; relPaths[COMMENT_ICON_64] = "nuvola_mail_send64.png"; relPaths[SERVER_22] = "nuvola_server22.png"; relPaths[CONFIG_24] = "nuvola_configure24.png"; relPaths[CONFIG_PRESSED_24] = "config_pressed22.png"; relPaths[CONFIG_48] = "nuvola_configure48.png"; relPaths[REMOVE] = "remove16.png"; relPaths[ADD] = "add16.png"; relPaths[INFO_32] = "nuvola_messagebox_info32.png"; relPaths[DOWNLOAD_48] = "nuvola_download_manager48.png"; relPaths[MINUS_9] = "minus.png"; relPaths[MINUS_OVER_9] = "minus_over.png"; relPaths[PLUS_9] = "plus.png"; relPaths[PLUS_OVER_9] = "plus_over.png"; relPaths[CROSS] = "cross.png"; relPaths[CROSS_OVER] = "cross_over.png"; relPaths[ERROR] = "eclipse_error_tsk16.png"; relPaths[HISTORY] = "eclipse_history_list16.png"; relPaths[BACKWARD_NAV] = "eclipse_backward_nav16.png"; relPaths[TRASH_CAN] = "nuvola_trashcan_full16.png"; relPaths[SAVE] = "nuvola_filesaveas16.png"; relPaths[OWNER] = "nuvola_kdmconfig_modified16.png"; relPaths[CALENDAR] = "nuvola_date16.png"; relPaths[DATASET] = "nuvola_folder_image16.png"; relPaths[IMAGE] = "nuvola_image16.png"; relPaths[SINGLE_VIEW_MODE_9] = "sinlge_view_mode.png"; relPaths[SINGLE_VIEW_MODE_OVER_9] = "sinlge_view_mode_over.png"; relPaths[MULTI_VIEW_MODE] = "nuvola_view_multicolumn16.png"; relPaths[VIEWS_LIST_9] = "frame_list.png"; relPaths[VIEWS_LIST_OVER_9] = "frame_list_over.png"; relPaths[INFORMATION_MESSAGE_48] = "nuvola_messagebox_info48.png"; relPaths[QUESTION_32] = "nuvola_filetypes32.png"; relPaths[SAVE_48] = "nuvola_filesaveas48.png"; relPaths[LOAD_48] = "nuvola_revert48.png"; relPaths[SEARCH_48] = "nuvola_find48.png"; relPaths[SEARCH] = "eclipse_view_menu16.png"; relPaths[FILTER_MENU] = "eclipse_view_menu16.png"; relPaths[CLEAR_DISABLED] = "nuvola_fileclose_light16.png"; relPaths[SEARCH_TAG] = "search_knotes16.png"; relPaths[SEARCH_IMAGE] = "search_image16.png"; relPaths[SEARCH_ANNOTATION] = "search_annotation16.png"; relPaths[SEARCH_DATASET] = "search_folder_image16.png"; relPaths[SEARCH_PROJECT] = "search_document16.png"; relPaths[TAG] = "nuvola_knotes16.png"; relPaths[TAG_SET] = "nuvola_knotesRedRed16.png"; relPaths[TAG_48] = "nuvola_knotes48.png"; relPaths[TAG_USED] = "tag_used16.png"; relPaths[BROWSE] = "zoom16.png"; relPaths[TRANSPARENT] = "eclipse_transparent16.png"; relPaths[OWNER_48] = "nuvola_kdmconfig_modified48.png"; relPaths[SEARCH_TAG_SET] ="search_tag_folder16.png"; relPaths[EDIT_REMOVE_12] = "remove12.png"; relPaths[ADD_12] = "add12.png"; relPaths[CLOSE] = "nuvola_fileclose16.png"; relPaths[CLOSE_OVER] = "filecloseRed16.png"; relPaths[HELP] = "nuvola_help16.png"; relPaths[HELP_48] = "nuvola_help48.png"; relPaths[ANNOTATION] = "nuvola_kwrite16.png"; relPaths[FILE_ANNOTATION] = "nuvola_attach16.png"; relPaths[URL_ANNOTATION] = "nuvola_browser16.png"; relPaths[START_SELECTED] = "nuvola_mozilla16.png"; relPaths[START_UNSELECTED] = "mozilla_grey16.png"; relPaths[BROKEN_FILE_96] = "nuvola_image_grey96.png"; relPaths[DOUBLE_LEFT_ARROW] = "nuvola_2leftarrow16.png"; relPaths[DOUBLE_RIGHT_ARROW] = "nuvola_2rightarrow16.png"; relPaths[LEFT_ARROW] = "nuvola_1leftarrow16.png"; relPaths[RIGHT_ARROW] = "nuvola_1rightarrow16.png"; relPaths[TAG_OTHER_OWNER] = "nuvola_knotes_group16.png"; relPaths[WIZARD_48] ="nuvola_wizard48.png"; relPaths[START_SELECTED_12] = "nuvola_mozilla12.png"; relPaths[START_UNSELECTED_12] = "mozilla_grey12.png"; relPaths[START_SELECTED_8] = "nuvola_mozilla8.png"; relPaths[START_UNSELECTED_8] = "mozilla_grey8.png"; relPaths[FILE] = "nuvola_attach16.png"; relPaths[BROWSER] = "nuvola_browser16.png"; relPaths[FORWARD] = "eclipse_forward_nav16.png"; relPaths[BACKWARD] = "eclipse_backward_nav16.png"; relPaths[ACQUISITION_48] = "nuvola_help48.png"; relPaths[FILE_PDF] = "nuvola_acroread16.png"; relPaths[FILE_TEXT] = "nuvola_txt16.png"; relPaths[FILE_WORD] = "alienOSX_Microsoft_Word16.png"; relPaths[FILE_PPT] = "alienOSX_Microsoft_PowerPoint16.png"; relPaths[FILE_EXCEL] = "alienOSX_Microsoft_Excel16.png"; relPaths[FILE_XML] = "txt_xml16.png"; relPaths[FILE_HTML] = "txt_html16.png"; relPaths[FILE_EDITOR] = "omeroEditor16.png"; relPaths[HYPERLINK] = "nuvola_browser16.png"; relPaths[UP_DOWN_9_12] = "upDown9_12.png"; relPaths[TAG_SET_48] = "nuvola_knotes_red48.png"; relPaths[PROJECT_48] = "nuvola_folder_blue_open48.png"; relPaths[DATASET_48] = "nuvola_folder_image48.png"; relPaths[SCREEN_48] = "nuvola_folder_blue_open_modified_screen48.png"; relPaths[CREATE_48] = "nuvola_filenew48.png"; relPaths[EDIT] = "nuvola_ksig16.png"; relPaths[EDITOR_EXPERIMENT] = "expNew.png"; relPaths[COLLAPSE] = "eclipse_collapseall16.png"; relPaths[SORT_ALPHABETICALLY] = "eclipse_alphab_sort_co16.png"; relPaths[SORT_BY_DATE] = "eclipse_trace_persp16.png"; relPaths[MESSED_WORDS] = "nuvola_kmessedwords16.png"; relPaths[PROJECT] = "nuvola_folder_darkblue_open16.png"; relPaths[QUIT] = "nuvola_exit16.png"; relPaths[REFRESH] = "nuvola_reload16.png"; relPaths[TRASH_CAN_EMPTY] = "nuvola_reload16.png"; relPaths[QUIT_22] = "nuvola_exit22.png"; relPaths[REFRESH_22] = "nuvola_reload22.png"; relPaths[IMAGE_22] = "nuvola_indeximg22.png"; relPaths[MOVIE_48] = "crystal_video48.png"; relPaths[COLOR_PICKER] = "nuvola_colorpicker16.png"; relPaths[IMPORT_48] = "omeroImporter48.png"; relPaths[SUBMIT_ICON_64] = "nuvola_important64.png"; relPaths[ACTUAL_SIZE] = "nuvola_viewmagfit16.png"; relPaths[ZOOM_IN] = "nuvola_viewmag+16.png"; relPaths[ZOOM_OUT] = "nuvola_viewmag-16.png"; relPaths[TAG_SET_OTHER_OWNER] = "nuvola_knotesRed_group16.png"; relPaths[GROUP] = "group_generic16.png"; relPaths[ENCRYPTED_24] = "nuvola_encrypted_grey24.png"; relPaths[DECRYPTED_24] = "nuvola_decrypted_grey24.png"; relPaths[PERSONAL_96] ="nuvola_personal96.png"; relPaths[PRIVATE_GROUP] = "private16.png"; relPaths[READ_GROUP] = "group_read16.png"; relPaths[READ_LINK_GROUP] = "group_read_annotate16.png"; relPaths[PUBLIC_GROUP] = "public_read16.png"; relPaths[READ_WRITE_GROUP] = "group_read_write16.png"; relPaths[PRIVATE_GROUP_DD_12] = "nuvola_permission_private_dd12.png"; relPaths[READ_GROUP_DD_12] = "nuvola_permission_readOnly_dd12.png"; relPaths[READ_LINK_GROUP_DD_12] = "nuvola_permission_read_dd12.png"; relPaths[PUBLIC_GROUP_DD_12] = "nuvola_permission_public_dd12.png"; relPaths[ONTOLOGY] = "nuvola_ledorange_readOnly16.png"; relPaths[ERROR_32] = "nuvola_no32.png"; relPaths[UPLOAD_SCRIPT_48] = "nuvola_script_add48.png"; relPaths[UPLOAD_SCRIPT] = "nuvola_script_add16.png"; relPaths[NO_ENTRY] = "crystal_agt_action_fail16.png"; relPaths[NOT_OWNED_8] = "red_dot8.png"; relPaths[SELECTED] = "tick_check16.png"; relPaths[NOT_SELECTED] = "empty_check16.png"; relPaths[PUBLIC_GROUP_READ_WRITE] = "public_read16.png"; } /** * Returns the image of the login button within the splash screen. * * @return See above. */ public static Icon getLoginBackground() { return createIcon(LOGIN_BACKGROUND); } /** * Returns the splash screen for ImageJ. * * @return See above. */ public static Icon getImageJSplashscreen() { return createIcon(IMAGEJ_SPLASHSCREEN); } /** * Returns the <i>OME</i> logo to be used for title-bars. * * @return See above. */ public static Image getOMEImageIcon() { //This type cast is OK, see implementation of createIcon. return ((ImageIcon) getOMEIcon()).getImage(); } /** * Returns the <i>OME</i> logo. * * @return See above. */ public static Icon getOMEIcon() { return createIcon(OME_ICON); } /** * Retrieves the icon specified by <code>id</code>. * If the icon can't be retrieved, then this method will log the error and * return <code>null</code>. * * @param id The index of the file name in the array of file names * specified to this class' constructor. * @return An {@link Icon} object created from the image file. The return * value will be <code>null</code> if the file couldn't be found * or an image icon couldn't be created from that file. */ public Icon getIcon(int id) { if (id < 0 || relPaths.length <= id) return null; return getIcon(relPaths[id]); } /** * Retrieves the icon specified by <code>name</code>. * If the icon can't be retrieved, then this method will log the error and * return <code>null</code>. * * @param name Must be one a valid icon file name within the directory * used by the {@link IconFactory} instance specified via * this class' constructor. * @return An {@link Icon} object created from the image file. The return * value will be <code>null</code> if the file couldn't be found * or an image icon couldn't be created from that file. */ public Icon getIcon(String name) { Icon icon = factory.getIcon(name); if (icon == null) { StringBuffer buf = new StringBuffer("Failed to retrieve icon: "); buf.append("<classpath>"); buf.append(factory.getResourcePathname(name)); buf.append("."); } return icon; } /** * Retrieves the icon specified by <code>id</code>. * If the icon can't be retrieved, then this method will log the error and * return <code>null</code>. * * @param id The index of the file name in the array of file names * specified to this class' constructor. * @return An {@link Icon} object created from the image file. The return * value will be <code>null</code> if the file couldn't be found * or an image icon couldn't be created from that file. */ public ImageIcon getImageIcon(int id) { if (id < 0 || relPaths.length <= id) return null; return getImageIcon(relPaths[id]); } /** * Retrieves the icon specified by <code>name</code>. * If the icon can't be retrieved, then this method will log the error and * return <code>null</code>. * * @param name Must be one a valid icon file name within the directory * used by the {@link IconFactory} instance specified via * this class' constructor. * @return An {@link Icon} object created from the image file. The return * value will be <code>null</code> if the file couldn't be found * or an image icon couldn't be created from that file. */ public ImageIcon getImageIcon(String name) { ImageIcon icon = factory.getImageIcon(name); if (icon == null) { StringBuffer buf = new StringBuffer("Failed to retrieve icon: "); buf.append("<classpath>"); buf.append(factory.getResourcePathname(name)); buf.append("."); } return icon; } /** The sole instance. */ private static IconManager singleton; /** The factory. */ private IconFactory factory; /** * Returns the <code>IconManager</code> object. * * @return See above. */ public static IconManager getInstance() { if (singleton == null) singleton = new IconManager(); return singleton; } /** Creates a new instance and configures the parameters. */ private IconManager() { factory = new IconFactory(); } /** * Utility factory method to create an icon from a file. * * @param path The path of the icon file relative to this class. * @return An instance of {@link javax.swing.Icon Icon} or * <code>null</code> if the path was invalid. */ private static Icon createIcon(String path) { URL location = IconManager.class.getResource(path); ImageIcon icon = null; if (location != null) icon = new ImageIcon(location); return icon; } }