diff --git a/src/atlasViewer/atlasViewer.component.ts b/src/atlasViewer/atlasViewer.component.ts index c4bea98d05f471e8755d526b9b6eb76cc6db063a..f779e44fa5192bfaf37fb977f0d98bd494799427 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 a443d9be73c954af9a5bfa21acb23ab79d98f243..a0bd8023c7cc75c902719ca2e84e9ffe2afa5c3b 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 7331bf1322a02ea8bf7b3b302b874e3b0e57a289..5c589fa8f79032c2eb495491e6b7424da0a27df6 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 0f85701a01c24f7325f274ad89afcec9e2691af9..c6499368cdac35bbaeac282ea9eca22790bfe83b 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 9e2163f8c03d14e41924c90c0cd198eafd57a550..5500e98368c379c23a4ebfdb2659e69735656ad9 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 f0716128fb236519d9e025a0f8d099928bb85fa1..6b6a0de3dee52edf1b826424bdd9c4ec372ba4ee 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