gov.redhawk.ide.codegen.ui.internal.CodegenPluginImages.java Source code

Java tutorial

Introduction

Here is the source code for gov.redhawk.ide.codegen.ui.internal.CodegenPluginImages.java

Source

/*******************************************************************************
 * This file is protected by Copyright. 
 * Please refer to the COPYRIGHT file distributed with this source distribution.
 *
 * This file is part of REDHAWK IDE.
 *
 * All rights reserved.  This program and the accompanying materials are made available under 
 * the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at 
 * http://www.eclipse.org/legal/epl-v10.html
 *******************************************************************************/
package gov.redhawk.ide.codegen.ui.internal;

import gov.redhawk.ide.codegen.ui.RedhawkCodegenUiActivator;

import java.net.URL;

import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;

/**
 * The Class ScaPluginImages.
 */
public final class CodegenPluginImages {

    /** The PLUGIN registry. */
    // CHECKSTYLE:OFF
    private static ImageRegistry PLUGIN_REGISTRY;

    /** The Constant ICONS_PATH. */
    public static final String ICONS_PATH = "icons/"; //$NON-NLS-1$

    /** CodeGenerator icon. */
    public static final ImageDescriptor GENERATE_CODE = CodegenPluginImages.create(CodegenPluginImages.ICONS_PATH,
            "generate_code.gif"); //$NON-NLS-1$

    // CHECKSTYLE:ON
    /**
     * Instantiates a new codegen plugin images.
     */
    private CodegenPluginImages() {

    }

    /**
     * Creates the.
     * 
     * @param prefix the prefix
     * @param name the name
     * 
     * @return the image descriptor
     */
    private static ImageDescriptor create(final String prefix, final String name) {
        return ImageDescriptor.createFromURL(CodegenPluginImages.makeImageURL(prefix, name));
    }

    /**
     * Gets the.
     * 
     * @param key the key
     * 
     * @return the image
     */
    public static Image get(final String key) {
        if (CodegenPluginImages.PLUGIN_REGISTRY == null) {
            CodegenPluginImages.initialize();
        }
        return CodegenPluginImages.PLUGIN_REGISTRY.get(key);
    }

    /* package */
    /**
     * Initialize.
     */
    private static void initialize() {
        CodegenPluginImages.PLUGIN_REGISTRY = new ImageRegistry();
        CodegenPluginImages.manage("generate_code.gif", CodegenPluginImages.GENERATE_CODE);
    }

    /**
     * Make image url.
     * 
     * @param prefix the prefix
     * @param name the name
     * 
     * @return the uRL
     */
    private static URL makeImageURL(final String prefix, final String name) {
        final String path = "$nl$/" + prefix + name; //$NON-NLS-1$
        return FileLocator.find(RedhawkCodegenUiActivator.getDefault().getBundle(), new Path(path), null);
    }

    /**
     * Manage the image descriptors.
     * 
     * @param key the key for the image
     * @param desc the image to store
     * 
     * @return the image
     */
    public static Image manage(final String key, final ImageDescriptor desc) {
        final Image image = desc.createImage();
        CodegenPluginImages.PLUGIN_REGISTRY.put(key, image);
        return image;
    }
}