diff --git a/projects/common-map/src/fm-map/components/selected-item-cropfield/selected-item-cropfield.component.ts b/projects/common-map/src/fm-map/components/selected-item-cropfield/selected-item-cropfield.component.ts index c6da727..79f17f4 100644 --- a/projects/common-map/src/fm-map/components/selected-item-cropfield/selected-item-cropfield.component.ts +++ b/projects/common-map/src/fm-map/components/selected-item-cropfield/selected-item-cropfield.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, Injectable, OnInit } from '@angular/core'; +import { Component, Input, Injectable, OnInit, ComponentFactoryResolver, Inject, ComponentFactory } from '@angular/core'; import { Location } from '@angular/common'; import { Feature } from 'ol'; import { Store } from '@ngrx/store'; @@ -11,6 +11,7 @@ import { Observable,of } from 'rxjs'; import {GeoJSON} from 'ol/format'; import {getArea} from 'ol/sphere'; import { withLatestFrom,switchMap,combineLatest } from 'rxjs/operators'; +import { AbstractItemListItemComponent, ItemListItemComponent } from '../item-list-item/item-list-item.component'; @ForItemType("vnd.farmmaps.itemtype.cropfield") @@ -24,7 +25,8 @@ export class SelectedItemCropfieldComponent extends AbstractSelectedItemComponen public items: Observable; - constructor(store: Store, itemTypeService: ItemTypeService, location: Location, router: Router, private itemService$: ItemService,private folderService$: FolderService) { + constructor(store: Store, itemTypeService: ItemTypeService, location: Location, router: Router, private itemService$: ItemService,private folderService$: FolderService, + private componentFactoryResolver: ComponentFactoryResolver, @Inject(AbstractItemListItemComponent) public itemComponentList: AbstractItemListItemComponent[] ) { super(store, itemTypeService,location,router); } @@ -39,6 +41,7 @@ export class SelectedItemCropfieldComponent extends AbstractSelectedItemComponen } ngOnInit() { + var componentFactory: ComponentFactory = this.componentFactoryResolver.resolveComponentFactory(ItemListItemComponent); // default var childItems = this.folderService$.getItems(this.item.code, 0, 1000); var atLocationItems = this.itemService$.getItemList(null,null,null,this.item.code,true); this.items = childItems.pipe( @@ -47,8 +50,12 @@ export class SelectedItemCropfieldComponent extends AbstractSelectedItemComponen let retVal:IListItem[] = []; let codes = {}; ci.forEach((listItem) => { - retVal.push(listItem); - codes[listItem.code]=listItem; + if (this.itemComponentList.findIndex(i => + i.item['forItemType'].indexOf(this.item.itemType) >= 0 && + i.item['forSourceTask'].indexOf(this.item.sourceTask) >= 0) >= 0) { + retVal.push(listItem); + codes[listItem.code]=listItem; + } }); ali.forEach((atlocationitem) => { let listItem = atlocationitem as IListItem;