package net.bioclipse.spectrum.outline; import net.bioclipse.spectrum.Activator; import nu.xom.Text; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.swt.graphics.Image; import org.xmlcml.cml.base.CMLElement; import org.xmlcml.cml.element.CMLConditionList; import org.xmlcml.cml.element.CMLMetadata; import org.xmlcml.cml.element.CMLMetadataList; import org.xmlcml.cml.element.CMLPeak; import org.xmlcml.cml.element.CMLPeakList; import org.xmlcml.cml.element.CMLScalar; import org.xmlcml.cml.element.CMLSubstance; import org.xmlcml.cml.element.CMLSubstanceList; public class SpectrumLabelProvider implements ILabelProvider { private final static Image spectrumImage = Activator.imageDescriptorFromPlugin( Activator.PLUGIN_ID, "icons/spectrum.gif").createImage(); private final static Image metadataImage = Activator.imageDescriptorFromPlugin( Activator.PLUGIN_ID, "icons/metadata.gif").createImage(); public Image getImage(Object element){ CMLElement cmlelement=(CMLElement)element; if(cmlelement instanceof CMLMetadata || cmlelement instanceof CMLMetadataList || cmlelement instanceof CMLConditionList || cmlelement instanceof CMLSubstanceList || cmlelement instanceof CMLSubstance || cmlelement instanceof CMLScalar) return metadataImage; else return spectrumImage; } public String getText(Object element) { CMLElement cmlelement=(CMLElement)element; String text=cmlelement.getLocalName(); if(cmlelement instanceof CMLMetadata) text=((CMLMetadata)cmlelement).getId()+": "+((CMLMetadata)cmlelement).getContent(); else if(cmlelement instanceof CMLMetadataList) text="Metadata List"; else if(cmlelement instanceof CMLPeakList) text="Peak List"; else if(cmlelement instanceof CMLPeak) text=((CMLPeak)cmlelement).getXValue()+" "+((CMLPeak)cmlelement).getYValue(); else if(cmlelement instanceof CMLConditionList) text="Condition List"; else if(cmlelement instanceof CMLSubstanceList) text="Substance List"; else if(cmlelement instanceof CMLScalar) text=((CMLScalar)cmlelement).getTitle()+" "+((CMLScalar)cmlelement).getValue(); else if(cmlelement instanceof CMLSubstance) text=((CMLSubstance)cmlelement).getTitle()+" "+((Text)cmlelement.getChild(0)).getValue(); return text; } public void addListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } }