Skip to content

Commit a7dae9e

Browse files
authored
fix: aemit operations for position transformation service (#400)
Signed-off-by: Louis Greiner <greiner.louis@gmail.com>
1 parent fe3e788 commit a7dae9e

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/app/app.component.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {Operation} from "./models/operation.model";
1212
import {LabelService} from "./services/data/label.service";
1313
import {NodeService} from "./services/data/node.service";
1414
import {I18nService} from "./core/i18n/i18n.service";
15+
import {PositionTransformationService} from "./services/util/position.transformation.service";
1516

1617
@Component({
1718
selector: "sbb-root",
@@ -46,6 +47,7 @@ export class AppComponent {
4647
private trainrunService: TrainrunService,
4748
private trainrunSectionService: TrainrunSectionService,
4849
private nodeService: NodeService,
50+
private positionTransformationService: PositionTransformationService,
4951
private labelService: LabelService,
5052
private i18nService: I18nService,
5153
) {
@@ -86,6 +88,7 @@ export class AppComponent {
8688
this.trainrunService.operation,
8789
this.trainrunSectionService.operation,
8890
this.nodeService.operation,
91+
this.positionTransformationService.operation,
8992
this.labelService.operation,
9093
);
9194
}

src/app/services/util/position.transformation.service.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import {Injectable} from "@angular/core";
1+
import {EventEmitter, Injectable} from "@angular/core";
22
import {TrainrunSectionService} from "../data/trainrunsection.service";
33
import {UiInteractionService} from "../ui/ui.interaction.service";
44
import {NodeService} from "../data/node.service";
55
import {NoteService} from "../data/note.service";
66
import {Vec2D} from "../../utils/vec2D";
77
import {Node} from "../../models/node.model";
88
import {ViewportCullService} from "../ui/viewport.cull.service";
9+
import {NodeOperation, Operation, OperationType} from "src/app/models/operation.model";
910

1011
@Injectable({
1112
providedIn: "root",
@@ -19,6 +20,7 @@ export class PositionTransformationService {
1920
private readonly viewportCullService: ViewportCullService,
2021
) {
2122
}
23+
readonly operation = new EventEmitter<Operation>();
2224

2325
private scaleFullNetzgrafikArea(factor: number, zoomCenter: Vec2D, windowViewboxPropertiesMapKey: string) {
2426
const scaleCenterCoordinates: Vec2D = this.computeScaleCenterCoordinates(zoomCenter, windowViewboxPropertiesMapKey);
@@ -135,6 +137,7 @@ export class PositionTransformationService {
135137
if (leftX !== undefined) {
136138
nodes.forEach((n) => {
137139
n.setPosition(leftX, n.getPositionY());
140+
this.operation.emit(new NodeOperation(OperationType.update, n));
138141
});
139142
}
140143

@@ -157,6 +160,7 @@ export class PositionTransformationService {
157160
if (rightX !== undefined) {
158161
nodes.forEach((n) => {
159162
n.setPosition(rightX - n.getNodeWidth(), n.getPositionY());
163+
this.operation.emit(new NodeOperation(OperationType.update, n));
160164
});
161165
}
162166

@@ -179,6 +183,7 @@ export class PositionTransformationService {
179183
if (topY !== undefined) {
180184
nodes.forEach((n) => {
181185
n.setPosition(n.getPositionX(), topY);
186+
this.operation.emit(new NodeOperation(OperationType.update, n));
182187
});
183188
}
184189

@@ -201,6 +206,7 @@ export class PositionTransformationService {
201206
if (bottomY !== undefined) {
202207
nodes.forEach((n) => {
203208
n.setPosition(n.getPositionX(), bottomY - n.getNodeHeight());
209+
this.operation.emit(new NodeOperation(OperationType.update, n));
204210
});
205211
}
206212

0 commit comments

Comments
 (0)