diff --git a/src/atlasViewer/atlasViewer.component.ts b/src/atlasViewer/atlasViewer.component.ts index a5a88fd489a9c94f5da518f99392ccd1e693d471..34d3bd40c67b8b44743451738d577634983ff75d 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 8b4f9d41ea7f1688cccf8b1001e3bb8d19eff658..d9c88931dbea0eef97395903d267aa1eda941d1b 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 ef89295968382eec437c368b4fd809bbcc90791e..33750d0d517e7e95b0c23f8c2ec29408c90a95cf 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 ed930b686cc5796da8146b22cde3871f3a527ceb..43d5cd18dd3140ed94e89ee8caf08458b62b75ab 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 06c46df2e627a487551a83aed8ccd32a62efade0..a225812a97008d5ad340ab4088c16575664abd7f 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 8492ba346724ac3590d73f3c5644943029736cf5..ccce423806523cf6a229100601d8f22fc4a4fe7b 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>