import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
-import java.util.UUID;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.jface.viewers.Viewer;
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.cdm.model.molecular.Sequence;
import eu.etaxonomy.cdm.model.molecular.SingleRead;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
-import eu.etaxonomy.taxeditor.store.CdmStore;
public class DerivateContentProvider implements ITreeContentProvider {
+ List<TreeNode> rootNodes;
+
@Override
public void dispose() {
// TODO Auto-generated method stub
}
+ public List<SpecimenOrObservationBase> getRootElements() {
+ List<SpecimenOrObservationBase> elements = new ArrayList<SpecimenOrObservationBase>();
+
+ if(rootNodes != null) {
+ for(TreeNode node : rootNodes) {
+ elements.add((SpecimenOrObservationBase)node.getValue());
+ }
+ }
+ return elements;
+ }
+
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
}
@Override
public Object[] getElements(Object inputElement) {
- List<TreeNode> rootElements = new ArrayList<TreeNode>();
+ rootNodes = new ArrayList<TreeNode>();
if(inputElement instanceof Set){
for (Object o: (Set)inputElement) {
- if(o instanceof UUID){
- UUID uuid = (UUID)o;
- SpecimenOrObservationBase<?> rootElement = CdmStore.getService(IOccurrenceService.class).load(uuid);
+ if(o instanceof SpecimenOrObservationBase){
+ SpecimenOrObservationBase<?> rootElement = (SpecimenOrObservationBase<?>)o;
if(rootElement!=null){
- rootElements.add(new TreeNode(rootElement));
+ rootNodes.add(new TreeNode(rootElement));
}
}
}
}
- return rootElements.toArray();
+ return rootNodes.toArray();
}
@Override
node.setParent(currentnode);
children.add(node);
}
- return children.toArray();
}
else if(value instanceof Sequence){
Set<SingleRead> singleReads = ((Sequence) value).getSingleReads();
}
return children.toArray();
}
- else if(value instanceof SpecimenOrObservationBase){
+
+ if(value instanceof SpecimenOrObservationBase){
List<DerivedUnit> derivates = getDerivates((SpecimenOrObservationBase<?>) value);
for (DerivedUnit derivedUnit:derivates) {
TreeNode node = new TreeNode(derivedUnit);
else if(element instanceof Sequence){
return !((Sequence)element).getSingleReads().isEmpty();
}
- else if(element instanceof SpecimenOrObservationBase){
+
+ if(element instanceof SpecimenOrObservationBase){
SpecimenOrObservationBase<?> specimenOrObservation = (SpecimenOrObservationBase<?>)element;
for(DerivationEvent event:specimenOrObservation.getDerivationEvents()){
if(!event.getDerivatives().isEmpty()){