Changeset 4981


Ignore:
Timestamp:
04/15/14 12:40:40 (10 years ago)
Author:
Twan Goosen
Message:

Some further handle/filename improvements

Location:
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/HandleClientImpl.java

    r4980 r4981  
    1818
    1919import com.sun.jersey.api.client.Client;
     20import com.sun.jersey.api.client.ClientHandlerException;
    2021import com.sun.jersey.api.client.ClientResponse;
     22import com.sun.jersey.api.client.UniformInterfaceException;
    2123import com.sun.jersey.api.client.WebResource;
    2224import eu.clarin.cmdi.vlo.service.HandleClient;
     
    3032/**
    3133 * Service that connects to the handle.net REST API and retrieves the URL for a
    32  * given handle
     34 * given handle.
     35 *
     36 * Consider re-implementing using the handle API
    3337 *
    3438 * @author twagoo
     
    7074        final Client client = Client.create();
    7175        final WebResource resource = client.resource(requestUrl);
    72         final ClientResponse response = resource.accept(MediaType.APPLICATION_JSON_TYPE).get(ClientResponse.class);
    7376
    74         if (response.getClientResponseStatus() != ClientResponse.Status.OK) {
    75             logger.error("Unexpected response status {} for {}", response.getClientResponseStatus(), requestUrl);
    76             return null;
    77         } else {
    78             final String responseString = response.getEntity(String.class);
    79             try {
     77        try {
     78            final ClientResponse response = resource
     79                    .accept(MediaType.APPLICATION_JSON_TYPE)
     80                    .get(ClientResponse.class);
     81
     82            if (response.getClientResponseStatus() != ClientResponse.Status.OK) {
     83                logger.error("Unexpected response status {} for {}", response.getClientResponseStatus(), requestUrl);
     84            } else {
     85                final String responseString = response.getEntity(String.class);
    8086                return getUrlFromJson(responseString);
    81             } catch (JSONException ex) {
    82                 logger.error("Could not parse Handle API response", ex);
    83                 return null;
    8487            }
     88        } catch (UniformInterfaceException ex) {
     89            logger.error("Could not communicate with Handle API", ex);
     90        } catch (ClientHandlerException ex) {
     91            logger.error("Could not communicate with Handle API", ex);
     92        } catch (JSONException ex) {
     93            logger.error("Could not parse Handle API response", ex);
    8594        }
    86 
     95        return null;
    8796    }
    8897
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/ResourceStringConverterImpl.java

    r4978 r4981  
    5858        final String[] tokens = resourceString.split(SPLIT_PATTERN, 2);
    5959        final String mimeType = tokens[0];
    60         final String href;
     60        final String href = tokens[1];
     61
     62        // if there is a resolver, get file name from resolved URL
     63        final String fileName;
    6164        if (resolver == null) {
    62             href = tokens[1];
     65            fileName = getFileName(href);
    6366        } else {
    64             href = resolver.resolve(tokens[1]);
     67            fileName = getFileName(resolver.resolve(href));
    6568        }
    6669
    67         final String fileName = getFileName(href);
    6870        // determine resource type based on mime type
    6971        final ResourceType resourceType = determineResourceType(mimeType);
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultItemExpandedPanel.java

    r4978 r4981  
    1818
    1919import eu.clarin.cmdi.vlo.FacetConstants;
     20import eu.clarin.cmdi.vlo.pojo.ResourceInfo;
    2021import eu.clarin.cmdi.vlo.pojo.SearchContext;
    2122import eu.clarin.cmdi.vlo.service.FieldFilter;
     
    2526import eu.clarin.cmdi.vlo.wicket.components.SolrFieldLabel;
    2627import eu.clarin.cmdi.vlo.wicket.model.CollectionListModel;
     28import eu.clarin.cmdi.vlo.wicket.model.HandleLinkModel;
    2729import eu.clarin.cmdi.vlo.wicket.model.ResourceInfoModel;
    2830import eu.clarin.cmdi.vlo.wicket.model.SolrFieldModel;
     
    99101
    100102                // add a link to the resource with the file name as its label
    101                 final ExternalLink resourceLink = new ExternalLink("resourceLink", new PropertyModel(resourceInfoModel, "href"));
     103                final ExternalLink resourceLink = new ExternalLink("resourceLink", new HandleLinkModel(new PropertyModel(resourceInfoModel, "href")));
    102104                resourceLink.add(new Label("resourceName", new PropertyModel(resourceInfoModel, "fileName")));
    103105                resourceLink.setOutputMarkupId(true);
     
    110112                    protected void onTimer(AjaxRequestTarget target) {
    111113                        this.stop(target);
    112                         resourceInfoModel.setObject(
    113                                 resolvingResourceStringConverter.getResourceInfo(item.getModelObject()));
     114                        // this time get resource info from the resolving converter
     115                        // which will take the file name from the resolved location
     116                        final ResourceInfo newResourceInfo = resolvingResourceStringConverter.getResourceInfo(item.getModelObject());
     117                        resourceInfoModel.setObject(newResourceInfo);
     118                        // update resource link
    114119                        target.add(resourceLink);
    115120                    }
Note: See TracChangeset for help on using the changeset viewer.