Java tutorial
/** * Logback-beagle: The logback Console Plugin for Eclipse * Copyright (C) 2006-2012, QOS.ch. All rights reserved. * * This program and the accompanying materials are licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation. */ package ch.qos.logback.beagle.util; import java.util.HashMap; import java.util.Map; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import ch.qos.logback.beagle.Constants; public class ResourceUtil { public static Image ERROR_IMG; public static Image WARN_IMG; public static String ERROR_IMG_KEY = "ERROR_IMG_KEY"; public static String WARN_IMG_KEY = "WARN_IMG_KEY"; public static String RELEASE_SCROLL_LOCK_IMG_KEY = "RELEASE_SCROLL_LOCK_IMG_KEY"; public static String EXPAND_CALLERS_IMG_KEY = "EXPAND_CALLERS_IMG_KEY"; public static String COPY_CLIPBAORD_IMG_KEY = "COPY_CLIPBAORD_IMG_KEY"; public static String T_IMG_KEY = "T_IMG_KEY"; public static String D_IMG_KEY = "D_IMG_KEY"; public static String I_IMG_KEY = "I_IMG_KEY"; public static String W_IMG_KEY = "W_IMG_KEY"; public static String E_IMG_KEY = "E_IMG_KEY"; public static String JUMP_IMG_KEY = "JUMP_IMG_KEY"; public static Color GRAY; public static Font FONT; static String PATH_TO_ICONS = "icons/"; private static Map<String, Image> IMAGE_MAP = new HashMap<String, Image>(); public static void init(Display display) { WARN_IMG = loadImage(display, PATH_TO_ICONS + "flag_orange.png"); ERROR_IMG = loadImage(display, PATH_TO_ICONS + "flag_red.png"); putImage(WARN_IMG_KEY, WARN_IMG); putImage(ERROR_IMG_KEY, ERROR_IMG); putImage(RELEASE_SCROLL_LOCK_IMG_KEY, loadImage(display, PATH_TO_ICONS + "play_doc.gif")); putImage(JUMP_IMG_KEY, loadImage(display, PATH_TO_ICONS + "book_open.png")); putImage(EXPAND_CALLERS_IMG_KEY, loadImage(display, PATH_TO_ICONS + "preview-16x16.png")); putImage(COPY_CLIPBAORD_IMG_KEY, loadImage(display, PATH_TO_ICONS + "copy-16x16.png")); putImage(T_IMG_KEY, loadImage(display, PATH_TO_ICONS + "T-16x16.png")); putImage(D_IMG_KEY, loadImage(display, PATH_TO_ICONS + "D-16x16.png")); putImage(I_IMG_KEY, loadImage(display, PATH_TO_ICONS + "I-16x16.png")); putImage(W_IMG_KEY, loadImage(display, PATH_TO_ICONS + "W-16x16.png")); putImage(E_IMG_KEY, loadImage(display, PATH_TO_ICONS + "E-16x16.png")); FONT = new Font(null, "Courier", 10, SWT.NORMAL); GRAY = new Color(display, 245, 247, 248); } public static Image loadImage(Display display, String resourcePath) { // URL url = ResourceUtil.class.getClassLoader().getResource(resourcePath); // ImageDescriptor iDescriptor = ImageDescriptor.createFromURL(url); ImageDescriptor iDescriptor = ImageDescriptor.createFromFile(Constants.class, resourcePath); return iDescriptor.createImage(); } public static Image loadScaledImage(Display display, String resourcePath, int scale) { Image image = loadImage(display, resourcePath); Image scaled = new Image(display, image.getImageData().scaledTo(scale, scale)); return scaled; } public static void putImage(String key, Image img) { Image old = IMAGE_MAP.get(key); if (old != null) { old.dispose(); } IMAGE_MAP.put(key, img); } public static Image getImage(String key) { return IMAGE_MAP.get(key); } public static void dispose() { for (Image img : IMAGE_MAP.values()) { if (img != null) { img.dispose(); } } FONT.dispose(); GRAY.dispose(); } }