From 3f5edf9623768ee04295de35add0057a862ecfb2 Mon Sep 17 00:00:00 2001 From: fsdavid <daviti1@mail.com> Date: Tue, 17 Dec 2019 12:13:08 +0100 Subject: [PATCH] connectivity map is shown when changing template --- src/atlasViewer/atlasViewer.component.ts | 2 - src/atlasViewer/atlasViewer.template.html | 43 ++++++++++--------- src/services/state/uiState.store.ts | 8 ++-- .../connectivityBrowser.component.ts | 24 ++++++++--- src/ui/parcellationRegion/region.base.ts | 5 ++- .../regionMenu/regionMenu.template.html | 6 +++ 6 files changed, 56 insertions(+), 32 deletions(-) diff --git a/src/atlasViewer/atlasViewer.component.ts b/src/atlasViewer/atlasViewer.component.ts index c4bea98d0..f779e44fa 100644 --- a/src/atlasViewer/atlasViewer.component.ts +++ b/src/atlasViewer/atlasViewer.component.ts @@ -129,7 +129,6 @@ export class AtlasViewer implements OnDestroy, OnInit, AfterViewInit { constructor( private store: Store<ViewerStateInterface | UIStateInterface>, - public dataService: AtlasViewerDataService, private widgetServices: WidgetServices, private constantsService: AtlasViewerConstantsServices, public apiService: AtlasViewerAPIServices, @@ -440,7 +439,6 @@ export class AtlasViewer implements OnDestroy, OnInit, AfterViewInit { } showConnectivity(event) { - // setTimeout(() => ) this.toggleSideNavMenu(false) this.store.dispatch({type: EXPAND_SIDE_PANEL_CURRENT_VIEW}) this.store.dispatch({type: SHOW_SIDE_PANEL_CONNECTIVITY}) diff --git a/src/atlasViewer/atlasViewer.template.html b/src/atlasViewer/atlasViewer.template.html index a443d9be7..a0bd8023c 100644 --- a/src/atlasViewer/atlasViewer.template.html +++ b/src/atlasViewer/atlasViewer.template.html @@ -144,32 +144,35 @@ <region-menu class="pe-all" [region]="onHoverRegion" - [isSelected]="selectedRegions$ | async | includes : onHoverRegion : compareFn"> + [isSelected]="selectedRegions$ | async | includes : onHoverRegion : compareFn" + [hasConnectivity]="selectedParcellation && selectedParcellation.name.includes('JuBrain Cytoarchitectonic Atlas')" + (exploreConnectivity) = "showConnectivity($event)" + > </region-menu> </ng-container> </ng-container> </div> - <panel-component class="shadow p-0 m-0" fixedMouseContextualContainerDirective [style.width]="selectedParcellation && selectedParcellation.name.includes('JuBrain Cytoarchitectonic Atlas')? '18rem' : '15rem'"> - <div body class="pe-all" *ngIf="(onhoverSegmentsForFixed$ | async) as onHoverSegments"> - <mat-card *ngIf="onHoverSegments.length > 0 && regionToolsMenuVisible" class="d-flex flex-column p-0"> - <div *ngFor="let onHoverRegion of onHoverSegments; let first = first" - class="border-dark rounded"> - <mat-divider *ngIf="!first"></mat-divider> - - <region-menu - [selectedRegions$]="selectedRegions$" - [region]="onHoverRegion" - [hasConnectivity]="selectedParcellation && selectedParcellation.name.includes('JuBrain Cytoarchitectonic Atlas')" - (exploreConnectivity) = "showConnectivity($event);"> - </region-menu> - - </div> - </mat-card> - </div> - - </panel-component> +<!-- <panel-component class="shadow p-0 m-0" fixedMouseContextualContainerDirective>--> +<!-- <div body class="pe-all" *ngIf="(onhoverSegmentsForFixed$ | async) as onHoverSegments">--> +<!-- <mat-card *ngIf="onHoverSegments.length > 0 && regionToolsMenuVisible" class="d-flex flex-column p-0">--> +<!-- <div *ngFor="let onHoverRegion of onHoverSegments; let first = first"--> +<!-- class="border-dark rounded">--> +<!-- <mat-divider *ngIf="!first"></mat-divider>--> + +<!-- <region-menu--> +<!-- [region]="onHoverRegion"--> +<!-- [hasConnectivity]="selectedParcellation && selectedParcellation.name.includes('JuBrain Cytoarchitectonic Atlas')"--> +<!-- [pn]="selectedParcellation && selectedParcellation.name && selectedParcellation.name.length? selectedParcellation.name : 'CY'"--> +<!-- (exploreConnectivity) = "showConnectivity($event);">--> +<!-- </region-menu>--> + +<!-- </div>--> +<!-- </mat-card>--> +<!-- </div>--> + +<!-- </panel-component>--> </layout-floating-container> diff --git a/src/services/state/uiState.store.ts b/src/services/state/uiState.store.ts index 7331bf132..5c589fa8f 100644 --- a/src/services/state/uiState.store.ts +++ b/src/services/state/uiState.store.ts @@ -74,24 +74,24 @@ export const getStateStore = ({ state = defaultState } = {}) => (prevState:State case EXPAND_SIDE_PANEL_CURRENT_VIEW: return { - ...state, + ...prevState, sidePanelCurrentViewOpened: true } case COLLAPSE_SIDE_PANEL_CURRENT_VIEW: return { - ...state, + ...prevState, sidePanelCurrentViewOpened: false } case SHOW_SIDE_PANEL_CONNECTIVITY: return { - ...state, + ...prevState, sidePanelManualCollapsibleView: 'Connectivity' } case HIDE_SIDE_PANEL_CONNECTIVITY: return { - ...state, + ...prevState, sidePanelManualCollapsibleView: '' } case AGREE_COOKIE: diff --git a/src/ui/connectivityBrowser/connectivityBrowser.component.ts b/src/ui/connectivityBrowser/connectivityBrowser.component.ts index 0f85701a0..c6499368c 100644 --- a/src/ui/connectivityBrowser/connectivityBrowser.component.ts +++ b/src/ui/connectivityBrowser/connectivityBrowser.component.ts @@ -49,7 +49,15 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy { this.subscriptions.push( this.selectedParcellation$.subscribe(parcellation => { this.selectedParcellation = parcellation - this.getAllRegionsFromParcellation(parcellation.regions) + if (parcellation.regions && parcellation.regions.length) { + this.allRegions = [] + this.getAllRegionsFromParcellation(parcellation.regions) + if (this.defaultColorMap) { + this.saveAndDisableExistingColorTemplate() + } + } + + }) ) @@ -64,11 +72,20 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy { } ngOnDestroy(): void { + this.setDefaultMap() this.subscriptions.forEach(s => s.unsubscribe()) } public closeConnectivityView() { + this.setDefaultMap() + + this.store$.dispatch({ + type: HIDE_SIDE_PANEL_CONNECTIVITY, + }) + } + + setDefaultMap() { this.allRegions.forEach(r => { if (r && r.ngId && r.rgb) { // @ts-ignore @@ -76,14 +93,11 @@ export class ConnectivityBrowserComponent implements AfterViewInit, OnDestroy { } getWindow().interactiveViewer.viewerHandle.applyLayersColourMap(this.defaultColorMap) }) - - this.store$.dispatch({ - type: HIDE_SIDE_PANEL_CONNECTIVITY, - }) } saveAndDisableExistingColorTemplate() { + const hemisphere = this.region.includes('left hemisphere')? ' - left hemisphere' : ' - right hemisphere' this.defaultColorMap = new Map(getWindow().interactiveViewer.viewerHandle.getLayersSegmentColourMap()) diff --git a/src/ui/parcellationRegion/region.base.ts b/src/ui/parcellationRegion/region.base.ts index 9e2163f8c..5500e9836 100644 --- a/src/ui/parcellationRegion/region.base.ts +++ b/src/ui/parcellationRegion/region.base.ts @@ -1,5 +1,5 @@ import { Store } from "@ngrx/store"; -import { Input } from "@angular/core"; +import {EventEmitter, Input, Output} from "@angular/core"; import { VIEWERSTATE_CONTROLLER_ACTION_TYPES } from "../viewerStateController/viewerState.base"; import { IavRootStoreInterface } from "src/services/stateStore.service"; @@ -11,6 +11,9 @@ export class RegionBase{ @Input() public isSelected: boolean = false + @Input() hasConnectivity: boolean + @Output() exploreConnectivity: EventEmitter<string> = new EventEmitter() + constructor( private store$: Store<IavRootStoreInterface>, ){ diff --git a/src/ui/parcellationRegion/regionMenu/regionMenu.template.html b/src/ui/parcellationRegion/regionMenu/regionMenu.template.html index f0716128f..6b6a0de3d 100644 --- a/src/ui/parcellationRegion/regionMenu/regionMenu.template.html +++ b/src/ui/parcellationRegion/regionMenu/regionMenu.template.html @@ -20,5 +20,11 @@ Navigate </span> </button> + <button *ngIf="hasConnectivity" mat-button (click)="exploreConnectivity.emit(region.name)"> + <i class="fas fa-map-marked-alt"></i> + <span> + Connectivity + </span> + </button> </mat-card-actions> </mat-card> \ No newline at end of file -- GitLab