Example usage for org.springframework.web.servlet.support RequestContextUtils getLocale

List of usage examples for org.springframework.web.servlet.support RequestContextUtils getLocale

Introduction

In this page you can find the example usage for org.springframework.web.servlet.support RequestContextUtils getLocale.

Prototype

public static Locale getLocale(HttpServletRequest request) 

Source Link

Document

Retrieve the current locale from the given request, using the LocaleResolver bound to the request by the DispatcherServlet (if available), falling back to the request's accept-header Locale.

Usage

From source file:org.gbif.portal.web.controller.openmodeller.OpenModellerController.java

/**
 * Starts the creation of the model, starting a thread and redirecting to a polling view for checking
 * whether model has been rendered.//from   w  w w  .  j a va  2 s  .  com
 * 
 * @param request
 * @param response
 * @return
 * @throws Exception
 */
@SuppressWarnings("unchecked")
public ModelAndView createModel(HttpServletRequest request, HttpServletResponse response) throws Exception {

    String criteriaAsString = request.getParameter(criteriaRequestKey);
    CriteriaDTO criteria = CriteriaUtil.getCriteria(java.net.URLDecoder.decode(criteriaAsString, "UTF-8"),
            occurrenceFilters.getFilters(), (Locale) null);
    List<PropertyStoreTripletDTO> triplets = queryHelper.getTriplets(occurrenceFilters.getFilters(), criteria,
            request, response);
    if (triplets.size() > 0) {
        filterContentProvider.addGeoreferencedOnlyOccurrenceTriplets(triplets, triplets.get(0).getNamespace());
    }

    if (triplets.isEmpty()) {
        //add georeferenced triplets   
        PropertyStoreTripletDTO triplet = triplets.get(0);
        filterContentProvider.addGeoreferencedOnlyOccurrenceTriplets(triplets, triplet.getNamespace());
    }

    //do occurrence query
    int maxPoints = ServletRequestUtils.getIntParameter(request, "maxResults", maxPointsForModel);
    SearchResultsDTO results = tripletQueryManager.doTripletQuery(triplets, true,
            new SearchConstraints(0, maxPoints));
    List<PointDTO> points = results.getResults();
    OMModel omModel = new OMModel();
    for (PointDTO point : points) {
        omModel.addPoint(point.getKey(), point.getLongitude().toString(), point.getLatitude().toString());
    }

    //select the layers
    String[] selectedLayers = request.getParameterValues(layerRequestKey);
    if (selectedLayers != null) {
        for (String selectedLayer : selectedLayers) {
            Layer layer = marineLayers.get(selectedLayer);
            if (layer == null) {
                layer = landLayers.get(selectedLayer);
            }
            if (layer != null) {
                if (logger.isDebugEnabled()) {
                    logger.debug("selected layer: " + selectedLayer + ", Adding layer: " + layer.getName()
                            + " path:" + layer.getPath());
                }
                omModel.addLayer(layer.getPath());
            }
        }
    }

    //select the mask      
    String maskId = request.getParameter(maskRequestKey);
    omModel.setMaskId(masks.get(maskId));

    //set algorithm
    omModel.setAlgorithm(algorithmVersion, algorithmName);

    //set template
    String template = request.getParameter(templateRequestKey);
    omModel.setTemplateLayerId(templates.get(template));

    //id for this generated model
    String modelId = Long.toString(System.currentTimeMillis());

    //create a file
    File temporaryFile = DownloadUtils.createTempFileOutput(downloadFileNamePrefix, modelId, fileExtension,
            false);
    OutputStream outputStream = DownloadUtils.createOutputStream(temporaryFile, downloadFileNamePrefix, modelId,
            fileExtension, false);

    //start the file writing thread
    OpenModellerFileWriter fw = new OpenModellerFileWriter();
    fw.setOmModel(omModel);
    fw.setModelId(modelId);
    fw.setTemporaryFile(temporaryFile);
    fw.setOutputStream(outputStream);
    fw.setImgFileExtension(fileExtension);
    fw.setOpenModellerEndpoint(openModellerEndpoint);
    Thread t = new Thread(fw);
    t.start();

    String requestLayerSet = ServletRequestUtils.getStringParameter(request, selectedLayersRequestKey);

    //construct original url & redirect url
    StringBuffer sb = new StringBuffer("/occurrence/setupModel.htm?");
    sb.append(CriteriaUtil.getUrl(criteria));
    sb.append("&");
    sb.append(maskRequestKey);
    sb.append("=");
    sb.append(maskId);

    if (requestLayerSet != null) {
        sb.append("&");
        sb.append(selectedLayersRequestKey);
        sb.append("=");
        sb.append(requestLayerSet);
    }

    sb.append("&");
    sb.append(templateRequestKey);
    sb.append("=");
    sb.append(template);
    if (selectedLayers != null) {
        for (String layer : selectedLayers) {
            sb.append("&");
            sb.append(layerRequestKey);
            sb.append("=");
            sb.append(layer);
        }
    }
    String originalUrl = sb.toString();
    String downloadFile = DownloadUtils.getFileNameWithoutTempMarker(temporaryFile.getName());
    sb.append("&");
    sb.append("img");
    sb.append("=");
    sb.append(downloadFile);
    String redirectUrl = sb.toString();

    String fileNameWithoutExtension = FilenameUtils.removeExtension(downloadFile);
    //generate description
    Locale locale = RequestContextUtils.getLocale(request);
    StringBuffer downloadDesc = new StringBuffer(
            messageSource.getMessage("model.preparing.description", null, locale) + "<br>");
    downloadDesc.append(
            FilterUtils.getQueryDescription(occurrenceFilters.getFilters(), criteria, messageSource, locale));
    DownloadUtils.writeDownloadToDescriptor(request, fileNameWithoutExtension, originalUrl, downloadFileType,
            downloadDesc.toString(), true, redirectUrl);
    //redirect to download preparing page
    return new ModelAndView(new RedirectView(
            "/download/preparingDownload.htm?downloadFile=" + downloadFile + "&view=" + prepareModelView,
            true));
}

