Changeset 5165
- Timestamp:
- 05/08/14 15:16:46 (10 years ago)
- Location:
- vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/pojo/ResourceInfo.java
r4644 r5165 17 17 package eu.clarin.cmdi.vlo.pojo; 18 18 19 import java.io.Serializable; 20 19 21 /** 20 22 * 21 23 * @author twagoo 22 24 */ 23 public class ResourceInfo {25 public class ResourceInfo implements Serializable { 24 26 25 27 private final String href; -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/LazyResourceInfoUpdateBehavior.java
r5164 r5165 19 19 import eu.clarin.cmdi.vlo.pojo.ResourceInfo; 20 20 import eu.clarin.cmdi.vlo.service.ResourceStringConverter; 21 import eu.clarin.cmdi.vlo.wicket.model.ResourceInfoModel; 21 22 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior; 22 23 import org.apache.wicket.ajax.AjaxRequestTarget; 23 import org.apache.wicket.model.IModel;24 24 import org.apache.wicket.util.time.Duration; 25 25 … … 35 35 36 36 private final ResourceStringConverter converter; 37 private final IModel<String> resourceStringModel; 38 private final IModel<ResourceInfo> resourceInfoModel; 37 private final ResourceInfoModel resourceInfoModel; 39 38 40 39 /** 41 40 * 42 41 * @param converter converter to get resource info object from 43 * @param resourceStringModel model that provides the raw resource string44 42 * @param resourceInfoModel model that should be updated 45 43 */ 46 public LazyResourceInfoUpdateBehavior(ResourceStringConverter converter, IModel<String> resourceStringModel, IModel<ResourceInfo>resourceInfoModel) {44 public LazyResourceInfoUpdateBehavior(ResourceStringConverter converter, ResourceInfoModel resourceInfoModel) { 47 45 super(Duration.ONE_SECOND); 48 46 this.converter = converter; 49 this.resourceStringModel = resourceStringModel;50 47 this.resourceInfoModel = resourceInfoModel; 51 48 } … … 56 53 this.stop(target); 57 54 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); 62 57 63 58 // AJAX update of components -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/model/ResourceInfoModel.java
r4877 r5165 20 20 import eu.clarin.cmdi.vlo.service.ResourceStringConverter; 21 21 import org.apache.wicket.model.IModel; 22 import org.apache.wicket.model. LoadableDetachableModel;22 import org.apache.wicket.model.Model; 23 23 24 24 /** … … 27 27 * {@link ResourceStringConverter} 28 28 */ 29 public class ResourceInfoModel extends LoadableDetachableModel<ResourceInfo> {29 public class ResourceInfoModel extends Model<ResourceInfo> { 30 30 31 private finalResourceStringConverter resourceStringConverter;31 private ResourceStringConverter resourceStringConverter; 32 32 private final IModel<String> resourceStringModel; 33 33 34 /** 35 * 36 * @param resourceStringConverter converter to use to derive resource info 37 * from the resource string 38 * @param resourceStringModel 39 */ 34 40 public ResourceInfoModel(ResourceStringConverter resourceStringConverter, IModel<String> resourceStringModel) { 35 41 this.resourceStringConverter = resourceStringConverter; … … 38 44 39 45 @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 } 42 55 } 43 56 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); 48 67 } 49 68 -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/ResourceLinksPanel.java
r5164 r5165 85 85 86 86 // 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) { 88 88 89 89 @Override -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultItemExpandedPanel.java
r5164 r5165 146 146 resourceLink.setOutputMarkupId(true); 147 147 148 // once loaded, make Ajax request to resolve handles and update 149 // resource link 150 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) { 151 150 152 151 @Override
Note: See TracChangeset
for help on using the changeset viewer.