import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
public class DerivateContentProvider implements ITreeContentProvider {
@Override
public Object[] getElements(Object inputElement) {
+ FieldUnit fieldUnit = null;
if(inputElement instanceof DerivateViewEditorInput){
- inputElement = ((DerivateViewEditorInput) inputElement).getDerivate();
+ fieldUnit = ((DerivateViewEditorInput) inputElement).getFieldUnit();
}
// return the parent FieldUnit if element is a DerivedUnit
- if(inputElement instanceof DerivedUnit){
- DerivedUnit derivedUnit = (DerivedUnit)inputElement;
- for(SpecimenOrObservationBase original:derivedUnit.getOriginals()){
- if(original instanceof FieldUnit){
- return Collections.singletonList(original).toArray();
- }
- else{
- return getElements(original);
- }
- }
+ else if(inputElement instanceof DerivedUnit){
+ fieldUnit = EditorUtil.getFieldUnit((DerivedUnit)inputElement);
}
else if(inputElement instanceof FieldUnit){
- FieldUnit fieldUnit = (FieldUnit) inputElement;
- fieldUnit.getTitleCache();
+ fieldUnit = (FieldUnit) inputElement;
+// fieldUnit.getTitleCache();
+ }
+ if(fieldUnit!=null){
return Collections.singleton(fieldUnit).toArray();
}
- return Collections.EMPTY_LIST.toArray();
+ else {
+ return Collections.EMPTY_LIST.toArray();
+ }
}
@Override
public Object[] getChildren(Object parentElement) {
if(parentElement instanceof DerivateViewEditorInput){
- parentElement = ((DerivateViewEditorInput) parentElement).getDerivate();
+ parentElement = ((DerivateViewEditorInput) parentElement).getFieldUnit();
}
if(parentElement instanceof SpecimenOrObservationBase){
return getDerivates((SpecimenOrObservationBase) parentElement).toArray();
@Override
public Object getParent(Object element) {
if(element instanceof DerivateViewEditorInput){
- element = ((DerivateViewEditorInput) element).getDerivate();
+ element = ((DerivateViewEditorInput) element).getFieldUnit();
}
if(element instanceof DerivedUnit){
DerivedUnit derivedUnit = (DerivedUnit)element;
@Override
public boolean hasChildren(Object element) {
if(element instanceof DerivateViewEditorInput){
- element = ((DerivateViewEditorInput) element).getDerivate();
+ element = ((DerivateViewEditorInput) element).getFieldUnit();
}
if(element instanceof SpecimenOrObservationBase){
SpecimenOrObservationBase specimenOrObservation = (SpecimenOrObservationBase)element;