ch.qos.logback.beagle.util.ResourceUtil.java Source code

Java tutorial

Introduction

Here is the source code for ch.qos.logback.beagle.util.ResourceUtil.java

Source

/**
 * 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();
    }
}