fr.openpeople.rdal.ide.view.traceability.navigator.CoverageLabelProvider.java Source code

Java tutorial

Introduction

Here is the source code for fr.openpeople.rdal.ide.view.traceability.navigator.CoverageLabelProvider.java

Source

/*******************************************************************************
 * Copyright (c) 2011 Lab-STICC Universite de Bretagne Sud, Lorient.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the CeCILL-B license available
 * at :
 * en : http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
 * fr : http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.html
 * 
 * Contributors:
 * Dominique BLOUIN (Lab-STICC UBS), dominique.blouin@univ-ubs.fr
 ******************************************************************************/
package fr.openpeople.rdal.ide.view.traceability.navigator;

import java.util.Collection;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.viewers.OwnerDrawLabelProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.TreeColumn;

import fr.labsticc.framework.core.exception.IExceptionHandler;

public class CoverageLabelProvider extends OwnerDrawLabelProvider {

    private final TreeColumn column;
    private final TreeViewer viewer;
    private final Collection<ICoverageLister> coverageListers;
    private final IExceptionHandler exceptionHandler;

    public CoverageLabelProvider(final TreeViewerColumn p_column2, final TreeViewer p_commonViewer,
            final Collection<ICoverageLister> p_coverageListers, final IExceptionHandler p_exceptionHandler) {
        column = p_column2.getColumn();
        viewer = p_commonViewer;
        coverageListers = p_coverageListers;
        exceptionHandler = p_exceptionHandler;
    }

    @Override
    protected void measure(final Event p_event, final Object p_element) {
    }

    @Override
    protected void paint(final Event p_event, final Object p_element) {
        final int colWidth = column.getWidth();

        if (colWidth != 0) {

            // Nothing to paint when the column is hidden.
            final Display display = viewer.getControl().getDisplay();
            final Rectangle place = new Rectangle(p_event.x, p_event.y, colWidth, p_event.height);

            for (final ICoverageLister coverageLister : coverageListers) {
                try {
                    coverageLister.drawCoverageData(p_element, display, p_event.gc, place);
                } catch (final CoreException p_ex) {
                    exceptionHandler.handleException(p_ex, p_element);
                }
            }
        }
    }
}