Skip to content

Commit 9a636ae

Browse files
committed
add constraint registry to save load
1 parent 084c6f3 commit 9a636ae

File tree

11 files changed

+45
-17
lines changed

11 files changed

+45
-17
lines changed

frontend/webEditor/src/commonModule.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export const commonModule = new ContainerModule((bind, unbind, isBound, rebind)
55

66
bind(TYPES.ModelSource).to(LocalModelSource).inSingletonScope();
77
rebind(TYPES.ILogger).to(ConsoleLogger).inSingletonScope();
8-
rebind(TYPES.LogLevel).toConstantValue(LogLevel.log); // TODO: set to log again
8+
rebind(TYPES.LogLevel).toConstantValue(LogLevel.log);
99
const context = { bind, unbind, isBound, rebind };
1010
configureViewerOptions(context, {
1111
zoomLimits: { min: 0.05, max: 20 },

frontend/webEditor/src/serialize/SavedDiagram.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { SModelRoot } from "sprotty-protocol";
22
import { Constraint } from "../constraint/Constraint";
3-
import { EditorMode } from "../editorMode/EditorMode";
43
import { LabelType } from "../labels/LabelType";
4+
import { EditorMode } from "../settings/editorMode";
55

66
export interface SavedDiagram {
77
model: SModelRoot;

frontend/webEditor/src/serialize/analyze.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ export class AnalyzeCommand extends LoadJsonCommand {
2424
@inject(TYPES.Action) _: Action,
2525
@inject(TYPES.ILogger) logger: ILogger,
2626
@inject(LabelTypeRegistry) labelTypeRegistry: LabelTypeRegistry,
27-
@inject(ConstraintRegistry) private readonly constraintRegistry: ConstraintRegistry,
27+
@inject(ConstraintRegistry) constraintRegistry: ConstraintRegistry,
2828
@inject(SETTINGS.Mode) editorModeController: EditorModeController,
2929
@inject(FileName) fileName: FileName,
3030
@inject(DfdWebSocket) private readonly dfdWebSocket: DfdWebSocket,
3131
@inject(TYPES.IActionDispatcher) actionDispatcher: ActionDispatcher,
3232
) {
33-
super(logger, labelTypeRegistry, editorModeController, actionDispatcher, fileName);
33+
super(logger, labelTypeRegistry, constraintRegistry, editorModeController, actionDispatcher, fileName);
3434
}
3535

3636
protected async getFile(context: CommandExecutionContext): Promise<FileData<SavedDiagram> | undefined> {

frontend/webEditor/src/serialize/loadDefaultDiagram.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { EditorModeController } from "../settings/editorMode";
88
import { LabelTypeRegistry } from "../labels/LabelTypeRegistry";
99
import { FileName } from "../fileName/fileName";
1010
import { SETTINGS } from "../settings/Settings";
11+
import { ConstraintRegistry } from "../constraint/constraintRegistry";
1112

1213
export namespace LoadDefaultDiagramAction {
1314
export const KIND = "loadDefaultDiagram";
@@ -24,11 +25,12 @@ export class LoadDefaultDiagramCommand extends LoadJsonCommand {
2425
@inject(TYPES.Action) _: Action,
2526
@inject(TYPES.ILogger) logger: ILogger,
2627
@inject(LabelTypeRegistry) labelTypeRegistry: LabelTypeRegistry,
28+
@inject(ConstraintRegistry) constraintRegistry: ConstraintRegistry,
2729
@inject(SETTINGS.Mode) editorModeController: EditorModeController,
2830
@inject(TYPES.IActionDispatcher) actionDispatcher: ActionDispatcher,
2931
@inject(FileName) fileName: FileName
3032
) {
31-
super(logger, labelTypeRegistry, editorModeController, actionDispatcher, fileName);
33+
super(logger, labelTypeRegistry, constraintRegistry, editorModeController, actionDispatcher, fileName);
3234
}
3335

3436
protected async getFile(): Promise<FileData<SavedDiagram> | undefined> {

frontend/webEditor/src/serialize/loadDfdAndDdFile.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { LabelTypeRegistry } from "../labels/LabelTypeRegistry";
99
import { SavedDiagram } from "./SavedDiagram";
1010
import { FileName } from "../fileName/fileName";
1111
import { SETTINGS } from "../settings/Settings";
12+
import { ConstraintRegistry } from "../constraint/constraintRegistry";
1213

1314
export namespace LoadDfdAndDdFileAction {
1415
export const KIND = "loadDfdAndDdFile";
@@ -25,12 +26,13 @@ export class LoadDfdAndDdFileCommand extends LoadJsonCommand {
2526
@inject(TYPES.Action) _: Action,
2627
@inject(TYPES.ILogger) logger: ILogger,
2728
@inject(LabelTypeRegistry) labelTypeRegistry: LabelTypeRegistry,
29+
@inject(ConstraintRegistry) constraintRegistry: ConstraintRegistry,
2830
@inject(SETTINGS.Mode) editorModeController: EditorModeController,
2931
@inject(FileName) fileName: FileName,
3032
@inject(DfdWebSocket) private dfdWebSocket: DfdWebSocket,
3133
@inject(TYPES.IActionDispatcher) actionDispatcher: ActionDispatcher,
3234
) {
33-
super(logger, labelTypeRegistry, editorModeController, actionDispatcher, fileName);
35+
super(logger, labelTypeRegistry, constraintRegistry, editorModeController, actionDispatcher, fileName);
3436
}
3537

3638
protected async getFile(): Promise<FileData<SavedDiagram> | undefined> {

frontend/webEditor/src/serialize/loadJson.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { Constraint } from "../constraint/Constraint";
77
import { LabelType } from "../labels/LabelType";
88
import { DefaultFitToScreenAction } from "../fitToScreen/action";
99
import { FileName } from "../fileName/fileName";
10+
import { ConstraintRegistry } from "../constraint/constraintRegistry";
1011

1112
export interface FileData<T> {
1213
fileName: string;
@@ -33,6 +34,7 @@ export abstract class LoadJsonCommand extends Command {
3334
constructor(
3435
private readonly logger: ILogger,
3536
protected readonly labelTypeRegistry: LabelTypeRegistry,
37+
protected constraintRegistry: ConstraintRegistry,
3638
protected editorModeController: EditorModeController,
3739
private actionDispatcher: ActionDispatcher,
3840
protected fileName: FileName
@@ -75,7 +77,13 @@ export abstract class LoadJsonCommand extends Command {
7577
}
7678
this.logger.info(this, "Editor mode loaded successfully");
7779

78-
// TODO: load constraints
80+
this.oldConstrains = this.constraintRegistry.getConstraintList()
81+
const newConstraints = this.file.content.constraints
82+
if (newConstraints) {
83+
this.constraintRegistry.setConstraintsFromArray(newConstraints)
84+
} else {
85+
this.constraintRegistry.clearConstraints()
86+
}
7987

8088
// TODO: post load actions like layout
8189
this.actionDispatcher.dispatch(DefaultFitToScreenAction.create(this.newRoot))
@@ -108,7 +116,9 @@ export abstract class LoadJsonCommand extends Command {
108116
this.editorModeController.set(this.oldEditorMode);
109117
}
110118

111-
// TODO: load constraints
119+
if (this.oldConstrains) {
120+
this.constraintRegistry.setConstraintsFromArray(this.oldConstrains)
121+
}
112122

113123
this.fileName.setName(this.oldFileName ?? 'diagram');
114124

@@ -133,7 +143,12 @@ export abstract class LoadJsonCommand extends Command {
133143
}
134144
this.logger.info(this, "Editor mode loaded successfully");
135145

136-
// TODO: load constraints
146+
const newConstraints = this.file?.content.constraints
147+
if (newConstraints) {
148+
this.constraintRegistry.setConstraintsFromArray(newConstraints)
149+
} else {
150+
this.constraintRegistry.clearConstraints()
151+
}
137152

138153
this.fileName.setName(this.file?.fileName ?? 'diagram');
139154

frontend/webEditor/src/serialize/loadJsonFile.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { LabelTypeRegistry } from "../labels/LabelTypeRegistry";
88
import { SavedDiagram } from "./SavedDiagram";
99
import { FileName } from "../fileName/fileName";
1010
import { SETTINGS } from "../settings/Settings";
11+
import { ConstraintRegistry } from "../constraint/constraintRegistry";
1112

1213
export namespace LoadJsonFileAction {
1314
export const KIND = "loadJsonFile";
@@ -25,11 +26,12 @@ export class LoadJsonFileCommand extends LoadJsonCommand {
2526
@inject(TYPES.Action) _: Action,
2627
@inject(TYPES.ILogger) logger: ILogger,
2728
@inject(LabelTypeRegistry) labelTypeRegistry: LabelTypeRegistry,
29+
@inject(ConstraintRegistry) constraintRegistry: ConstraintRegistry,
2830
@inject(SETTINGS.Mode) editorModeController: EditorModeController,
2931
@inject(TYPES.IActionDispatcher) actionDispatcher: ActionDispatcher,
3032
@inject(FileName) fileName: FileName,
3133
) {
32-
super(logger, labelTypeRegistry, editorModeController, actionDispatcher, fileName);
34+
super(logger, labelTypeRegistry, constraintRegistry, editorModeController, actionDispatcher, fileName);
3335
}
3436

3537
protected async getFile(): Promise<FileData<SavedDiagram> | undefined> {

frontend/webEditor/src/serialize/loadPalladioFile.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { LabelTypeRegistry } from "../labels/LabelTypeRegistry";
99
import { SavedDiagram } from "./SavedDiagram";
1010
import { FileName } from "../fileName/fileName";
1111
import { SETTINGS } from "../settings/Settings";
12+
import { ConstraintRegistry } from "../constraint/constraintRegistry";
1213

1314
export namespace LoadPalladioFileAction {
1415
export const KIND = "loadPcmFile";
@@ -26,12 +27,13 @@ export class LoadPalladioFileCommand extends LoadJsonCommand {
2627
@inject(TYPES.Action) _: Action,
2728
@inject(TYPES.ILogger) logger: ILogger,
2829
@inject(LabelTypeRegistry) labelTypeRegistry: LabelTypeRegistry,
30+
@inject(ConstraintRegistry) constraintRegistry: ConstraintRegistry,
2931
@inject(SETTINGS.Mode) editorModeController: EditorModeController,
3032
@inject(TYPES.IActionDispatcher) actionDispatcher: ActionDispatcher,
3133
@inject(FileName) fileName: FileName,
3234
@inject(DfdWebSocket) private dfdWebSocket: DfdWebSocket,
3335
) {
34-
super(logger, labelTypeRegistry, editorModeController, actionDispatcher, fileName);
36+
super(logger, labelTypeRegistry, constraintRegistry, editorModeController, actionDispatcher, fileName);
3537
}
3638

3739
protected async getFile(): Promise<FileData<SavedDiagram> | undefined> {

frontend/webEditor/src/serialize/saveDfdAndDdFile.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { DfdWebSocket } from "../webSocket/webSocket";
88
import { Action } from "sprotty-protocol";
99
import { FileName } from "../fileName/fileName";
1010
import { SETTINGS } from "../settings/Settings";
11+
import { ConstraintRegistry } from "../constraint/constraintRegistry";
1112

1213
export namespace SaveDfdAndDdFileAction {
1314
export const KIND = 'saveDfdAndDdFile'
@@ -22,13 +23,14 @@ export class SaveDfdAndDdFileCommand extends SaveFileCommand {
2223
private static readonly CLOSING_TAG = "</dataflowdiagram:DataFlowDiagram>";
2324

2425
constructor(
25-
@inject(TYPES.Action) _: Action,
26-
@inject(LabelTypeRegistry) LabelTypeRegistry: LabelTypeRegistry,
26+
@inject(TYPES.Action) _: Action,
27+
@inject(LabelTypeRegistry) labelTypeRegistry: LabelTypeRegistry,
28+
@inject(ConstraintRegistry) constraintRegistry: ConstraintRegistry,
2729
@inject(SETTINGS.Mode) editorModeController: EditorModeController,
2830
@inject(DfdWebSocket) private readonly dfdWebSocket: DfdWebSocket,
2931
@inject(FileName) private readonly fileName: FileName
3032
) {
31-
super(LabelTypeRegistry, editorModeController);
33+
super(labelTypeRegistry, constraintRegistry, editorModeController);
3234
}
3335

3436
async getFiles(context: CommandExecutionContext): Promise<FileData<string>[]> {

frontend/webEditor/src/serialize/saveJsonFile.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { LabelTypeRegistry } from "../labels/LabelTypeRegistry";
77
import { Action } from "sprotty-protocol";
88
import { FileName } from "../fileName/fileName";
99
import { SETTINGS } from "../settings/Settings";
10+
import { ConstraintRegistry } from "../constraint/constraintRegistry";
1011

1112
export namespace SaveJsonFileAction {
1213
export const KIND = 'saveJsonFile'
@@ -21,10 +22,11 @@ export class SaveJsonFileCommand extends SaveFileCommand {
2122
constructor(
2223
@inject(TYPES.Action) _: Action,
2324
@inject(LabelTypeRegistry) LabelTypeRegistry: LabelTypeRegistry,
25+
@inject(ConstraintRegistry) constraintRegistry: ConstraintRegistry,
2426
@inject(SETTINGS.Mode) editorModeController: EditorModeController,
2527
@inject(FileName) private readonly fileName: FileName
2628
) {
27-
super(LabelTypeRegistry, editorModeController);
29+
super(LabelTypeRegistry, constraintRegistry, editorModeController);
2830
}
2931

3032
getFiles(context: CommandExecutionContext): Promise<FileData<string>[]> {

0 commit comments

Comments
 (0)