From: Patric Plitzner Date: Tue, 3 Jun 2014 14:35:46 +0000 (+0000) Subject: - implemented derivate specific textual representation in DerivateView X-Git-Tag: 3.6.0~589 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/e12b4c33782c314703474f0451e520f9264ae0b4 - implemented derivate specific textual representation in DerivateView --- diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java index 2745a94d1..ff919dfca 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java @@ -106,7 +106,7 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa if(editorInput instanceof DerivateViewEditorInput){ SpecimenOrObservationBase specimen = ((DerivateViewEditorInput) editorInput).getDerivate(); SpecimenOrObservationBase rootElement = ((DerivateViewEditorInput) editorInput).getRootElement(); - setPartName(rootElement.toString()); + setPartName(DerivateLabelProvider.getDerivateText(rootElement)); viewer.setSelection(new StructuredSelection(new TreeNode(specimen))); } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java index e59473a89..0ef56d87e 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java @@ -15,10 +15,14 @@ import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.TreeNode; import org.eclipse.swt.graphics.Image; +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.Collection; import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; import eu.etaxonomy.cdm.model.occurrence.FieldUnit; +import eu.etaxonomy.cdm.model.occurrence.GatheringEvent; +import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen; import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; import eu.etaxonomy.taxeditor.model.ImageResources; @@ -42,16 +46,88 @@ public class DerivateLabelProvider extends ColumnLabelProvider { return getDerivateText(element); } - private String getDerivateText(Object element){ + /** + * + * @param element + * @return + */ + public static String getDerivateText(Object element){ + TreeNode parentNode = null; if(element instanceof TreeNode){ + parentNode = ((TreeNode) element).getParent(); + //unwrap specimen from TreeNode element = ((TreeNode) element).getValue(); } - if(element instanceof SpecimenOrObservationBase){ + + String label = ""; + if(element instanceof FieldUnit){ + FieldUnit fieldUnit = (FieldUnit)element; + GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent(); + if(gatheringEvent!=null){ + label += gatheringEvent.getCountry()!=null?gatheringEvent.getCountry().getLabel()+", ":""; + label += gatheringEvent.getLocality()!=null?gatheringEvent.getLocality().getText()+", ":""; +// label += gatheringEvent.getGatheringDate()!=null?gatheringEvent.getGatheringDate()+", ":""; + label += gatheringEvent.getCollector()!=null?gatheringEvent.getCollector()+", ":""; + } + label += fieldUnit.getFieldNumber()!=null?fieldUnit.getFieldNumber():""; + } + else if(element instanceof DerivedUnit){ + DerivedUnit derivedUnit = (DerivedUnit)element; + if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){ + if(parentNode!=null && parentNode.getValue() instanceof FieldUnit){ + FieldUnit fieldUnit = (FieldUnit) parentNode.getValue(); + GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent(); + if(gatheringEvent!=null){ + label += gatheringEvent.getCollector()!=null?gatheringEvent.getCollector()+", ":""; + } + label += fieldUnit.getFieldNumber()!=null?fieldUnit.getFieldNumber()+", ":""; + } + Collection collection = derivedUnit.getCollection(); + if(collection!=null){ + label += collection.getName()!=null?collection.getName()+" ":""; + label += collection.getCode()!=null?"("+collection.getCode()+"), ":""; + } + label += derivedUnit.getAccessionNumber()!=null?derivedUnit.getAccessionNumber()+", ":""; + label += derivedUnit.getBarcode()!=null?derivedUnit.getBarcode():""; + } + else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){ + + } + } + else if(element instanceof MediaSpecimen){ + MediaSpecimen mediaSpecimen = (MediaSpecimen)element; + //TODO implement + label += element.toString(); + } + else if(element instanceof DnaSample + || (element instanceof DerivedUnit + && ((SpecimenOrObservationBase) element).getRecordBasis()==SpecimenOrObservationType.DnaSample)){ + //TODO implement + label += element.toString(); + + } + else if(element instanceof Sequence){ + Sequence sequence = (Sequence)element; + label += "SampleDesignation?"+", "; + label += sequence.getDnaMarker()!=null?sequence.getDnaMarker():""; + } + else if(element instanceof SingleRead){ + SingleRead singleRead = (SingleRead)element; + label += singleRead.getPrimer()!=null?singleRead.getPrimer().getLabel()+", ":""; + label += "Marker?"; + } + else if(element instanceof SpecimenOrObservationBase){ SpecimenOrObservationBase derivate = (SpecimenOrObservationBase) element; SpecimenOrObservationType type = derivate.getRecordBasis(); return derivate.getTitleCache() + (type!=null?" ["+type.toString()+"]":""); } - return element.toString(); + if(label.isEmpty()){ + label = element.toString(); + } + else if(label.endsWith(", ")){ + label = label.substring(0, label.length()-2); + } + return label; } /* (non-Javadoc)