package net.bioclipse.specmol.outline; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import org.xmlcml.cml.base.CMLElement; import org.xmlcml.cml.element.CMLCml; import org.xmlcml.cml.element.CMLSpectrum; public class SpecmolContentProvider implements ITreeContentProvider { public List<CMLElement> spectra; public void dispose() { // TODO Auto-generated method stub } public Object[] getChildren(Object parentElement) { if(parentElement instanceof CMLCml) { CMLCml box = (CMLCml)parentElement; List<CMLElement> elements=box.getChildCMLElements(); spectra=new ArrayList<CMLElement>(); for(int i=0;i<elements.size();i++){ if(elements.get(i) instanceof CMLSpectrum) spectra.add(elements.get(i)); } return spectra.toArray(); } return new Object[0]; } public Object[] getElements(Object inputElement) { return getChildren(inputElement); } public Object getParent(Object element) { if(element instanceof CMLElement) { return ((CMLElement)element).getParent(); } return null; } public boolean hasChildren(Object element) { return getChildren(element).length > 0; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // TODO Auto-generated method stub } }