From source file:org.gbif.portal.web.controller.registration.RegistrationController.java

/**
 * Populates the ReferenceData for the resource list page
 *///from   w  w  w .  j ava  2 s.  c o  m
protected Map<String, Object> referenceDataForResource(HttpServletRequest request,
        ResourceDetail resourceDetail) throws Exception {
    Map<String, Object> data = new HashMap<String, Object>();
    Locale locale = RequestContextUtils.getLocale(request);
    DataProviderDTO nubProvider = dataResourceManager.getNubDataProvider();
    DataResourceDTO dataResourceDTO = null;
    List<DataResourceDTO> resourceDTOs = dataResourceManager.getDataResourcesForProvider(nubProvider.getKey());
    if (resourceDTOs != null && !resourceDTOs.isEmpty())
        dataResourceDTO = resourceDTOs.get(0);

    data.put(RegistrationController.REQUEST_BASES_OF_RECORD, basisOfRecordTypes);
    data.put(RegistrationController.REQUEST_RESOURCE_NETWORKS, dataResourceManager.getResourceNetworkList());
    data.put(RegistrationController.REQUEST_COUNTRIES, geospatialManager.findAllCountries(locale).getResults());
    data.put(RegistrationController.REQUEST_DATA_PROVIDER, nubProvider);
    data.put(RegistrationController.REQUEST_DATA_RESOURCE, dataResourceDTO);
    data.put(RegistrationController.REQUEST_RESOURCE_TYPES, resourceTypes);
    data.put("messageSource", messageSource);

    if (StringUtils.isNotEmpty(resourceDetail.getHighestTaxaConceptId())) {
        data.put(RegistrationController.REQUEST_CONCEPTS, taxonomyManager
                .getClassificationFor(resourceDetail.getHighestTaxaConceptId(), true, null, true));
        data.put(RegistrationController.REQUEST_SELECTED_CONCEPT,
                taxonomyManager.getTaxonConceptFor(resourceDetail.getHighestTaxaConceptId()));
    } else {
        data.put(RegistrationController.REQUEST_CONCEPTS, taxonomyManager
                .getRootTaxonConceptsForTaxonomy(nubProvider.getKey(), dataResourceDTO.getKey()));
    }
    return data;
}

From source file:org.gbif.portal.web.controller.registration.RegistrationController.java

/**
 * Populates the ReferenceData for the resource list page
 *//*from  w  w  w  . java  2 s  . co m*/
