Skip to content
Snippets Groups Projects
Commit 424cd9e3 authored by Daviti Gogshelidze's avatar Daviti Gogshelidze
Browse files

region hierarchy and smaller corrections

parent 3124ed63
No related branches found
No related tags found
No related merge requests found
...@@ -127,10 +127,12 @@ ...@@ -127,10 +127,12 @@
<ui-nehuba-container (contextmenu)="nehubaClickHandler($event)"> <ui-nehuba-container (contextmenu)="nehubaClickHandler($event)">
</ui-nehuba-container> </ui-nehuba-container>
<div *ngIf="!isMobile && selectedTemplate" bannerWrapper> <div *ngIf="!isMobile" bannerWrapper>
<menu-icons iconWrapper> <menu-icons iconWrapper *ngIf="selectedTemplate">
</menu-icons> </menu-icons>
<signin-banner signinWrapper>
<div *ngIf="!selectedTemplate"></div>
<signin-banner signinWrapper [ngStyle]="{'margin-right': !selectedTemplate? '20px': ''}">
</signin-banner> </signin-banner>
</div> </div>
......
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 { FlattenedTreeInterface } from "./flattener.pipe";
import {CdkVirtualScrollViewport} from "@angular/cdk/scrolling";
/** /**
* TODO to be replaced by virtual scrolling when ivy is in stable * TODO to be replaced by virtual scrolling when ivy is in stable
...@@ -14,7 +15,7 @@ import { FlattenedTreeInterface } from "./flattener.pipe"; ...@@ -14,7 +15,7 @@ import { FlattenedTreeInterface } from "./flattener.pipe";
changeDetection:ChangeDetectionStrategy.OnPush changeDetection:ChangeDetectionStrategy.OnPush
}) })
export class FlatTreeComponent{ export class FlatTreeComponent implements OnChanges {
@Input() inputItem : any = { @Input() inputItem : any = {
name : 'Untitled', name : 'Untitled',
children : [] children : []
...@@ -33,6 +34,9 @@ export class FlatTreeComponent{ ...@@ -33,6 +34,9 @@ export class FlatTreeComponent{
@Input() findChildren : (item:any)=>any[] = (item)=>item.children ? item.children : [] @Input() findChildren : (item:any)=>any[] = (item)=>item.children ? item.children : []
@Input() searchFilter : (item:any)=>boolean | null = ()=>true @Input() searchFilter : (item:any)=>boolean | null = ()=>true
@ViewChild('flatTreeVirtualScrollViewPort') _temp: CdkVirtualScrollViewport
@Output() uncollaspedItemsNumber = new EventEmitter<number>()
public flattenedItems : any[] = [] public flattenedItems : any[] = []
getClass(level:number){ getClass(level:number){
...@@ -42,6 +46,12 @@ export class FlatTreeComponent{ ...@@ -42,6 +46,12 @@ export class FlatTreeComponent{
collapsedLevels: Set<string> = new Set() collapsedLevels: Set<string> = new Set()
uncollapsedLevels : Set<string> = new Set() uncollapsedLevels : Set<string> = new Set()
ngOnChanges(): void {
if (this._temp) {
setTimeout(() => {this.uncollaspedItemsNumber.emit(this._temp.getDataLength())})
}
}
toggleCollapse(flattenedItem:FlattenedTreeInterface){ toggleCollapse(flattenedItem:FlattenedTreeInterface){
if (this.isCollapsed(flattenedItem)) { if (this.isCollapsed(flattenedItem)) {
this.collapsedLevels.delete(flattenedItem.lvlId) this.collapsedLevels.delete(flattenedItem.lvlId)
...@@ -52,6 +62,7 @@ export class FlatTreeComponent{ ...@@ -52,6 +62,7 @@ export class FlatTreeComponent{
} }
this.collapsedLevels = new Set(this.collapsedLevels) this.collapsedLevels = new Set(this.collapsedLevels)
this.uncollapsedLevels = new Set(this.uncollapsedLevels) this.uncollapsedLevels = new Set(this.uncollapsedLevels)
setTimeout(() => {this.uncollaspedItemsNumber.emit(this._temp.getDataLength())})
} }
isCollapsed(flattenedItem:FlattenedTreeInterface):boolean{ isCollapsed(flattenedItem:FlattenedTreeInterface):boolean{
......
<cdk-virtual-scroll-viewport <cdk-virtual-scroll-viewport
*ngIf="!useDefaultList" *ngIf="!useDefaultList"
(wheel)="$event.stopPropagation()" (wheel)="$event.stopPropagation()"
itemSize="15"> itemSize="15"
#flatTreeVirtualScrollViewPort>
<div <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)" [ngClass]="getClass(flattenedItem.flattenedTreeLevel)"
class="text-nowrap" class="text-nowrap"
[attr.flattenedtreelevel]="flattenedItem.flattenedTreeLevel" [attr.flattenedtreelevel]="flattenedItem.flattenedTreeLevel"
...@@ -37,7 +38,7 @@ ...@@ -37,7 +38,7 @@
*ngIf="useDefaultList" *ngIf="useDefaultList"
class="overflow-auto"> class="overflow-auto">
<div class="overflow-hidden default-container" style="background-color: #dbb556"> <div class="overflow-hidden default-container">
<div <div
*ngFor="let flattenedItem of (inputItem | flattenTreePipe : findChildren | filterRowsByVisbilityPipe : findChildren : searchFilter | appendSiblingFlagPipe )" *ngFor="let flattenedItem of (inputItem | flattenTreePipe : findChildren | filterRowsByVisbilityPipe : findChildren : searchFilter | appendSiblingFlagPipe )"
[ngClass]="getClass(flattenedItem.flattenedTreeLevel)" [ngClass]="getClass(flattenedItem.flattenedTreeLevel)"
......
...@@ -3,8 +3,6 @@ ...@@ -3,8 +3,6 @@
<div class="splashScreenHeaderLogoContainer"><img class="splashScreenHeaderLogo " src="./res/image/HBP_Primary_RGB_BlackText.png"> </div> <div class="splashScreenHeaderLogoContainer"><img class="splashScreenHeaderLogo " src="./res/image/HBP_Primary_RGB_BlackText.png"> </div>
<div class="spaceForFill"> <div class="spaceForFill">
</div> </div>
<signin-banner >
</signin-banner>
</div> </div>
<div splashScreenTemplate> <div splashScreenTemplate>
......
...@@ -3,7 +3,6 @@ import { Subscription, Subject, fromEvent } from "rxjs"; ...@@ -3,7 +3,6 @@ import { Subscription, Subject, fromEvent } from "rxjs";
import { buffer, debounceTime } from "rxjs/operators"; import { buffer, debounceTime } from "rxjs/operators";
import { FilterNameBySearch } from "./filterNameBySearch.pipe"; import { FilterNameBySearch } from "./filterNameBySearch.pipe";
import { generateLabelIndexId } from "src/services/stateStore.service"; import { generateLabelIndexId } from "src/services/stateStore.service";
import {promise} from "selenium-webdriver";
const insertHighlight :(name:string, searchTerm:string) => string = (name:string, searchTerm:string = '') => { const insertHighlight :(name:string, searchTerm:string) => string = (name:string, searchTerm:string = '') => {
const regex = new RegExp(searchTerm, 'gi') const regex = new RegExp(searchTerm, 'gi')
...@@ -111,11 +110,6 @@ export class RegionHierarchy implements OnInit, AfterViewInit{ ...@@ -111,11 +110,6 @@ export class RegionHierarchy implements OnInit, AfterViewInit{
set showRegionTree(flag: boolean){ set showRegionTree(flag: boolean){
this._showRegionTree = flag this._showRegionTree = flag
this.showRegionFlagChanged.emit(this._showRegionTree) this.showRegionFlagChanged.emit(this._showRegionTree)
this.countItemsIntoTheTree = 1
if (this.aggregatedRegionTree.children &&
this.aggregatedRegionTree.children.length > 0) {
this.countItems(this.aggregatedRegionTree)
}
} }
ngOnInit(){ ngOnInit(){
...@@ -155,6 +149,15 @@ export class RegionHierarchy implements OnInit, AfterViewInit{ ...@@ -155,6 +149,15 @@ export class RegionHierarchy implements OnInit, AfterViewInit{
this.changeSearchTerm(ev) this.changeSearchTerm(ev)
}) })
) )
setTimeout(() => {
this.countItemsIntoTheTree = 1
if (this.aggregatedRegionTree.children &&
this.aggregatedRegionTree.children.length > 0) {
this.countItems(this.aggregatedRegionTree)
}
})
} }
getInputPlaceholder(parcellation:any) { getInputPlaceholder(parcellation:any) {
...@@ -177,6 +180,11 @@ export class RegionHierarchy implements OnInit, AfterViewInit{ ...@@ -177,6 +180,11 @@ export class RegionHierarchy implements OnInit, AfterViewInit{
if (object.children && object.children.length > 0) this.countItems(object) if (object.children && object.children.length > 0) this.countItems(object)
}) })
} }
uncollapsedFlatTreeItems(event) {
this.countItemsIntoTheTree = event
}
regionHierarchyHeight(){ regionHierarchyHeight(){
return({ return({
'height' : (this.countItemsIntoTheTree * 15 + 60).toString() + 'px', 'height' : (this.countItemsIntoTheTree * 15 + 60).toString() + 'px',
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
class="tree-body"> class="tree-body">
<flat-tree-component <flat-tree-component
(treeNodeClick)="handleClickRegion($event)" (treeNodeClick)="handleClickRegion($event)"
(uncollaspedItemsNumber)="uncollapsedFlatTreeItems($event)"
[inputItem]="aggregatedRegionTree" [inputItem]="aggregatedRegionTree"
[renderNode]="displayTreeNode" [renderNode]="displayTreeNode"
[searchFilter]="filterTreeBySearch"> [searchFilter]="filterTreeBySearch">
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment