From 424cd9e30f717369cbd7fdab38efe5a563c9b44e Mon Sep 17 00:00:00 2001
From: Daviti Gogshelidze <daviti1@mail.com>
Date: Thu, 4 Jul 2019 11:07:40 +0200
Subject: [PATCH] region hierarchy and smaller corrections

---
 src/atlasViewer/atlasViewer.template.html     |  8 +++++---
 src/components/flatTree/flatTree.component.ts | 15 ++++++++++++--
 .../flatTree/flatTree.template.html           |  7 ++++---
 .../splashScreen/splashScreen.template.html   |  2 --
 .../regionHierarchy.component.ts              | 20 +++++++++++++------
 .../regionHierarchy.template.html             |  1 +
 6 files changed, 37 insertions(+), 16 deletions(-)

diff --git a/src/atlasViewer/atlasViewer.template.html b/src/atlasViewer/atlasViewer.template.html
index 8c1054a71..f6cc260ea 100644
--- a/src/atlasViewer/atlasViewer.template.html
+++ b/src/atlasViewer/atlasViewer.template.html
@@ -127,10 +127,12 @@
     <ui-nehuba-container (contextmenu)="nehubaClickHandler($event)">
     </ui-nehuba-container>
   
-    <div *ngIf="!isMobile && selectedTemplate" bannerWrapper>
-      <menu-icons iconWrapper>
+    <div *ngIf="!isMobile" bannerWrapper>
+      <menu-icons iconWrapper *ngIf="selectedTemplate">
       </menu-icons>
-      <signin-banner signinWrapper>
+
+      <div *ngIf="!selectedTemplate"></div>
+      <signin-banner signinWrapper [ngStyle]="{'margin-right': !selectedTemplate? '20px': ''}">
       </signin-banner>
     </div>
   
diff --git a/src/components/flatTree/flatTree.component.ts b/src/components/flatTree/flatTree.component.ts
index d6002b130..a7996c066 100644
--- a/src/components/flatTree/flatTree.component.ts
+++ b/src/components/flatTree/flatTree.component.ts
@@ -1,5 +1,6 @@
-import { EventEmitter, Component, Input, Output, ChangeDetectionStrategy } from "@angular/core";
+import {EventEmitter, Component, Input, Output, ChangeDetectionStrategy, OnChanges, ViewChild} from "@angular/core";
 import { FlattenedTreeInterface } from "./flattener.pipe";
