/
startup.ts
39 lines (31 loc) · 1.54 KB
/
startup.ts
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
import { IVY_TYPES, ToolBar } from '@axonivy/process-editor';
import { EnableInscriptionAction } from '@axonivy/process-editor-inscription';
import { EnableViewportAction, ShowGridAction, SwitchThemeAction, UpdatePaletteItems } from '@axonivy/process-editor-protocol';
import { EnableToolPaletteAction, GLSPActionDispatcher, IDiagramStartup, TYPES } from '@eclipse-glsp/client';
import { ContainerModule, inject, injectable } from 'inversify';
import { IvyDiagramOptions } from './di.config';
import './index.css';
@injectable()
export class EclipseDiagramStartup implements IDiagramStartup {
@inject(GLSPActionDispatcher)
protected actionDispatcher: GLSPActionDispatcher;
@inject(IVY_TYPES.ToolBar)
protected toolBar: ToolBar;
@inject(TYPES.IDiagramOptions)
protected options: IvyDiagramOptions;
async preRequestModel(): Promise<void> {
this.actionDispatcher.dispatch(EnableToolPaletteAction.create());
this.actionDispatcher.dispatch(EnableViewportAction.create());
this.actionDispatcher.dispatch(SwitchThemeAction.create({ theme: this.options.theme }));
}
async postRequestModel(): Promise<void> {
this.actionDispatcher.dispatch(ShowGridAction.create({ show: this.options.showGrid }));
this.actionDispatcher.dispatch(UpdatePaletteItems.create());
}
async postModelInitialization(): Promise<void> {
this.actionDispatcher.dispatch(EnableInscriptionAction.create({}));
}
}
export const ivyStartupDiagramModule = new ContainerModule(bind => {
bind(TYPES.IDiagramStartup).to(EclipseDiagramStartup).inSingletonScope();
});