Changeset 5166


Ignore:
Timestamp:
05/08/14 15:21:15 (10 years ago)
Author:
Twan Goosen
Message:

merged improved record file name resolution from trunk to 3.0

Location:
vlo/branches/vlo-3.0
Files:
1 deleted
6 edited
1 copied

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0

  • vlo/branches/vlo-3.0/vlo-web-app

  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/pojo/ResourceInfo.java

    r4644 r5166  
    1717package eu.clarin.cmdi.vlo.pojo;
    1818
     19import java.io.Serializable;
     20
    1921/**
    2022 *
    2123 * @author twagoo
    2224 */
    23 public class ResourceInfo {
     25public class ResourceInfo implements Serializable {
    2426
    2527    private final String href;
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/LazyResourceInfoUpdateBehavior.java

    r5164 r5166  
    1919import eu.clarin.cmdi.vlo.pojo.ResourceInfo;
    2020import eu.clarin.cmdi.vlo.service.ResourceStringConverter;
     21import eu.clarin.cmdi.vlo.wicket.model.ResourceInfoModel;
    2122import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
    2223import org.apache.wicket.ajax.AjaxRequestTarget;
    23 import org.apache.wicket.model.IModel;
    2424import org.apache.wicket.util.time.Duration;
    2525
     
    3535
    3636    private final ResourceStringConverter converter;
    37     private final IModel<String> resourceStringModel;
    38     private final IModel<ResourceInfo> resourceInfoModel;
     37    private final ResourceInfoModel resourceInfoModel;
    3938
    4039    /**
    4140     *
    4241     * @param converter converter to get resource info object from
    43      * @param resourceStringModel model that provides the raw resource string
    4442     * @param resourceInfoModel model that should be updated
    4543     */
    46     public LazyResourceInfoUpdateBehavior(ResourceStringConverter converter, IModel<String> resourceStringModel, IModel<ResourceInfo> resourceInfoModel) {
     44    public LazyResourceInfoUpdateBehavior(ResourceStringConverter converter, ResourceInfoModel resourceInfoModel) {
    4745        super(Duration.ONE_SECOND);
    4846        this.converter = converter;
    49         this.resourceStringModel = resourceStringModel;
    5047        this.resourceInfoModel = resourceInfoModel;
    5148    }
     
    5653        this.stop(target);
    5754       
    58         // get a fresh resource info object...
    59         final ResourceInfo resourceInfo = converter.getResourceInfo(resourceStringModel.getObject());
    60         // .,.and update the model with it
    61         resourceInfoModel.setObject(resourceInfo);
     55        // inject the advanced converter into the model
     56        resourceInfoModel.setResourceStringConverter(converter);
    6257       
    6358        // AJAX update of components
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/model/ResourceInfoModel.java

    r4877 r5166  
    2020import eu.clarin.cmdi.vlo.service.ResourceStringConverter;
    2121import org.apache.wicket.model.IModel;
    22 import org.apache.wicket.model.LoadableDetachableModel;
     22import org.apache.wicket.model.Model;
    2323
    2424/**
     
    2727 * {@link ResourceStringConverter}
    2828 */
    29 public class ResourceInfoModel extends LoadableDetachableModel<ResourceInfo> {
     29public class ResourceInfoModel extends Model<ResourceInfo> {
    3030
    31     private final ResourceStringConverter resourceStringConverter;
     31    private ResourceStringConverter resourceStringConverter;
    3232    private final IModel<String> resourceStringModel;
    3333
     34    /**
     35     *
     36     * @param resourceStringConverter converter to use to derive resource info
     37     * from the resource string
     38     * @param resourceStringModel
     39     */
    3440    public ResourceInfoModel(ResourceStringConverter resourceStringConverter, IModel<String> resourceStringModel) {
    3541        this.resourceStringConverter = resourceStringConverter;
     
    3844
    3945    @Override
    40     protected ResourceInfo load() {
    41         return resourceStringConverter.getResourceInfo(resourceStringModel.getObject());
     46    public ResourceInfo getObject() {
     47        final ResourceInfo cached = super.getObject();
     48        if (cached == null) {
     49            final ResourceInfo object = resourceStringConverter.getResourceInfo(resourceStringModel.getObject());
     50            setObject(object);
     51            return object;
     52        } else {
     53            return cached;
     54        }
    4255    }
    4356
    44     @Override
    45     public void detach() {
    46         super.detach();
    47         resourceStringModel.detach();
     57    /**
     58     * Replaces the converter used by this model to get a resource info object.
     59     * This also invalidates the cached resource info object.
     60     *
     61     * @param resourceStringConverter
     62     */
     63    public void setResourceStringConverter(ResourceStringConverter resourceStringConverter) {
     64        this.resourceStringConverter = resourceStringConverter;
     65        // invalidate object
     66        setObject(null);
    4867    }
    4968
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/ResourceLinksPanel.java

    r4982 r5166  
    1818
    1919import eu.clarin.cmdi.vlo.service.ResourceStringConverter;
     20import eu.clarin.cmdi.vlo.wicket.LazyResourceInfoUpdateBehavior;
    2021import eu.clarin.cmdi.vlo.wicket.ResourceTypeCssBehaviour;
    2122import eu.clarin.cmdi.vlo.wicket.model.CollectionListModel;
    2223import eu.clarin.cmdi.vlo.wicket.model.HandleLinkModel;
    2324import eu.clarin.cmdi.vlo.wicket.model.ResourceInfoModel;
    24 import eu.clarin.cmdi.vlo.wicket.panels.search.LazyResourceInfoUpdateBehavior;
    2525import java.util.Collection;
    2626import java.util.List;
     
    8585
    8686            // make the link update via AJAX with resolved location (in case of handle)
    87             link.add(new LazyResourceInfoUpdateBehavior(resolvingResourceStringConverter, item.getModel(), resourceInfoModel) {
     87            link.add(new LazyResourceInfoUpdateBehavior(resolvingResourceStringConverter, resourceInfoModel) {
    8888
    8989                @Override
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultItemExpandedPanel.java

    r5046 r5166  
    2121import eu.clarin.cmdi.vlo.service.FieldFilter;
    2222import eu.clarin.cmdi.vlo.service.ResourceStringConverter;
     23import eu.clarin.cmdi.vlo.wicket.LazyResourceInfoUpdateBehavior;
    2324import eu.clarin.cmdi.vlo.wicket.ResourceTypeCssBehaviour;
    2425import eu.clarin.cmdi.vlo.wicket.components.RecordPageLink;
     
    145146                resourceLink.setOutputMarkupId(true);
    146147
    147                 // once loaded, make Ajax request to resolve handles and update
    148                 // resource link
    149                 resourceLink.add(new LazyResourceInfoUpdateBehavior(resolvingResourceStringConverter, item.getModel(), resourceInfoModel) {
     148                // once loaded, make Ajax request to resolve handles and update resource link
     149                resourceLink.add(new LazyResourceInfoUpdateBehavior(resolvingResourceStringConverter, resourceInfoModel) {
    150150
    151151                    @Override
Note: See TracChangeset for help on using the changeset viewer.