Changeset 4982


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

Extracted reusable behaviour from Ajax file name update in expanded search result. Added to resource links in record page.

Location:
vlo/branches/vlo-3.0/vlo-web-app/src
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/ResourceLinksPanel.java

    r4978 r4982  
    2222import eu.clarin.cmdi.vlo.wicket.model.HandleLinkModel;
    2323import eu.clarin.cmdi.vlo.wicket.model.ResourceInfoModel;
     24import eu.clarin.cmdi.vlo.wicket.panels.search.LazyResourceInfoUpdateBehavior;
    2425import java.util.Collection;
    2526import java.util.List;
    26 import org.apache.wicket.Component;
     27import org.apache.wicket.ajax.AjaxRequestTarget;
    2728import org.apache.wicket.markup.html.basic.Label;
    2829import org.apache.wicket.markup.html.link.ExternalLink;
     
    4445    @SpringBean(name = "resourceStringConverter")
    4546    private ResourceStringConverter resourceStringConverter;
     47    @SpringBean(name = "resolvingResourceStringConverter")
     48    private ResourceStringConverter resolvingResourceStringConverter;
    4649
    4750    /**
     
    6669        protected void populateItem(ListItem<String> item) {
    6770            final ResourceInfoModel resourceInfoModel = new ResourceInfoModel(resourceStringConverter, item.getModel());
     71           
    6872            // add a link that will show the resource details panel when clicked
    69             item.add(createLink(resourceInfoModel));
    70         }
    71 
    72         private Component createLink(final ResourceInfoModel resourceInfoModel) {
     73           
    7374            // wrap href in model that transforms handle links
    7475            final IModel<String> linkModel = new HandleLinkModel(new PropertyModel(resourceInfoModel, "href"));
     
    8384            link.add(new ResourceTypeCssBehaviour(resourceInfoModel));
    8485
    85             return link;
     86            // make the link update via AJAX with resolved location (in case of handle)
     87            link.add(new LazyResourceInfoUpdateBehavior(resolvingResourceStringConverter, item.getModel(), resourceInfoModel) {
     88
     89                @Override
     90                protected void onUpdate(AjaxRequestTarget target) {
     91                    target.add(link);
     92                }
     93            });
     94
     95            link.setOutputMarkupId(true);
     96            item.add(link);
    8697        }
    8798    }
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultItemExpandedPanel.java

    r4981 r4982  
    1818
    1919import eu.clarin.cmdi.vlo.FacetConstants;
    20 import eu.clarin.cmdi.vlo.pojo.ResourceInfo;
    2120import eu.clarin.cmdi.vlo.pojo.SearchContext;
    2221import eu.clarin.cmdi.vlo.service.FieldFilter;
     
    3433import org.apache.solr.common.SolrDocument;
    3534import org.apache.wicket.Component;
    36 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
    3735import org.apache.wicket.ajax.AjaxRequestTarget;
    3836import org.apache.wicket.behavior.AttributeAppender;
     
    4745import org.apache.wicket.model.StringResourceModel;
    4846import org.apache.wicket.spring.injection.annot.SpringBean;
    49 import org.apache.wicket.util.time.Duration;
    5047
    5148/**
     
    107104                // once loaded, make Ajax request to resolve handles and update
    108105                // resource link
    109                 resourceLink.add(new AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
     106                resourceLink.add(new LazyResourceInfoUpdateBehavior(resolvingResourceStringConverter, item.getModel(), resourceInfoModel) {
    110107
    111108                    @Override
    112                     protected void onTimer(AjaxRequestTarget target) {
    113                         this.stop(target);
    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);
     109                    protected void onUpdate(AjaxRequestTarget target) {
    118110                        // update resource link
    119111                        target.add(resourceLink);
    120112                    }
    121 
    122113                });
    123114
  • vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/service/impl/HandleClientRunner.java

    r4980 r4982  
    3333     */
    3434    public static void main(String[] args) {
    35         final HandleClient client = new HandleClientImpl("http://hdl.handle.net/api/handle/");
     35        final HandleClient client = new HandleClientImpl();
    3636
    3737        System.out.println("Requesting handle...");
Note: See TracChangeset for help on using the changeset viewer.