+import {CdkVirtualScrollViewport} from "@angular/cdk/scrolling";
 
 /**
  * TODO to be replaced by virtual scrolling when ivy is in stable
@@ -14,7 +15,7 @@ import { FlattenedTreeInterface } from "./flattener.pipe";
   changeDetection:ChangeDetectionStrategy.OnPush
 })
 
-export class FlatTreeComponent{
+export class FlatTreeComponent implements OnChanges {
   @Input() inputItem : any = {
     name : 'Untitled',
     children : []
@@ -33,6 +34,9 @@ export class FlatTreeComponent{
   @Input() findChildren : (item:any)=>any[] = (item)=>item.children ? item.children : [] 
   @Input() searchFilter : (item:any)=>boolean | null = ()=>true
 
+  @ViewChild('flatTreeVirtualScrollViewPort') _temp: CdkVirtualScrollViewport
+  @Output() uncollaspedItemsNumber = new EventEmitter<number>()
+
   public flattenedItems : any[] = []
 
   getClass(level:number){
@@ -42,6 +46,12 @@ export class FlatTreeComponent{
   collapsedLevels: Set<string> = new Set()
   uncollapsedLevels : Set<string> = new Set()
 
+  ngOnChanges(): void {
+    if (this._temp) {
+      setTimeout(() => {this.uncollaspedItemsNumber.emit(this._temp.getDataLength())})
+    }
+  }
+
   toggleCollapse(flattenedItem:FlattenedTreeInterface){
     if (this.isCollapsed(flattenedItem)) {
       this.collapsedLevels.delete(flattenedItem.lvlId)
@@ -52,6 +62,7 @@ export class FlatTreeComponent{
     }
     this.collapsedLevels = new Set(this.collapsedLevels)
     this.uncollapsedLevels = new Set(this.uncollapsedLevels)
+    setTimeout(() => {this.uncollaspedItemsNumber.emit(this._temp.getDataLength())})
   }
 
   isCollapsed(flattenedItem:FlattenedTreeInterface):boolean{
diff --git a/src/components/flatTree/flatTree.template.html b/src/components/flatTree/flatTree.template.html
index 903c00ddd..48ff87a25 100644
--- a/src/components/flatTree/flatTree.template.html
+++ b/src/components/flatTree/flatTree.template.html
@@ -1,10 +1,11 @@
 <cdk-virtual-scroll-viewport
   *ngIf="!useDefaultList"
   (wheel)="$event.stopPropagation()"
-  itemSize="15">
+  itemSize="15"
+  #flatTreeVirtualScrollViewPort>
 
   <div
-    *cdkVirtualFor="let flattenedItem of (inputItem | flattenTreePipe : findChildren | filterRowsByVisbilityPipe : findChildren : searchFilter | appendSiblingFlagPipe | filterCollapsePipe : collapsedLevels : uncollapsedLevels : childrenExpanded )" 
+    *cdkVirtualFor="let flattenedItem of (inputItem | flattenTreePipe : findChildren | filterRowsByVisbilityPipe : findChildren : searchFilter | appendSiblingFlagPipe | filterCollapsePipe : collapsedLevels : uncollapsedLevels : childrenExpanded )"
     [ngClass]="getClass(flattenedItem.flattenedTreeLevel)"
     class="text-nowrap"
     [attr.flattenedtreelevel]="flattenedItem.flattenedTreeLevel" 
@@ -37,7 +38,7 @@
   *ngIf="useDefaultList"
   class="overflow-auto">
 
-  <div class="overflow-hidden default-container" style="background-color: #dbb556">
+  <div class="overflow-hidden default-container">
     <div
       *ngFor="let flattenedItem of (inputItem | flattenTreePipe : findChildren | filterRowsByVisbilityPipe : findChildren : searchFilter | appendSiblingFlagPipe )" 
       [ngClass]="getClass(flattenedItem.flattenedTreeLevel)"
diff --git a/src/ui/nehubaContainer/splashScreen/splashScreen.template.html b/src/ui/nehubaContainer/splashScreen/splashScreen.template.html
index fb2c7049f..76f0b92f4 100644
--- a/src/ui/nehubaContainer/splashScreen/splashScreen.template.html
+++ b/src/ui/nehubaContainer/splashScreen/splashScreen.template.html
@@ -3,8 +3,6 @@
     <div class="splashScreenHeaderLogoContainer"><img class="splashScreenHeaderLogo " src="./res/image/HBP_Primary_RGB_BlackText.png"> </div>
     <div class="spaceForFill">
     </div>
-    <signin-banner >
-    </signin-banner>
   </div>
 
   <div splashScreenTemplate>
diff --git a/src/ui/regionHierachy/regionHierarchy.component.ts b/src/ui/regionHierachy/regionHierarchy.component.ts
index 9e629abce..f9a8c1155 100644
--- a/src/ui/regionHierachy/regionHierarchy.component.ts
+++ b/src/ui/regionHierachy/regionHierarchy.component.ts
@@ -3,7 +3,6 @@ import {  Subscription, Subject, fromEvent } from "rxjs";
 import { buffer, debounceTime } from "rxjs/operators";
 import { FilterNameBySearch } from "./filterNameBySearch.pipe";
 import { generateLabelIndexId } from "src/services/stateStore.service";
-import {promise} from "selenium-webdriver";
 
 const insertHighlight :(name:string, searchTerm:string) => string = (name:string, searchTerm:string = '') => {
   const regex = new RegExp(searchTerm, 'gi')
@@ -111,11 +110,6 @@ export class RegionHierarchy implements OnInit, AfterViewInit{
   set showRegionTree(flag: boolean){
     this._showRegionTree = flag
     this.showRegionFlagChanged.emit(this._showRegionTree)
-    this.countItemsIntoTheTree = 1
-    if (this.aggregatedRegionTree.children &&
-        this.aggregatedRegionTree.children.length > 0) {
-      this.countItems(this.aggregatedRegionTree)
-    }
   }
 
   ngOnInit(){
@@ -155,6 +149,15 @@ export class RegionHierarchy implements OnInit, AfterViewInit{
         this.changeSearchTerm(ev)
       })
     )
+
+    setTimeout(() => {
+      this.countItemsIntoTheTree = 1
+      if (this.aggregatedRegionTree.children &&
+          this.aggregatedRegionTree.children.length > 0) {
+        this.countItems(this.aggregatedRegionTree)
+      }
+    })
+
   }
 
   getInputPlaceholder(parcellation:any) {
@@ -177,6 +180,11 @@ export class RegionHierarchy implements OnInit, AfterViewInit{
       if (object.children && object.children.length > 0) this.countItems(object)
     })
   }
+
+  uncollapsedFlatTreeItems(event) {
+    this.countItemsIntoTheTree = event
+  }
+
   regionHierarchyHeight(){
     return({
       'height' : (this.countItemsIntoTheTree * 15 + 60).toString() + 'px',
diff --git a/src/ui/regionHierachy/regionHierarchy.template.html b/src/ui/regionHierachy/regionHierarchy.template.html
index b49e04768..bb3c6d299 100644
--- a/src/ui/regionHierachy/regionHierarchy.template.html
+++ b/src/ui/regionHierachy/regionHierarchy.template.html
@@ -38,6 +38,7 @@
       class="tree-body">
       <flat-tree-component
         (treeNodeClick)="handleClickRegion($event)"
+        (uncollaspedItemsNumber)="uncollapsedFlatTreeItems($event)"
         [inputItem]="aggregatedRegionTree"
         [renderNode]="displayTreeNode"
         [searchFilter]="filterTreeBySearch">
-- 
GitLab