protected Map<String, Object> referenceDataForResourceList(HttpServletRequest request,
        ProviderDetail providerDetail) throws Exception {
    Map<String, Object> data = new HashMap<String, Object>();
    Locale locale = RequestContextUtils.getLocale(request);
    DataProviderDTO nubProvider = dataResourceManager.getNubDataProvider();
    DataResourceDTO dataResourceDTO = null;
    List<DataResourceDTO> resourceDTOs = dataResourceManager.getDataResourcesForProvider(nubProvider.getKey());
    if (resourceDTOs != null && !resourceDTOs.isEmpty())
        dataResourceDTO = resourceDTOs.get(0);

    data.put(RegistrationController.REQUEST_BASES_OF_RECORD, basisOfRecordTypes);
    data.put(RegistrationController.REQUEST_RESOURCE_NETWORKS, dataResourceManager.getResourceNetworkList());
    data.put(RegistrationController.REQUEST_COUNTRIES, geospatialManager.findAllCountries(locale).getResults());
    data.put(RegistrationController.REQUEST_DATA_PROVIDER, nubProvider);
    data.put(RegistrationController.REQUEST_DATA_RESOURCE, dataResourceDTO);
    data.put(RegistrationController.REQUEST_RESOURCE_TYPES, resourceTypes);
    data.put(RegistrationController.REQUEST_CONCEPTS,
            taxonomyManager.getRootTaxonConceptsForTaxonomy(nubProvider.getKey(), dataResourceDTO.getKey()));
    data.put("messageSource", messageSource);
    return data;
}

From source file:org.gbif.portal.web.controller.taxonomy.TaxonNameSearchController.java

private ModelAndView handleSingleConceptNameSearch(Map<String, String> propertiesMap,
        HttpServletRequest request, HttpServletResponse response, String query, String view) throws Exception {
    String rank = propertiesMap.get("rank");
    String provider = propertiesMap.get("provider");
    String resource = propertiesMap.get("resource");
    ModelAndView mav = new ModelAndView(view);
    SearchResultsDTO searchResults = taxonomyManager.findTaxonConceptsForCommonName(query, true,
            new SearchConstraints(0, 1));
    if (searchResults.isEmpty()) {
        searchResults = taxonomyManager.findTaxonConcepts(query, true, rank, provider, resource, null, null,
                RequestContextUtils.getLocale(request).getLanguage(), null, allowUnconfirmedNames, false,
                new SearchConstraints(0, 1));
    }/* ww  w  .  jav a  2 s  . co  m*/
    mav.addObject(searchResultsModelKey, searchResults);
    return mav;
}

From source file:org.gbif.portal.web.controller.taxonomy.TaxonNameSearchController.java

/**
 * Handle concept searches/*from   www  .jav a 2  s  . c o m*/
 * 
 * @param propertiesMap
 * @param request
 * @param response
 * @return
 * @throws Exception
 */
public ModelAndView handleConceptSearch(Map<String, String> propertiesMap, HttpServletRequest request,
        HttpServletResponse response, String query, String view) throws Exception {
    String rank = propertiesMap.get("rank");
    String provider = propertiesMap.get("provider");
    String resource = propertiesMap.get("resource");
    ModelAndView mav = new ModelAndView(view);
    SearchResultsDTO searchResults = taxonomyManager.findTaxonConcepts(query, true, rank, provider, resource,
            null, null, RequestContextUtils.getLocale(request).getLanguage(), null, allowUnconfirmedNames,
            false, new SearchConstraints(0, maxResults));
    if (searchResults != null && searchResults.isEmpty()) {
        searchResults = taxonomyManager.findTaxonConceptsForCommonName(query, true,
                new SearchConstraints(0, maxResults));
    }
    mav.addObject(searchResultsModelKey, searchResults);
    return mav;
}

From source file:org.gbif.portal.web.controller.tutorial.TutorialController.java

/**
 * @see org.gbif.portal.web.controller.RestController#handleRequest(java.util.Map, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
 *///from  w  w w.  jav  a  2 s. c  o m
@SuppressWarnings("unchecked")
public ModelAndView handleRequest(Map<String, String> properties, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    String locale = RequestContextUtils.getLocale(request).getLanguage();
    if (!supportedLocales.contains(locale)) {
        locale = defaultLocale;
    }
    String pageName = properties.get(tutorialPageNameKey);
    if (StringUtils.isEmpty(pageName)) {
        properties.put(tutorialPageNameKey, defaultTutorialPage);
    }

    properties.put(localeKey, locale);

    return new ModelAndView(tutorialViewName, properties);
}

From source file:org.gbif.portal.web.filter.CriteriaUtil.java

/**
 * Retrieves a CriteriaDTO from this request.
 * @param request//  w  w w  . j a v a 2 s . co  m
 * @param filters the filters to use to populate the criteria
 * @return CriteriaDTO for the criteria in the supplied request
 */
