import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+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.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
public static final String ID = "bulkeditor.input.occurrence"; //$NON-NLS-1$
private static final String PROPERTY_PUBLISH = "Publish";
+ private static final String PROPERTY_COUNTRY = "Country";
+ private static final String PROPERTY_COLLECTOR = "Collector";
+ private static final String PROPERTY_FIELD_NUMBER = "Field Number";
+ private static final String PROPERTY_ACCESSION_NUMBER = "Acc. Number";
+ private static final String PROPERTY_BARCODE = "Barcode";
+ private static final String PROPERTY_CATALOG_NUMBER = "Catalog Number";
+ private static final String PROPERTY_COLLECTION = "Collection";
private static OccurrenceEditorInput instance;
protected List<String> getPropertyKeys_internal() {
List<String> propertyKeysInternal = new ArrayList<>();
propertyKeysInternal.add(PROPERTY_PUBLISH);
+ propertyKeysInternal.add(PROPERTY_COUNTRY);
+ propertyKeysInternal.add(PROPERTY_COLLECTOR);
+ propertyKeysInternal.add(PROPERTY_FIELD_NUMBER);
+ propertyKeysInternal.add(PROPERTY_ACCESSION_NUMBER);
+ propertyKeysInternal.add(PROPERTY_BARCODE);
+ propertyKeysInternal.add(PROPERTY_CATALOG_NUMBER);
+ propertyKeysInternal.add(PROPERTY_COLLECTION);
return propertyKeysInternal;
}
if(property.equals(PROPERTY_PUBLISH)){
return cdmBase.isPublish();
}
+ else if(property.equals(PROPERTY_COUNTRY)){
+ return getCountry(cdmBase);
+ }
+ else if(property.equals(PROPERTY_COLLECTOR)){
+ return getCollector(cdmBase);
+ }
+ else if(property.equals(PROPERTY_FIELD_NUMBER)){
+ return getFieldNumber(cdmBase);
+ }
+ else if(property.equals(PROPERTY_ACCESSION_NUMBER)){
+ return getAccessionNumber(cdmBase);
+ }
+ else if(property.equals(PROPERTY_BARCODE)){
+ return getBarcode(cdmBase);
+ }
+ else if(property.equals(PROPERTY_CATALOG_NUMBER)){
+ return getCatalogNumber(cdmBase);
+ }
+ else if(property.equals(PROPERTY_COLLECTION)){
+ return getCollection(cdmBase);
+ }
return super.getPropertyValue(cdmBase, property);
}
- @Override
+ private Object getCollector(SpecimenOrObservationBase<?> cdmBase) {
+ if(cdmBase.isInstanceOf(FieldUnit.class)){
+ GatheringEvent gatheringEvent = HibernateProxyHelper.deproxy(cdmBase, FieldUnit.class).getGatheringEvent();
+ if(gatheringEvent!=null){
+ return gatheringEvent.getCollector();
+ }
+ }
+ return null;
+ }
+
+ private Object getCountry(SpecimenOrObservationBase<?> cdmBase) {
+ if(cdmBase.isInstanceOf(FieldUnit.class)){
+ GatheringEvent gatheringEvent = HibernateProxyHelper.deproxy(cdmBase, FieldUnit.class).getGatheringEvent();
+ if(gatheringEvent!=null && gatheringEvent.getCountry()!=null){
+ return gatheringEvent.getCountry().getLabel();
+ }
+ }
+ return null;
+ }
+
+ private Object getFieldNumber(SpecimenOrObservationBase<?> cdmBase) {
+ if(cdmBase.isInstanceOf(FieldUnit.class)){
+ return HibernateProxyHelper.deproxy(cdmBase, FieldUnit.class).getFieldNumber();
+ }
+ return null;
+ }
+
+ private Object getAccessionNumber(SpecimenOrObservationBase<?> cdmBase) {
+ if(cdmBase.isInstanceOf(DerivedUnit.class)){
+ return HibernateProxyHelper.deproxy(cdmBase, DerivedUnit.class).getAccessionNumber();
+ }
+ return null;
+ }
+
+ private Object getBarcode(SpecimenOrObservationBase<?> cdmBase) {
+ if(cdmBase.isInstanceOf(DerivedUnit.class)){
+ return HibernateProxyHelper.deproxy(cdmBase, DerivedUnit.class).getBarcode();
+ }
+ return null;
+ }
+
+ private Object getCatalogNumber(SpecimenOrObservationBase<?> cdmBase) {
+ if(cdmBase.isInstanceOf(DerivedUnit.class)){
+ return HibernateProxyHelper.deproxy(cdmBase, DerivedUnit.class).getCatalogNumber();
+ }
+ return null;
+ }
+
+ private Object getCollection(SpecimenOrObservationBase<?> cdmBase) {
+ if(cdmBase.isInstanceOf(DerivedUnit.class)){
+ Collection collection = HibernateProxyHelper.deproxy(cdmBase, DerivedUnit.class).getCollection();
+ if(collection!=null){
+ return collection.getTitleCache();
+ }
+ }
+ return null;
+ }
+
+ @Override
protected long countEntities(IIdentifiableEntityServiceConfigurator configurator) {
return CdmStore.getService(IOccurrenceService.class).countByTitle(configurator);
}