tern.eclipse.ide.internal.ui.descriptors.TernModuleImage.java Source code

Java tutorial

Introduction

Here is the source code for tern.eclipse.ide.internal.ui.descriptors.TernModuleImage.java

Source

/**
 *  Copyright (c) 2013-2016 Angelo ZERR.
 *  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
 *
 *  Contributors:
 *  Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation
 */
package tern.eclipse.ide.internal.ui.descriptors;

import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;

import tern.eclipse.ide.ui.ImageResource;
import tern.eclipse.ide.ui.descriptors.ITernModuleImage;
import tern.utils.StringUtils;

/**
 * Tern module image.
 *
 */
public class TernModuleImage implements ITernModuleImage {

    private final String id;
    private final String imageKey;

    public TernModuleImage(IConfigurationElement ce) {
        this.id = ce.getAttribute("id");
        this.imageKey = getImageKey(ce, id);
    }

    private String getImageKey(IConfigurationElement ce, String id) {
        String iconPath = ce.getAttribute("icon");
        if (StringUtils.isEmpty(iconPath)) {
            return null;
        }
        String name = ce.getDeclaringExtension().getContributor().getName();
        String imageKey = new StringBuilder("ternDescriptor_").append(name).append(id).toString();

        ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(name, iconPath);
        if (imageDescriptor == null && iconPath != null && iconPath.length() > 0)
            imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
        ImageResource.registerImageDescriptor(imageKey, imageDescriptor);
        return imageKey;
    }

    public String getId() {
        return id;
    }

    @Override
    public Image getImage() {
        if (imageKey == null) {
            return null;
        }
        return ImageResource.getImage(imageKey);
    }

    @Override
    public ImageDescriptor getImageDescriptor() {
        if (imageKey == null) {
            return null;
        }
        return ImageResource.getImageDescriptor(imageKey);
    }

    public void dispose() {

    }

}