Fix slide for temporal layer
This commit is contained in:
		| @@ -364,16 +364,12 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   installTopLayerPrerenderEventhandler() { | ||||
|     if(!this.topLayerPrerenderEventhandlerInstalled  && this.onPrerender.observers.length > 0 ) { | ||||
|   installTopLayerPrerenderEventhandler(olLayer : Layer<Source>) { | ||||
|     if(!this.topLayerPrerenderEventhandlerInstalled  && this.onPrerender.observers.length > 0  && olLayer) { | ||||
|       if(this.instance.getVisible()) { | ||||
|         var olLayers = this.instance.getLayers().getArray().filter(l=> l.getVisible()); | ||||
|         if(olLayers.length >0) { | ||||
|           var topLayer = olLayers[0] as any; | ||||
|           topLayer.on('prerender',this.topLayerPrerenderEventhandler); | ||||
|           topLayer.on('postrender',this.topLayerPostrenderEventhandler); | ||||
|           this.topLayerPrerenderEventhandlerInstalled = true; | ||||
|         }   | ||||
|         olLayer.on('prerender',this.topLayerPrerenderEventhandler); | ||||
|         olLayer.on('postrender',this.topLayerPostrenderEventhandler); | ||||
|         this.topLayerPrerenderEventhandlerInstalled = true; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| @@ -382,13 +378,11 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange | ||||
|     if(this.topLayerPrerenderEventhandlerInstalled && this.onPrerender.observers.length > 0 ) | ||||
|     { | ||||
|       if(this.instance.getVisible()) { | ||||
|         var olLayers = this.instance.getLayers().getArray().filter(l=> l.getVisible()); | ||||
|         if(olLayers.length >0) { | ||||
|           var topLayer = olLayers[0] as any; | ||||
|           topLayer.un('prerender',this.topLayerPrerenderEventhandler); | ||||
|           topLayer.un('postrender',this.topLayerPostrenderEventhandler); | ||||
|           this.topLayerPrerenderEventhandlerInstalled = false; | ||||
|         }   | ||||
|         var olLayers = this.instance.getLayers().getArray().forEach((l:any) => { | ||||
|           l.un('prerender',this.topLayerPrerenderEventhandler); | ||||
|           l.un('postrender',this.topLayerPostrenderEventhandler); | ||||
|         }); | ||||
|         this.topLayerPrerenderEventhandlerInstalled = false; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| @@ -418,11 +412,19 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange | ||||
|     return layer; | ||||
|   } | ||||
|  | ||||
|   updateLayers(itemLayers: IItemLayer[]) { | ||||
|   updateLayers(itemLayers: IItemLayer[] | IItemLayer) { | ||||
|     this.unInstallTopLayerPrerenderEventhandler(); | ||||
|     let dataLayer = false; | ||||
|     var ils:IItemLayer[] = []; | ||||
|     if(Array.isArray(itemLayers)) { | ||||
|        ils = itemLayers; | ||||
|     } else { | ||||
|       dataLayer=true; | ||||
|        ils=[itemLayers]; | ||||
|     } | ||||
|     let newLayers: Layer<Source>[] = []; | ||||
|     if (itemLayers) { | ||||
|       itemLayers.forEach((itemLayer, index) => { | ||||
|     if (ils) { | ||||
|       ils.forEach((itemLayer, index) => { | ||||
|         if(itemLayer.item.itemType ==  'vnd.farmmaps.itemtype.temporal') { | ||||
|           let il = itemLayer as ITemporalItemLayer; | ||||
|           let previousLayer = this.addOrUpdateOlLayer(il.previousItemLayer,newLayers.length);           | ||||
| @@ -431,9 +433,11 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange | ||||
|           if(selectedLayer) newLayers.push(selectedLayer); | ||||
|           let nextLayer = this.addOrUpdateOlLayer(il.nextItemLayer,newLayers.length); | ||||
|           if(nextLayer) newLayers.push(nextLayer); | ||||
|           this.installTopLayerPrerenderEventhandler(selectedLayer); | ||||
|         } else { | ||||
|           let layer = this.addOrUpdateOlLayer(itemLayer,newLayers.length); | ||||
|           if(layer) newLayers.push(layer);            | ||||
|           if(layer) newLayers.push(layer);     | ||||
|           this.installTopLayerPrerenderEventhandler(layer);        | ||||
|         } | ||||
|       }); | ||||
|       // Remove the layers that have disapeared from childrenLayers | ||||
| @@ -442,12 +446,11 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange | ||||
|         olLayers.removeAt(newLayers.length); | ||||
|       } | ||||
|       this.selectionLayer=null; | ||||
|       if(this.mapEventHandlerInstalled && itemLayers.length==1 && this.getItemlayer(itemLayers[0]).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') { | ||||
|       if(this.mapEventHandlerInstalled && ils.length==1 && this.getItemlayer(itemLayers[0]).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') { | ||||
|         this.selectionLayer = this.createSelectionLayer(this.getItemlayer(itemLayers[0])); | ||||
|         if(this.selectionLayer) olLayers.push(this.selectionLayer) | ||||
|       } | ||||
|     } | ||||
|     this.installTopLayerPrerenderEventhandler(); | ||||
|   } | ||||
|  | ||||
|   topLayerPrerenderEventhandler = (event) => { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user