X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/a18633348e1e5b0da8e93ca0ec33ec7c12f783aa..e773b6b9d8f8f969d9f92246846c44f9ad08ff23:/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java index 07711643f5..b201928fb0 100644 --- a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java +++ b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java @@ -10,14 +10,20 @@ package eu.etaxonomy.cdm.remote.controller; +import java.awt.Color; import java.io.IOException; import java.util.Arrays; +import java.util.EnumSet; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.map.JsonMappingException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; @@ -25,23 +31,33 @@ import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import eu.etaxonomy.cdm.api.service.IDescriptionService; import eu.etaxonomy.cdm.api.service.IFeatureTreeService; +import eu.etaxonomy.cdm.api.service.ITermService; +import eu.etaxonomy.cdm.api.service.dto.DistributionInfoDTO; +import eu.etaxonomy.cdm.api.service.dto.DistributionInfoDTO.InfoPart; import eu.etaxonomy.cdm.api.service.pager.Pager; +import eu.etaxonomy.cdm.ext.geo.EditGeoServiceUtilities; +import eu.etaxonomy.cdm.ext.geo.IEditGeoService; import eu.etaxonomy.cdm.model.common.Annotation; import eu.etaxonomy.cdm.model.common.Language; +import eu.etaxonomy.cdm.model.common.MarkerType; import eu.etaxonomy.cdm.model.description.CategoricalData; import eu.etaxonomy.cdm.model.description.DescriptionBase; import eu.etaxonomy.cdm.model.description.DescriptionElementBase; import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.FeatureTree; +import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase; import eu.etaxonomy.cdm.model.description.StateData; import eu.etaxonomy.cdm.model.description.TaxonDescription; import eu.etaxonomy.cdm.model.description.TextData; import eu.etaxonomy.cdm.model.location.NamedAreaLevel; +import eu.etaxonomy.cdm.remote.editor.DefinedTermBaseList; import eu.etaxonomy.cdm.remote.editor.NamedAreaLevelPropertyEditor; +import eu.etaxonomy.cdm.remote.editor.TermBaseListPropertyEditor; import eu.etaxonomy.cdm.remote.editor.UUIDListPropertyEditor; import eu.etaxonomy.cdm.remote.editor.UuidList; import eu.etaxonomy.cdm.remote.l10n.LocaleContext; @@ -60,16 +76,18 @@ public class DescriptionController extends BaseController TAXONDESCRIPTION_INIT_STRATEGY = Arrays.asList(new String []{ "$", "elements.$", "elements.sources.citation.authorTeam", - "elements.sources.nameUsedInSource.originalNameString", + "elements.sources.nameUsedInSource", "elements.multilanguageText", "elements.media", }); @@ -80,6 +98,7 @@ public class DescriptionController extends BaseController(termService)); } /* (non-Javadoc) @@ -230,4 +249,54 @@ public class DescriptionController extends BaseController partSet, + @RequestParam(value = "subAreaPreference", required = false) boolean subAreaPreference, + @RequestParam(value = "statusOrderPreference", required = false) boolean statusOrderPreference, + @RequestParam(value = "hideMarkedAreas", required = false) DefinedTermBaseList hideMarkedAreasList, + @RequestParam(value = "omitLevels", required = false) Set omitLevels, + @RequestParam(value = "statusColors", required = false) String statusColorsString, + HttpServletRequest request, + HttpServletResponse response) throws JsonParseException, JsonMappingException, IOException { + + logger.debug("doGetDistributionInfo() - " + requestPathAndQuery(request)); + + ModelAndView mv = new ModelAndView(); + + Set hideMarkedAreas = null; + if(hideMarkedAreasList != null){ + hideMarkedAreas = hideMarkedAreasList.asSet(); + } + + EnumSet parts = EnumSet.copyOf(partSet); + + Map, Color> presenceAbsenceTermColors = EditGeoServiceUtilities.buildStatusColorMap(statusColorsString, termService); + + DistributionInfoDTO dto = geoService.composeDistributionInfoFor(parts, taxonUuid, subAreaPreference, statusOrderPreference, + hideMarkedAreas, omitLevels, presenceAbsenceTermColors, LocaleContext.getLanguages(), getInitializationStrategy()); + + mv.addObject(dto); + + return mv; + } + + } \ No newline at end of file