public static CriteriaDTO getCriteria(HttpServletRequest request, List<FilterDTO> filters) throws Exception {
    if (logger.isDebugEnabled())
        logger.debug("criteria string:" + request.getQueryString());
    //find the number of criteria set in the request
    MutablePropertyValues mpvs = new ServletRequestParameterPropertyValues(request);
    PropertyValue[] pvs = mpvs.getPropertyValues();
    Locale locale = RequestContextUtils.getLocale(request);
    return getCriteria(pvs, filters, locale);
}

From source file:org.gbif.portal.web.filter.CriteriaUtil.java

/**
 * Grouping of utilities to populate a set of criteria from a request
 * @param filters//  w ww . jav  a  2s  .c om
 * @param criteria
 */
@SuppressWarnings("unchecked")
public static CriteriaDTO getCriteriaAndPopulate(HttpServletRequest request, List<FilterDTO> filters)
        throws Exception {
    CriteriaDTO criteria = CriteriaUtil.getCriteria(request, filters);
    CriteriaUtil.checkFilterConstraints(filters, criteria);
    Locale locale = RequestContextUtils.getLocale(request);
    CriteriaUtil.setCriteriaDisplayValues(filters, criteria, locale);
    CriteriaUtil.setCriteriaGroupValues(filters, criteria);
    CriteriaUtil.orderByCategorySubjectAndValue(criteria);
    return criteria;
}

From source file:org.gbif.portal.web.tag.FlatTreeTag.java

/**
 * @see javax.servlet.jsp.tagext.TagSupport#doEndTag()
 *///w  w w  .  j  av  a  2 s . c  om
@Override
public int doEndTag() throws JspException {
    StringBuffer sb = new StringBuffer();

    HttpServletRequest request = (HttpServletRequest) this.pageContext.getRequest();
    String contextPath = request.getContextPath();

    if (concepts != null && concepts.size() > 0) {
        if (StringUtils.isNotEmpty(classname)) {
            sb.append("<ul class='");
            sb.append(classname);
            sb.append("'> ");
        } else {
            sb.append("<ul>");
        }

        Iterator<BriefTaxonConceptDTO> iter = concepts.iterator();

        while (iter.hasNext()) {
            BriefTaxonConceptDTO conceptDTO = iter.next();
            sb.append("<li>");
            if (messageSource != null) {
                sb.append(messageSource.getMessage("taxonrank." + conceptDTO.getRank(), null,
                        RequestContextUtils.getLocale(request)));
            } else {
                sb.append(StringUtils.capitalize(conceptDTO.getRank()));
            }
            sb.append(": ");
            boolean isSelectedConcept = false;
            if (selectedConcept != null)
                isSelectedConcept = conceptDTO.getKey().equals(selectedConcept.getKey());
            if (!isSelectedConcept) {
                sb.append("<a href=\"");
                sb.append(contextPath);
                sb.append(speciesUrlPrefix);
                sb.append(conceptDTO.getKey());
                sb.append("\">");
            }
            TaxonRankType rankType = TaxonRankType.getRank(conceptDTO.getRank());
            if (rankType != null && rankType.getValue() >= TaxonRankType.GENUS.getValue()) {
                sb.append("<span class=\"");
                sb.append(generaClassName);
                sb.append("\">");
                sb.append(conceptDTO.getTaxonName());
                sb.append("</span>");
            } else {
                sb.append(conceptDTO.getTaxonName());
            }
            if (!isSelectedConcept)
                sb.append("</a>");
            sb.append("</li>");
        }
        sb.append("</ul>");
    }
    try {
        this.pageContext.getOut().println(sb.toString());
    } catch (IOException e) {
        log.error(e.getMessage(), e);
    }
    return SKIP_BODY;
}

From source file:org.gbif.portal.web.tag.SmallTaxonomyBrowserTag.java

/**
 * Render an element in the tree.//from www  . java 2s .c o m
 * 
 * @param conceptList
 * @param sb
 * @param pageContext
 * @param contextPath
 */
