eu.geclipse.servicejob.ui.providers.DetailsLabelProvider.java Source code

Java tutorial

Introduction

Here is the source code for eu.geclipse.servicejob.ui.providers.DetailsLabelProvider.java

Source

/******************************************************************************
 * Copyright (c) 2007 g-Eclipse consortium 
 * 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
 *
 * Initial development of the original code was made for
 * project g-Eclipse founded by European Union
 * project number: FP6-IST-034327  http://www.geclipse.eu/
 *
 * Contributor(s):
 *     PSNC: 
 *      - Katarzyna Bylec (katis@man.poznan.pl)
 *           
 *****************************************************************************/
package eu.geclipse.servicejob.ui.providers;

import java.text.DateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;

import eu.geclipse.core.model.IServiceJob;
import eu.geclipse.core.model.IServiceJobResult;
import eu.geclipse.servicejob.ui.preferences.PreferencesManager;

/**
 * Label provider for Operator's Jobs details view.
 */
public class DetailsLabelProvider implements ITableLabelProvider, ITableColorProvider {

    Map<Integer, String> indexVsNames = new HashMap<Integer, String>();
    IServiceJob root;
    //  String name;

    public Image getColumnImage(final Object element, final int columnIndex) {
        return null;
    }

    @SuppressWarnings("unchecked")
    public String getColumnText(final Object element, final int columnIndex) {
        String result = ""; //$NON-NLS-1$
        if (columnIndex == 0) {
            if (element instanceof String) {
                result = (String) element;
            } else if (element instanceof List) {
                result = DateFormat.getDateTimeInstance()
                        .format(((IServiceJobResult) ((List) element).get(0)).getRunDate());
            }
        } else if (element instanceof String) {
            IServiceJobResult serviceJobResult = this.root.getSingleServiceJobResult(
                    this.indexVsNames.get(Integer.valueOf(columnIndex)), (String) element,
                    this.root.getLastUpdate((String) element));
            if (serviceJobResult == null) {
                result = "N/A"; //$NON-NLS-1$
            } else {
                result = serviceJobResult.getResultEnum();
            }
        } else if (element instanceof List) {
            for (IServiceJobResult serviceJobResult : (List<IServiceJobResult>) element) {
                if (serviceJobResult.getSubServiceJobName()
                        .equals(this.indexVsNames.get(Integer.valueOf(columnIndex)))) {
                    result = serviceJobResult.getResultSummary();
                    break;
                }
            }
        }
        return result;
    }

    public void addListener(final ILabelProviderListener listener) {
        // empty implementation
    }

    public void dispose() {
        // empty implementation
    }

    public boolean isLabelProperty(final Object element, final String property) {
        return false;
    }

    public void removeListener(final ILabelProviderListener listener) {
        // empty implementation
    }

    /**
     * Changes Operator's Job for which labels are provided by this labels
     * provider.
     * 
     * @param newInput new Operator's Job this label provider will provide labels
     *            for
     */
    public void changeRoot(final IServiceJob newInput) {
        this.root = newInput;
        this.indexVsNames = new HashMap<Integer, String>();
        int i = 1;
        if (newInput != null) {
            for (String serviceJobName : this.root.getSingleServiceJobNames()) {
                this.indexVsNames.put(Integer.valueOf(i), serviceJobName);
                i++;
            }
        }
    }

    public Color getBackground(final Object element, final int columnIndex) {
        // background is default color
        return null;
    }

    @SuppressWarnings("unchecked")
    public Color getForeground(final Object element, final int columnIndex) {
        Color result = null;
        if (columnIndex != 0 && element instanceof List) {
            List<IServiceJobResult> serviceJobResultList = (List<IServiceJobResult>) element;
            if (columnIndex - 1 < serviceJobResultList.size()) {
                IServiceJobResult serviceJobResult = serviceJobResultList.get(columnIndex - 1);
                if (serviceJobResult != null && serviceJobResult.getSubServiceJobName()
                        .equals(this.indexVsNames.get(Integer.valueOf(columnIndex)))) {
                    result = PreferencesManager.getManager().getColor(serviceJobResult.getResultEnum());
                } else if (serviceJobResult != null) {
                    for (IServiceJobResult serviceJobRes : serviceJobResultList) {
                        if (this.indexVsNames.get(Integer.valueOf(columnIndex))
                                .equals(serviceJobRes.getSubServiceJobName())) {
                            result = PreferencesManager.getManager().getColor(serviceJobRes.getResultEnum());
                            break;
                        }
                    }
                }
            }
        } else {
            result = PreferencesManager.getManager().getColor("N/A"); //$NON-NLS-1$
        }
        if (columnIndex != 0 && element instanceof String) {
            IServiceJobResult serviceJobResult = this.root.getSingleServiceJobResult(
                    this.indexVsNames.get(Integer.valueOf(columnIndex)), (String) element,
                    this.root.getLastUpdate((String) element));
            if (serviceJobResult == null) {
                result = PreferencesManager.getManager().getColor("N/A"); //$NON-NLS-1$
            } else {
                result = PreferencesManager.getManager().getColor(serviceJobResult.getResultEnum());
            }
        }
        return result;
    }
}