net.bioclipse.qsar.ui.editors.DescriptorLabelProvider.java Source code

Java tutorial

Introduction

Here is the source code for net.bioclipse.qsar.ui.editors.DescriptorLabelProvider.java

Source

/*******************************************************************************
 * Copyright (c) 2009 Ola Spjuth.
 * 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:
 *     Ola Spjuth - initial API and implementation
 ******************************************************************************/
package net.bioclipse.qsar.ui.editors;

import net.bioclipse.qsar.DescriptorType;
import net.bioclipse.qsar.ParameterType;
import net.bioclipse.qsar.ResponseType;
import net.bioclipse.qsar.business.IQsarManager;
import net.bioclipse.qsar.descriptor.model.BaseEPObject;
import net.bioclipse.qsar.descriptor.model.Descriptor;
import net.bioclipse.qsar.descriptor.model.DescriptorCategory;
import net.bioclipse.qsar.descriptor.model.DescriptorImpl;
import net.bioclipse.qsar.ui.Activator;

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

public class DescriptorLabelProvider implements ITableLabelProvider, ILabelProvider {

    Image open, desc;
    IQsarManager qsar;

    public DescriptorLabelProvider() {
        qsar = net.bioclipse.qsar.init.Activator.getDefault().getQsarManager();
    }

    public Image getColumnImage(Object element, int columnIndex) {

        if (element instanceof PendingObject) {
            return null;
        }
        //      else if (element instanceof DescriptorInstance) {
        //         if (desc==null) desc= Activator.getImageDescriptor(
        //               "icons/descriptor.png").createImage();
        //         return desc;
        //      }

        else if (element instanceof DescriptorType) {
            if (desc == null)
                desc = Activator.getImageDescriptor("icons/descriptor.png").createImage();
            return desc;
        }

        if (columnIndex == 0) {
            if (element instanceof DescriptorCategory) {
                if (open == null)
                    open = Activator.getImageDescriptor("icons/open.gif").createImage();
                return open;
            } else if (element instanceof Descriptor) {
                if (desc == null)
                    desc = Activator.getImageDescriptor("icons/descriptor.png").createImage();
                return desc;
            }

            else if (element instanceof BaseEPObject) {
                BaseEPObject epobj = (BaseEPObject) element;
                return epobj.getIcon();
            }
        }
        return null;
    }

    public String getColumnText(Object element, int columnIndex) {

        if (element instanceof PendingObject) {
            PendingObject po = (PendingObject) element;
            if (columnIndex == 0)
                return po.getPendingString();
            return "";
        }
        //      else if (element instanceof DescriptorInstance) {
        //         DescriptorInstance inst = (DescriptorInstance) element;
        //         return inst.getName();
        //      }
        else if (element instanceof DescriptorType) {
            DescriptorType desc = (DescriptorType) element;

            String descString = qsar.getDescriptorByID(desc.getId()).getName();

            String cpstr = "";
            if (desc.getParameter() != null && desc.getParameter().size() > 0) {
                for (ParameterType param : desc.getParameter()) {
                    String pstr = param.getKey() + "=" + param.getValue() + ", ";
                    cpstr = cpstr + pstr;
                }
                cpstr = cpstr.substring(0, cpstr.length() - 2);
            }

            if (cpstr.length() > 1) {
                descString = descString + " [" + cpstr + "]";
            }

            return descString;
        }

        else if (element instanceof ResponseType) {
            ResponseType response = (ResponseType) element;

            if (columnIndex == 0) {
                //TODO: changed, might need work: ols was: response.getResourceIndex()
                return response.getStructureID() + "-" + response.getStructureID();
            }
            if (columnIndex == 1) {
                if (response.getArrayValues() != null)
                    return response.getArrayValues();
                else
                    return "" + response.getValue();
            }

            return "????";
        }

        else if (element instanceof Descriptor) {
            Descriptor desc = (Descriptor) element;
            if (columnIndex == 0) {
                return desc.getName();
            }

            //Providers column
            else if (columnIndex == 1) {

                String retProv = "";
                for (DescriptorImpl impl : qsar.getDescriptorImplsForDescriptor(desc.getId())) {
                    retProv = retProv + impl.getProvider().getShortName() + ", ";
                }

                if (retProv.length() > 1) {
                    //Remove last comma and space
                    retProv = retProv.substring(0, retProv.length() - 2);
                }

                return retProv;
            }
        } else if (element instanceof DescriptorCategory) {
            BaseEPObject epobj = (BaseEPObject) element;
            if (columnIndex == 0) {
                return epobj.getName();
            }
            return "";
        }

        return "NA";
    }

    public void addListener(ILabelProviderListener listener) {
    }

    public void dispose() {
    }

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

    public void removeListener(ILabelProviderListener listener) {
    }

    public Image getImage(Object element) {
        // TODO Auto-generated method stub
        return null;
    }

    public String getText(Object element) {
        return getColumnText(element, 0);
    }

}