com.ebmwebsourcing.petals.services.editor.ServicesLabelProvider.java Source code

Java tutorial

Introduction

Here is the source code for com.ebmwebsourcing.petals.services.editor.ServicesLabelProvider.java

Source

/******************************************************************************
 * Copyright (c) 2010-2013, Linagora
 *
 * 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:
 *       Linagora - initial API and implementation
 *******************************************************************************/

package com.ebmwebsourcing.petals.services.editor;

import java.util.List;
import java.util.Map;

import org.eclipse.core.resources.IMarker;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;

import com.ebmwebsourcing.petals.common.internal.provisional.utils.ImageRegistry;
import com.ebmwebsourcing.petals.common.internal.provisional.utils.MarkerUtils;
import com.ebmwebsourcing.petals.services.PetalsServicesPlugin;
import com.sun.java.xml.ns.jbi.ServiceAssembly;
import com.sun.java.xml.ns.jbi.ServiceUnit;

/**
 * @author Vincent Zurczak - EBM WebSourcing
 */
public class ServicesLabelProvider extends LabelProvider {

    private final ImageDescriptor saImgDesc, suImgDesc;
    private Map<EObject, List<IMarker>> elementToMarkers;
    private final ImageRegistry imageRegistry;

    /**
     * Constructor.
     */
    public ServicesLabelProvider() {
        this.imageRegistry = new ImageRegistry();
        this.saImgDesc = PetalsServicesPlugin.getImageDescriptor("icons/obj16/service_assembly.png");
        this.suImgDesc = PetalsServicesPlugin.getImageDescriptor("icons/obj16/service_unit.png");
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.BaseLabelProvider#dispose()
     */
    @Override
    public void dispose() {

        if (this.imageRegistry != null)
            this.imageRegistry.dispose();

        super.dispose();
    }

    /**
     * @param elementToMarkers the elementToMarkers to set
     */
    public void setElementToMarkers(Map<EObject, List<IMarker>> elementToMarkers) {
        this.elementToMarkers = elementToMarkers;
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.LabelProvider
     * #getText(java.lang.Object)
     */
    @Override
    public String getText(Object element) {

        String result = "";
        if (element instanceof ServiceUnit)
            result = ((ServiceUnit) element).getIdentification().getName();
        else if (element instanceof ServiceAssembly)
            result = ((ServiceAssembly) element).getIdentification().getName();

        return result;
    }

    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.LabelProvider
     * #getImage(java.lang.Object)
     */
    @Override
    public Image getImage(Object element) {

        Image result = null;
        ImageDescriptor desc = null;
        if (element instanceof ServiceUnit)
            desc = this.suImgDesc;
        else if (element instanceof ServiceAssembly)
            desc = this.saImgDesc;

        if (desc != null) {

            // Get markers attached to this element
            int level = IStatus.OK;
            if (this.elementToMarkers != null) {
                List<IMarker> markers = this.elementToMarkers.get(element);
                if (markers != null)
                    level = MarkerUtils.getMaximumSeverity(markers);
            }

            // Need to create a composite image?
            if (level == IStatus.ERROR)
                result = this.imageRegistry.getErrorImage(desc);
            else if (level == IStatus.WARNING)
                result = this.imageRegistry.getWarningImage(desc);
            else
                result = this.imageRegistry.getBaseImage(desc);
        }

        return result;
    }
}