From c4e316a1b8ceba2e4278aa77e4587d3a4eb23967 Mon Sep 17 00:00:00 2001 From: fsdavid <daviti1@mail.com> Date: Wed, 5 Aug 2020 06:30:09 +0200 Subject: [PATCH] Show connectivity as chip (#621) --- src/atlasViewer/atlasViewer.component.ts | 9 +++++++ src/atlasViewer/atlasViewer.template.html | 15 +++++++++++ src/services/state/viewerState.store.ts | 2 +- .../connectivityBrowser.component.ts | 27 +++++++++++++------ .../nehubaContainer.component.ts | 3 +++ .../nehubaContainer.template.html | 2 +- 6 files changed, 48 insertions(+), 10 deletions(-) diff --git a/src/atlasViewer/atlasViewer.component.ts b/src/atlasViewer/atlasViewer.component.ts index a5a88fd48..34d3bd40c 100644 --- a/src/atlasViewer/atlasViewer.component.ts +++ b/src/atlasViewer/atlasViewer.component.ts @@ -95,6 +95,8 @@ export class AtlasViewer implements OnDestroy, OnInit, AfterViewInit { public onhoverLandmark$: Observable<{landmarkName: string, datasets: any} | null> + public overwrittenColorMap$: Observable<any> + private subscriptions: Subscription[] = [] public unsupportedPreviewIdx: number = 0 @@ -202,6 +204,13 @@ export class AtlasViewer implements OnDestroy, OnInit, AfterViewInit { ) + this.overwrittenColorMap$ = this.store.pipe( + select('viewerState'), + safeFilter('overwrittenColorMap'), + map(state => state.overwrittenColorMap), + distinctUntilChanged() + ) + const error = this.el.nativeElement.getAttribute('data-error') if (error) { diff --git a/src/atlasViewer/atlasViewer.template.html b/src/atlasViewer/atlasViewer.template.html index 8b4f9d41e..d9c88931d 100644 --- a/src/atlasViewer/atlasViewer.template.html +++ b/src/atlasViewer/atlasViewer.template.html @@ -227,7 +227,22 @@ fontIcon="fa-times"> </mat-icon> </mat-chip> + + <mat-chip *ngIf="(overwrittenColorMap$ | async) === 'connectivity' && !previewDirective.active" + (click)="uiNehubaContainer.matDrawerMinor.open() && uiNehubaContainer.navSideDrawerMainSwitch.open()" + class="pe-all position-relative ml-8-n"> + <span class="pl-4"> + Connectivity + </span> + <mat-icon + (click)="uiNehubaContainer.connectivityComponent.closeConnectivityView()" + fontSet="fas" + iav-stop="click" + fontIcon="fa-times"> + </mat-icon> + </mat-chip> </ng-container> + </ng-container> </ng-template> diff --git a/src/services/state/viewerState.store.ts b/src/services/state/viewerState.store.ts index ef8929596..33750d0d5 100644 --- a/src/services/state/viewerState.store.ts +++ b/src/services/state/viewerState.store.ts @@ -226,7 +226,7 @@ export const getStateStore = ({ state = defaultState } = {}) => (prevState: Part case SET_CONNECTIVITY_VISIBLE: return { ...prevState, - overwrittenColorMap: action.payload, + overwrittenColorMap: action.payload || '', } default : return prevState diff --git a/src/ui/connectivityBrowser/connectivityBrowser.component.ts b/src/ui/connectivityBrowser/connectivityBrowser.component.ts index ed930b686..43d5cd18d 100644 --- a/src/ui/connectivityBrowser/connectivityBrowser.component.ts +++ b/src/ui/connectivityBrowser/connectivityBrowser.component.ts @@ -29,6 +29,7 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy, A private connectivityRegion$: Observable<any> private templateSelected$: Observable<any> private selectedParcellation$: Observable<any> + public overwrittenColorMap$: Observable<any> private subscriptions: Subscription[] = [] public expandMenuIndex = -1 @@ -72,6 +73,13 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy, A select('templateSelected'), shareReplay(1) ) + + this.overwrittenColorMap$ = this.store$.pipe( + select('viewerState'), + safeFilter('overwrittenColorMap'), + map(state => state.overwrittenColorMap), + distinctUntilChanged() + ) } public ngAfterContentChecked(): void { @@ -99,7 +107,7 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy, A this.setDefaultMap() this.store$.dispatch({ type: SET_CONNECTIVITY_VISIBLE, - payload: false, + payload: null, }) } this.region = cr @@ -110,6 +118,9 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy, A this.subscriptions.push(this.templateSelected$.subscribe(t => { this.closeConnectivityView() })) + this.subscriptions.push(this.overwrittenColorMap$.subscribe(ocm => { + this.showConnectivityToggle = ocm === 'connectivity'? true : false + })) this.subscriptions.push( fromEvent(this.connectivityComponentElement?.nativeElement, 'connectivityDataReceived', { capture: true }) .subscribe((e: CustomEvent) => { @@ -151,7 +162,7 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy, A if (this.defaultColorMap) this.setDefaultMap() this.store$.dispatch({ type: SET_CONNECTIVITY_VISIBLE, - payload: false, + payload: null, }) } } @@ -164,10 +175,10 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy, A public ngOnDestroy(): void { this.subscriptions.forEach(s => s.unsubscribe()) this.defaultColorMap && this.setDefaultMap() - this.store$.dispatch({ - type: SET_CONNECTIVITY_VISIBLE, - payload: false, - }) + // this.store$.dispatch({ + // type: SET_CONNECTIVITY_VISIBLE, + // payload: false, + // }) } navigateToRegion(region) { @@ -197,7 +208,7 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy, A }) this.store$.dispatch({ type: SET_CONNECTIVITY_VISIBLE, - payload: false, + payload: null, }) } @@ -213,7 +224,7 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy, A public addNewColorMap() { this.store$.dispatch({ type: SET_CONNECTIVITY_VISIBLE, - payload: true, + payload: 'connectivity', }) this.defaultColorMap = new Map(getWindow().interactiveViewer.viewerHandle.getLayersSegmentColourMap()) diff --git a/src/ui/nehubaContainer/nehubaContainer.component.ts b/src/ui/nehubaContainer/nehubaContainer.component.ts index 06c46df2e..a225812a9 100644 --- a/src/ui/nehubaContainer/nehubaContainer.component.ts +++ b/src/ui/nehubaContainer/nehubaContainer.component.ts @@ -25,6 +25,7 @@ import { import { getFourPanel, getHorizontalOneThree, getSinglePanel, getVerticalOneThree, calculateSliceZoomFactor, scanSliceViewRenderFn as scanFn, isFirstRow, isFirstCell } from "./util"; import { NehubaViewerContainerDirective } from "./nehubaViewerInterface/nehubaViewerInterface.directive"; import { ITunableProp } from "./mobileOverlay/mobileOverlay.component"; +import {ConnectivityBrowserComponent} from "src/ui/connectivityBrowser/connectivityBrowser.component"; const { MESH_LOADING_STATUS } = IDS @@ -249,6 +250,8 @@ export class NehubaContainer implements OnInit, OnChanges, OnDestroy { public hoveredPanelIndices$: Observable<number> + @ViewChild('connectivityComponent') public connectivityComponent: ConnectivityBrowserComponent + constructor( private pureConstantService: PureContantService, private apiService: AtlasViewerAPIServices, diff --git a/src/ui/nehubaContainer/nehubaContainer.template.html b/src/ui/nehubaContainer/nehubaContainer.template.html index 8492ba346..ccce42380 100644 --- a/src/ui/nehubaContainer/nehubaContainer.template.html +++ b/src/ui/nehubaContainer/nehubaContainer.template.html @@ -380,7 +380,7 @@ <!-- Connectivity --> <ng-template #connectivityContentTmpl> <mat-card-content class="flex-grow-1 flex-shrink-1 w-100"> - <connectivity-browser class="pe-all flex-shrink-1"> + <connectivity-browser class="pe-all flex-shrink-1" #connectivityComponent> </connectivity-browser> </mat-card-content> </ng-template> -- GitLab