Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 9x 9x 9x 9x 9x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x | import { Injectable } from "@angular/core" import { MatDialog } from "@angular/material/dialog" import { State, Store } from "@ngrx/store" import { first } from "rxjs" import { CcState } from "../../../codeCharta.model" import { getNumberOfTopLabels } from "../../../state/effects/updateVisibleTopLabels/getNumberOfTopLabels" import { codeMapNodesSelector } from "../../../state/selectors/accumulatedData/codeMapNodes.selector" import { metricDataSelector } from "../../../state/selectors/accumulatedData/metricData/metricData.selector" import { selectedColorMetricDataSelector } from "../../../state/selectors/accumulatedData/metricData/selectedColorMetricData.selector" import { setAmountOfEdgePreviews } from "../../../state/store/appSettings/amountOfEdgePreviews/amountOfEdgePreviews.actions" import { defaultAmountOfEdgesPreviews } from "../../../state/store/appSettings/amountOfEdgePreviews/amountOfEdgePreviews.reducer" import { setAmountOfTopLabels } from "../../../state/store/appSettings/amountOfTopLabels/amountOfTopLabels.actions" import { setEdgeHeight } from "../../../state/store/appSettings/edgeHeight/edgeHeight.actions" import { defaultEdgeHeight } from "../../../state/store/appSettings/edgeHeight/edgeHeight.reducer" import { setMapColors } from "../../../state/store/appSettings/mapColors/mapColors.actions" import { defaultMapColors } from "../../../state/store/appSettings/mapColors/mapColors.reducer" import { setScaling } from "../../../state/store/appSettings/scaling/scaling.actions" import { defaultScaling } from "../../../state/store/appSettings/scaling/scaling.reducer" import { calculateInitialColorRange } from "../../../state/store/dynamicSettings/colorRange/calculateInitialColorRange" import { setColorRange } from "../../../state/store/dynamicSettings/colorRange/colorRange.actions" import { setEdgeMetric } from "../../../state/store/dynamicSettings/edgeMetric/edgeMetric.actions" import { setMargin } from "../../../state/store/dynamicSettings/margin/margin.actions" import { defaultMargin } from "../../../state/store/dynamicSettings/margin/margin.reducer" import { setState } from "../../../state/store/state.actions" import { ThreeCameraService } from "../../codeMap/threeViewer/threeCamera.service" import { ThreeMapControlsService } from "../../codeMap/threeViewer/threeMapControls.service" import { ErrorDialogComponent } from "../../dialogs/errorDialog/errorDialog.component" import { ScenarioHelper } from "./scenarioHelper" @Injectable({ providedIn: "root" }) export class ScenarioService { constructor( private state: State<CcState>, private store: Store<CcState>, private dialog: MatDialog, private threeCameraService: ThreeCameraService, private threeOrbitControlsService: ThreeMapControlsService ) {} getScenarios() { return ScenarioHelper.getScenarioItems(metricDataSelector(this.state.getValue())) } applyScenario(name: string) { const scenario = ScenarioHelper.scenarios.get(name) const scenarioSettings = ScenarioHelper.getScenarioSettings(scenario) this.store.dispatch(setState({ value: scenarioSettings })) if (!scenarioSettings.appSettings.amountOfTopLabels) { this.store .select(codeMapNodesSelector) .pipe(first()) .subscribe(codeMapNodes => { const amountOfTopLabels = getNumberOfTopLabels(codeMapNodes) this.store.dispatch(setAmountOfTopLabels({ value: amountOfTopLabels })) }) } if (!scenarioSettings.appSettings.mapColors) { this.store.dispatch(setMapColors({ value: defaultMapColors })) } Iif (!scenarioSettings.appSettings.edgeHeight) { this.store.dispatch(setEdgeHeight({ value: defaultEdgeHeight })) } if (!scenarioSettings.appSettings.amountOfEdgePreviews) { this.store.dispatch(setAmountOfEdgePreviews({ value: defaultAmountOfEdgesPreviews })) } if (!scenarioSettings.appSettings.scaling) { this.store.dispatch(setScaling({ value: defaultScaling })) } if (!scenarioSettings.dynamicSettings.colorRange) { this.store .select(selectedColorMetricDataSelector) .pipe(first()) .subscribe(selectedColorMetricData => { this.store.dispatch(setColorRange({ value: calculateInitialColorRange(selectedColorMetricData) })) }) } Iif (!scenarioSettings.dynamicSettings.margin) { this.store.dispatch(setMargin({ value: defaultMargin })) } if (!scenarioSettings.dynamicSettings.edgeMetric) { this.store .select(metricDataSelector) .pipe(first()) .subscribe(metricData => { this.store.dispatch(setEdgeMetric({ value: metricData.edgeMetricData[0]?.name })) }) } if (scenario.camera) { // @ts-ignore -- we know that it is not a partial when it is set this.threeCameraService.setPosition(scenario.camera.camera) // @ts-ignore -- we know that it is not a partial when it is set this.threeOrbitControlsService.setControlTarget(scenario.camera.cameraTarget) } } removeScenario(name) { if (name !== "Complexity") { ScenarioHelper.deleteScenario(name) this.dialog.open(ErrorDialogComponent, { data: { title: "Info", message: `${name} deleted.` } }) } else { this.dialog.open(ErrorDialogComponent, { data: { title: "Error", message: `${name} cannot be deleted as it is the default Scenario.` } }) } } } |