protected void addElement(BriefTaxonConceptDTO concept, StringBuffer sb, String contextPath) {

    Locale locale = RequestContextUtils.getLocale((HttpServletRequest) pageContext.getRequest());

    if (concept instanceof SpecialTreeNode) {
        addElement((SpecialTreeNode) concept, sb, contextPath);
        return;
    }

    sb.append("<p");
    if (selectedConcept != null && selectedConcept.getKey().equals(concept.getKey())) {
        if (markConceptBelowThreshold && concept.getTaxonomicPriority() > taxonPriorityThreshold)
            sb.append(" class=\"selectedTentative\"");
        else
            sb.append(" class=\"selected\"");
    }
    sb.append(">");

    // add link with image
    if (selectedConcept == null || !selectedConcept.getKey().equals(concept.getKey())) {
        sb.append("<a href=\"");
        sb.append(getLink(contextPath, concept));
        sb.append("\" class=\"");
        if (markConceptBelowThreshold && concept.getTaxonomicPriority() > taxonPriorityThreshold)
            sb.append("treeNodeLinkTentative");
        else
            sb.append("treeNodeLink");
        sb.append("\" title=\"");
        sb.append(messageSource.getMessage("taxonomy.browser.all.expand.node", null, locale));
        sb.append(" '");
        sb.append(concept.getTaxonName());
        sb.append("'\">");
        sb.append("<span class=\"conceptLink\">&nbsp;&nbsp;</span>");
    } else {
        sb.append("<span class=\"selectedConceptLink\">&nbsp;</span>");
    }
    sb.append("<span class=\"rank\">");
    // internationalization
    // sb.append(StringUtils.capitalize(concept.getRank()));
    sb.append(messageSource.getMessage("taxonrank." + concept.getRank(), null,
            StringUtils.capitalize(concept.getRank()), locale));
    sb.append(": ");
    sb.append("</span><span class=\"");
    TaxonRankType taxonRankType = TaxonRankType.getRank(concept.getRank());

    if (taxonRankType != null && taxonRankType.getValue() >= TaxonRankType.GENUS.getValue()) {
        sb.append("generaTaxon");
    } else {
        sb.append("taxon");
    }
    sb.append("\">");
    sb.append(concept.getTaxonName());
    sb.append("</span>");
    if (selectedConcept == null || !selectedConcept.getKey().equals(concept.getKey()))
        sb.append("</a>");

    if (addOverviewLink) {
        // if it isnt a nub concept direct towards partnerConceptKey - which will be the nub concept for this concept
        // only link if tied to nub
        String conceptKey = null;
        if (concept.getIsNubConcept())
            conceptKey = concept.getKey();
        else
            conceptKey = concept.getPartnerConceptKey();
        // only supporting overview links for major ranks
        if (conceptKey != null && (TaxonRankType.isRecognisedMajorRank(concept.getRank())
                || TaxonRankType.SUB_SPECIES_STR.equals(concept.getRank()))) {
            sb.append("<span class=\"");
            sb.append("overview");
            sb.append("\"><a href=\"");
            sb.append(contextPath);
            sb.append(overviewRootUrl);
            // if it isnt a nub concept direct towards partnerConceptKey - which will be the nub concept for this concept
            sb.append(conceptKey);
            sb.append("\" class=\"");
            if (markConceptBelowThreshold && concept.getTaxonomicPriority() > taxonPriorityThreshold)
                sb.append("taxonOverviewLinkTentative");
            else
                sb.append("taxonOverviewLink");
            sb.append("\" title=\"");
            sb.append(messageSource.getMessage(overviewLinkTitle, null, locale));
            sb.append(concept.getTaxonName());
            sb.append("\"><span class=\"overviewLink\">&nbsp;&nbsp;</span>");
            // sb.append(TagUtils.getMessage(overviewLinkText, "Overview", pageContext));
            sb.append(messageSource.getMessage(overviewLinkText, null, locale));
            sb.append("</a></span>");
            // Calculating number of occurrences for species and subspecies
            if (concept.getRank().equals(TaxonRankType.SPECIES_STR)
                    || concept.getRank().equals(TaxonRankType.SUB_SPECIES_STR)) {
                int occurrencesCount = 0;
                try {
                    occurrencesCount = occurrenceManager.countOccurrenceRecords(null, null, null,
                            concept.getKey(), null, null, null, null, null, null, null, null, null, null, null,
                            null, null, null, null, false);
                } catch (ServiceException e) {
                    logger.error(e.getMessage(), e);
                }
                Object[] messageArgs = { occurrencesCount };
                sb.append("<span class=\"occurrenceCount\">");
                sb.append((occurrencesCount == 0 ? messageSource.getMessage(noOccurrences, null, locale)
                        : messageSource.getMessage(numberOfOccurrences, messageArgs, locale)));
                sb.append("</span>");
            }
        }
    }
    sb.append("</p>");
}