@eclipse-glsp/server 1.1.0-next.5fd686c.61 → 1.1.0-next.b17a86c.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/launch/worker-server-launcher.js +26 -2
- package/lib/browser/launch/worker-server-launcher.js.map +1 -1
- package/lib/common/actions/action-dispatcher.d.ts +2 -1
- package/lib/common/actions/action-dispatcher.d.ts.map +1 -1
- package/lib/common/actions/action-dispatcher.js +9 -6
- package/lib/common/actions/action-dispatcher.js.map +1 -1
- package/lib/common/actions/action-handler-registry.js +4 -2
- package/lib/common/actions/action-handler-registry.js.map +1 -1
- package/lib/common/actions/client-action-handler.d.ts +17 -8
- package/lib/common/actions/client-action-handler.d.ts.map +1 -1
- package/lib/common/actions/client-action-handler.js +32 -21
- package/lib/common/actions/client-action-handler.js.map +1 -1
- package/lib/common/actions/global-action-provider.d.ts +6 -21
- package/lib/common/actions/global-action-provider.d.ts.map +1 -1
- package/lib/common/actions/global-action-provider.js +17 -21
- package/lib/common/actions/global-action-provider.js.map +1 -1
- package/lib/common/command/command-stack.js +2 -1
- package/lib/common/command/command-stack.js.map +1 -1
- package/lib/common/command/recording-command.js +24 -1
- package/lib/common/command/recording-command.js.map +1 -1
- package/lib/common/command/undo-redo-action-handler.js +2 -1
- package/lib/common/command/undo-redo-action-handler.js.map +1 -1
- package/lib/common/di/client-session-module.d.ts +9 -1
- package/lib/common/di/client-session-module.d.ts.map +1 -1
- package/lib/common/di/client-session-module.js +9 -9
- package/lib/common/di/client-session-module.js.map +1 -1
- package/lib/common/di/diagram-module.d.ts +17 -1
- package/lib/common/di/diagram-module.d.ts.map +1 -1
- package/lib/common/di/diagram-module.js +4 -51
- package/lib/common/di/diagram-module.js.map +1 -1
- package/lib/common/di/glsp-module.js +2 -1
- package/lib/common/di/glsp-module.js.map +1 -1
- package/lib/common/di/server-module.d.ts +0 -1
- package/lib/common/di/server-module.d.ts.map +1 -1
- package/lib/common/di/server-module.js +0 -1
- package/lib/common/di/server-module.js.map +1 -1
- package/lib/common/diagram/request-type-hints-action-handler.js +2 -1
- package/lib/common/diagram/request-type-hints-action-handler.js.map +1 -1
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.js +2 -1
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.js.map +1 -1
- package/lib/common/features/contextactions/command-palette-action-provider.js +2 -1
- package/lib/common/features/contextactions/command-palette-action-provider.js.map +1 -1
- package/lib/common/features/contextactions/context-actions-provider-registry.js +2 -1
- package/lib/common/features/contextactions/context-actions-provider-registry.js.map +1 -1
- package/lib/common/features/contextactions/context-menu-item-provider.js +2 -1
- package/lib/common/features/contextactions/context-menu-item-provider.js.map +1 -1
- package/lib/common/features/contextactions/request-context-actions-handler.js +2 -1
- package/lib/common/features/contextactions/request-context-actions-handler.js.map +1 -1
- package/lib/common/features/contextactions/tool-palette-item-provider.js +4 -2
- package/lib/common/features/contextactions/tool-palette-item-provider.js.map +1 -1
- package/lib/common/features/directediting/context-edit-validator-registry.js +2 -1
- package/lib/common/features/directediting/context-edit-validator-registry.js.map +1 -1
- package/lib/common/features/directediting/label-edit-validator.js +2 -1
- package/lib/common/features/directediting/label-edit-validator.js.map +1 -1
- package/lib/common/features/directediting/request-edit-validation-handler.js +2 -1
- package/lib/common/features/directediting/request-edit-validation-handler.js.map +1 -1
- package/lib/common/features/layout/computed-bounds-action-handler.js +2 -1
- package/lib/common/features/layout/computed-bounds-action-handler.js.map +1 -1
- package/lib/common/features/layout/layout-operation-handler.js +2 -1
- package/lib/common/features/layout/layout-operation-handler.js.map +1 -1
- package/lib/common/features/model/gmodel-factory.js +2 -1
- package/lib/common/features/model/gmodel-factory.js.map +1 -1
- package/lib/common/features/model/gmodel-index.js +2 -1
- package/lib/common/features/model/gmodel-index.js.map +1 -1
- package/lib/common/features/model/gmodel-serializer.js +2 -1
- package/lib/common/features/model/gmodel-serializer.js.map +1 -1
- package/lib/common/features/model/model-state.js +2 -1
- package/lib/common/features/model/model-state.js.map +1 -1
- package/lib/common/features/model/model-submission-handler.d.ts +29 -3
- package/lib/common/features/model/model-submission-handler.d.ts.map +1 -1
- package/lib/common/features/model/model-submission-handler.js +46 -6
- package/lib/common/features/model/model-submission-handler.js.map +1 -1
- package/lib/common/features/model/request-model-action-handler.d.ts.map +1 -1
- package/lib/common/features/model/request-model-action-handler.js +5 -4
- package/lib/common/features/model/request-model-action-handler.js.map +1 -1
- package/lib/common/features/model/save-model-action-handler.js +2 -1
- package/lib/common/features/model/save-model-action-handler.js.map +1 -1
- package/lib/common/features/navigation/navigation-target-provider-registry.js +2 -1
- package/lib/common/features/navigation/navigation-target-provider-registry.js.map +1 -1
- package/lib/common/features/navigation/navigation-target-resolver.js +2 -1
- package/lib/common/features/navigation/navigation-target-resolver.js.map +1 -1
- package/lib/common/features/navigation/request-navigation-targets-action-handler.js +2 -1
- package/lib/common/features/navigation/request-navigation-targets-action-handler.js.map +1 -1
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js +2 -1
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js.map +1 -1
- package/lib/common/features/popup/request-popup-model-action-handler.js +2 -1
- package/lib/common/features/popup/request-popup-model-action-handler.js.map +1 -1
- package/lib/common/features/progress/progress-service.js +26 -2
- package/lib/common/features/progress/progress-service.js.map +1 -1
- package/lib/common/features/validation/model-validator.js +2 -1
- package/lib/common/features/validation/model-validator.js.map +1 -1
- package/lib/common/features/validation/request-markers-handler.js +2 -1
- package/lib/common/features/validation/request-markers-handler.js.map +1 -1
- package/lib/common/gmodel/apply-label-edit-operation-handler.js +2 -1
- package/lib/common/gmodel/apply-label-edit-operation-handler.js.map +1 -1
- package/lib/common/gmodel/change-bounds-operation-handler.js +2 -1
- package/lib/common/gmodel/change-bounds-operation-handler.js.map +1 -1
- package/lib/common/gmodel/change-routing-points-operation-handler.js +2 -1
- package/lib/common/gmodel/change-routing-points-operation-handler.js.map +1 -1
- package/lib/common/gmodel/cut-operation-handler.js +2 -1
- package/lib/common/gmodel/cut-operation-handler.js.map +1 -1
- package/lib/common/gmodel/delete-operation-handler.js +2 -1
- package/lib/common/gmodel/delete-operation-handler.js.map +1 -1
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.js +2 -1
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.js.map +1 -1
- package/lib/common/gmodel/gmodel-create-node-operation-handler.js +2 -1
- package/lib/common/gmodel/gmodel-create-node-operation-handler.js.map +1 -1
- package/lib/common/gmodel/gmodel-diagram-module.js +2 -1
- package/lib/common/gmodel/gmodel-diagram-module.js.map +1 -1
- package/lib/common/gmodel/paste-operation-handler.js +26 -2
- package/lib/common/gmodel/paste-operation-handler.js.map +1 -1
- package/lib/common/gmodel/reconnect-edge-operation-handler.js +2 -1
- package/lib/common/gmodel/reconnect-edge-operation-handler.js.map +1 -1
- package/lib/common/launch/glsp-server-launcher.js +2 -1
- package/lib/common/launch/glsp-server-launcher.js.map +1 -1
- package/lib/common/launch/jsonrpc-server-launcher.js +2 -1
- package/lib/common/launch/jsonrpc-server-launcher.js.map +1 -1
- package/lib/common/operations/compound-operation-handler.js +2 -1
- package/lib/common/operations/compound-operation-handler.js.map +1 -1
- package/lib/common/operations/operation-action-handler.d.ts.map +1 -1
- package/lib/common/operations/operation-action-handler.js +3 -2
- package/lib/common/operations/operation-action-handler.js.map +1 -1
- package/lib/common/operations/operation-handler-registry.js +4 -2
- package/lib/common/operations/operation-handler-registry.js.map +1 -1
- package/lib/common/operations/operation-handler.js +2 -1
- package/lib/common/operations/operation-handler.js.map +1 -1
- package/lib/common/protocol/client-action.d.ts +31 -0
- package/lib/common/protocol/client-action.d.ts.map +1 -0
- package/lib/common/protocol/client-action.js +35 -0
- package/lib/common/protocol/client-action.js.map +1 -0
- package/lib/common/protocol/glsp-server.d.ts +1 -1
- package/lib/common/protocol/glsp-server.d.ts.map +1 -1
- package/lib/common/protocol/glsp-server.js +9 -10
- package/lib/common/protocol/glsp-server.js.map +1 -1
- package/lib/common/session/client-session-factory.js +5 -4
- package/lib/common/session/client-session-factory.js.map +1 -1
- package/lib/common/session/client-session-manager.js +2 -1
- package/lib/common/session/client-session-manager.js.map +1 -1
- package/lib/common/utils/console-logger.js +2 -1
- package/lib/common/utils/console-logger.js.map +1 -1
- package/lib/common/utils/logger.js +2 -1
- package/lib/common/utils/logger.js.map +1 -1
- package/lib/common/utils/registry.js +4 -2
- package/lib/common/utils/registry.js.map +1 -1
- package/lib/node/abstract-json-model-storage.d.ts.map +1 -1
- package/lib/node/abstract-json-model-storage.js +33 -3
- package/lib/node/abstract-json-model-storage.js.map +1 -1
- package/lib/node/di/app-module.js +24 -1
- package/lib/node/di/app-module.js.map +1 -1
- package/lib/node/gmodel/gmodel-storage.js +2 -1
- package/lib/node/gmodel/gmodel-storage.js.map +1 -1
- package/lib/node/launch/cli-parser.js +26 -3
- package/lib/node/launch/cli-parser.js.map +1 -1
- package/lib/node/launch/socket-cli-parser.js +24 -1
- package/lib/node/launch/socket-cli-parser.js.map +1 -1
- package/lib/node/launch/socket-server-launcher.js +27 -3
- package/lib/node/launch/socket-server-launcher.js.map +1 -1
- package/lib/node/launch/websocket-server-launcher.js +27 -3
- package/lib/node/launch/websocket-server-launcher.js.map +1 -1
- package/package.json +3 -4
- package/src/common/actions/action-dispatcher.spec.ts +2 -0
- package/src/common/actions/action-dispatcher.ts +8 -5
- package/src/common/actions/client-action-handler.ts +28 -18
- package/src/common/actions/global-action-provider.spec.ts +4 -15
- package/src/common/actions/global-action-provider.ts +21 -25
- package/src/common/di/client-session-module.ts +17 -10
- package/src/common/di/diagram-module.ts +6 -71
- package/src/common/di/server-module.ts +0 -1
- package/src/common/features/model/model-submission-handler.ts +50 -5
- package/src/common/features/model/request-model-action-handler.ts +4 -4
- package/src/common/operations/operation-action-handler.ts +2 -2
- package/src/common/protocol/client-action.ts +38 -0
- package/src/common/protocol/glsp-server.spec.ts +11 -10
- package/src/common/protocol/glsp-server.ts +11 -14
- package/src/common/session/client-session-factory.spec.ts +2 -2
- package/src/common/session/client-session-factory.ts +3 -3
- package/src/common/session/client-session-manager.spec.ts +4 -3
- package/src/node/abstract-json-model-storage.ts +8 -2
- package/src/node/launch/cli-parser.ts +1 -1
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
2
18
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
19
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
20
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
21
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
22
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
23
|
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
8
31
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
32
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
33
|
};
|
|
@@ -27,12 +50,12 @@ exports.SocketServerLauncher = exports.START_UP_COMPLETE_MSG = void 0;
|
|
|
27
50
|
********************************************************************************/
|
|
28
51
|
const protocol_1 = require("@eclipse-glsp/protocol");
|
|
29
52
|
const inversify_1 = require("inversify");
|
|
30
|
-
const net = require("net");
|
|
31
|
-
const jsonrpc = require("vscode-jsonrpc/node");
|
|
53
|
+
const net = __importStar(require("net"));
|
|
54
|
+
const jsonrpc = __importStar(require("vscode-jsonrpc/node"));
|
|
32
55
|
const jsonrpc_server_launcher_1 = require("../../common/launch/jsonrpc-server-launcher");
|
|
33
56
|
const logger_1 = require("../../common/utils/logger");
|
|
34
57
|
exports.START_UP_COMPLETE_MSG = '[GLSP-Server]:Startup completed. Accepting requests on port:';
|
|
35
|
-
let SocketServerLauncher =
|
|
58
|
+
let SocketServerLauncher = class SocketServerLauncher extends jsonrpc_server_launcher_1.JsonRpcGLSPServerLauncher {
|
|
36
59
|
constructor() {
|
|
37
60
|
super();
|
|
38
61
|
this.toDispose.push(protocol_1.Disposable.create(() => {
|
|
@@ -73,6 +96,7 @@ let SocketServerLauncher = exports.SocketServerLauncher = class SocketServerLaun
|
|
|
73
96
|
return jsonrpc.createMessageConnection(new jsonrpc.SocketMessageReader(socket), new jsonrpc.SocketMessageWriter(socket), console);
|
|
74
97
|
}
|
|
75
98
|
};
|
|
99
|
+
exports.SocketServerLauncher = SocketServerLauncher;
|
|
76
100
|
__decorate([
|
|
77
101
|
(0, inversify_1.inject)(logger_1.Logger),
|
|
78
102
|
__metadata("design:type", logger_1.Logger)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-server-launcher.js","sourceRoot":"","sources":["../../../src/node/launch/socket-server-launcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socket-server-launcher.js","sourceRoot":"","sources":["../../../src/node/launch/socket-server-launcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,qDAAoD;AACpD,yCAA+C;AAC/C,yCAA2B;AAC3B,6DAA+C;AAC/C,yFAAwF;AACxF,sDAAmD;AAEtC,QAAA,qBAAqB,GAAG,8DAA8D,CAAC;AAG7F,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,mDAAmD;IAKzF;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,CAAC,IAAI,CACf,qBAAU,CAAC,MAAM,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAES,GAAG,CAAC,IAA8B;QACxC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;gBAChF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;aACV;iBAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;gBACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,WAAW,mBAAmB,CAAC,CAAC;gBACrH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;aACV;YACD,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mEAAmE,WAAW,EAAE,CAAC,CAAC;YACnG,mFAAmF;YACnF,2FAA2F;YAC3F,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAES,gBAAgB,CAAC,MAAkB;QACzC,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IACtI,CAAC;CACJ,CAAA;AAhDY,oDAAoB;AACM;IAAlC,IAAA,kBAAM,EAAC,eAAM,CAAC;8BAA4B,eAAM;oDAAC;+BADzC,oBAAoB;IADhC,IAAA,sBAAU,GAAE;;GACA,oBAAoB,CAgDhC"}
|
|
@@ -14,26 +14,49 @@
|
|
|
14
14
|
*
|
|
15
15
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
16
|
********************************************************************************/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
17
33
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
18
34
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19
35
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
20
36
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
21
37
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
22
38
|
};
|
|
39
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
23
46
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
24
47
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
25
48
|
};
|
|
26
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
50
|
exports.wrapWebSocket = exports.WebSocketServerLauncher = void 0;
|
|
28
51
|
const protocol_1 = require("@eclipse-glsp/protocol");
|
|
29
|
-
const http = require("http");
|
|
52
|
+
const http = __importStar(require("http"));
|
|
30
53
|
const inversify_1 = require("inversify");
|
|
31
|
-
const net = require("net");
|
|
54
|
+
const net = __importStar(require("net"));
|
|
32
55
|
const ws_1 = require("ws");
|
|
33
56
|
const jsonrpc_server_launcher_1 = require("../../common/launch/jsonrpc-server-launcher");
|
|
34
57
|
const logger_1 = require("../../common/utils/logger");
|
|
35
58
|
const STATUS_UPGRADE_REQUIRED = 426;
|
|
36
|
-
let WebSocketServerLauncher =
|
|
59
|
+
let WebSocketServerLauncher = class WebSocketServerLauncher extends jsonrpc_server_launcher_1.JsonRpcGLSPServerLauncher {
|
|
37
60
|
constructor() {
|
|
38
61
|
super();
|
|
39
62
|
this.toDispose.push(protocol_1.Disposable.create(() => {
|
|
@@ -82,6 +105,7 @@ let WebSocketServerLauncher = exports.WebSocketServerLauncher = class WebSocketS
|
|
|
82
105
|
super.start(options);
|
|
83
106
|
}
|
|
84
107
|
};
|
|
108
|
+
exports.WebSocketServerLauncher = WebSocketServerLauncher;
|
|
85
109
|
__decorate([
|
|
86
110
|
(0, inversify_1.inject)(logger_1.Logger),
|
|
87
111
|
__metadata("design:type", logger_1.Logger)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-server-launcher.js","sourceRoot":"","sources":["../../../src/node/launch/websocket-server-launcher.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF
|
|
1
|
+
{"version":3,"file":"websocket-server-launcher.js","sourceRoot":"","sources":["../../../src/node/launch/websocket-server-launcher.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eclipse-glsp/server",
|
|
3
|
-
"version": "1.1.0-next.
|
|
3
|
+
"version": "1.1.0-next.b17a86c.64+b17a86c",
|
|
4
4
|
"description": "A js server framework for Eclipse GLSP",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eclipse",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"watch": "tsc -w"
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@eclipse-glsp/graph": "1.1.0-next.
|
|
62
|
+
"@eclipse-glsp/graph": "1.1.0-next.b17a86c.64+b17a86c",
|
|
63
63
|
"@eclipse-glsp/protocol": "next",
|
|
64
64
|
"@types/uuid": "8.3.1",
|
|
65
65
|
"commander": "^8.3.0",
|
|
@@ -68,7 +68,6 @@
|
|
|
68
68
|
"ws": "^8.12.1"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@types/fs-extra": "^9.0.13",
|
|
72
71
|
"@types/ws": "^8.5.4"
|
|
73
72
|
},
|
|
74
73
|
"peerDependencies": {
|
|
@@ -77,5 +76,5 @@
|
|
|
77
76
|
"publishConfig": {
|
|
78
77
|
"access": "public"
|
|
79
78
|
},
|
|
80
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "b17a86c30207dd19903644d937d6cf89cf407ed0"
|
|
81
80
|
}
|
|
@@ -24,6 +24,7 @@ import { Logger } from '../utils/logger';
|
|
|
24
24
|
import { DefaultActionDispatcher } from './action-dispatcher';
|
|
25
25
|
import { ActionHandler } from './action-handler';
|
|
26
26
|
import { ActionHandlerRegistry } from './action-handler-registry';
|
|
27
|
+
import { ClientActionForwarder } from './client-action-handler';
|
|
27
28
|
import assert = require('assert');
|
|
28
29
|
|
|
29
30
|
function waitSync(timeInMillis: number): void {
|
|
@@ -48,6 +49,7 @@ describe('test DefaultActionDispatcher', () => {
|
|
|
48
49
|
bind(ClientId).toConstantValue(clientId);
|
|
49
50
|
bind(ActionHandlerRegistry).toConstantValue(actionHandlerRegistry);
|
|
50
51
|
bind(ClientActionKinds).toConstantValue(['response', 'response1', 'response2']);
|
|
52
|
+
bind(ClientActionForwarder).toConstantValue(sinon.createStubInstance(ClientActionForwarder));
|
|
51
53
|
})
|
|
52
54
|
);
|
|
53
55
|
const actionDispatcher = container.resolve(DefaultActionDispatcher);
|
|
@@ -15,12 +15,13 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { Action, Disposable, flatPush, MaybeArray, RequestAction, ResponseAction, UpdateModelAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
|
-
import {
|
|
18
|
+
import { ClientId } from '../di/service-identifiers';
|
|
19
19
|
import { GLSPServerError } from '../utils/glsp-server-error';
|
|
20
20
|
import { Logger } from '../utils/logger';
|
|
21
21
|
import { PromiseQueue } from '../utils/promise-queue';
|
|
22
22
|
import { ActionHandler } from './action-handler';
|
|
23
23
|
import { ActionHandlerRegistry } from './action-handler-registry';
|
|
24
|
+
import { ClientActionForwarder } from './client-action-handler';
|
|
24
25
|
|
|
25
26
|
export const ActionDispatcher = Symbol('ActionDispatcher');
|
|
26
27
|
|
|
@@ -62,8 +63,8 @@ export class DefaultActionDispatcher implements ActionDispatcher, Disposable {
|
|
|
62
63
|
@inject(ActionHandlerRegistry)
|
|
63
64
|
protected actionHandlerRegistry: ActionHandlerRegistry;
|
|
64
65
|
|
|
65
|
-
@inject(
|
|
66
|
-
protected
|
|
66
|
+
@inject(ClientActionForwarder)
|
|
67
|
+
protected clientActionForwarder: ClientActionForwarder;
|
|
67
68
|
|
|
68
69
|
@inject(Logger)
|
|
69
70
|
private logger: Logger;
|
|
@@ -76,7 +77,7 @@ export class DefaultActionDispatcher implements ActionDispatcher, Disposable {
|
|
|
76
77
|
|
|
77
78
|
dispatch(action: Action): Promise<void> {
|
|
78
79
|
// Dont queue actions that are just delegated to the client
|
|
79
|
-
if (this.
|
|
80
|
+
if (this.clientActionForwarder.shouldForwardToClient(action)) {
|
|
80
81
|
return this.doDispatch(action);
|
|
81
82
|
}
|
|
82
83
|
return this.actionQueue.enqueue(() => this.doDispatch(action));
|
|
@@ -84,8 +85,10 @@ export class DefaultActionDispatcher implements ActionDispatcher, Disposable {
|
|
|
84
85
|
|
|
85
86
|
protected async doDispatch(action: Action): Promise<void> {
|
|
86
87
|
this.logger.debug('Dispatch action:', action.kind);
|
|
88
|
+
const handledOnClient = this.clientActionForwarder.handle(action);
|
|
89
|
+
|
|
87
90
|
const actionHandlers = this.actionHandlerRegistry.get(action.kind);
|
|
88
|
-
if (actionHandlers.length === 0) {
|
|
91
|
+
if (!handledOnClient && actionHandlers.length === 0) {
|
|
89
92
|
throw new GLSPServerError(`No handler registered for action kind: ${action.kind}`);
|
|
90
93
|
}
|
|
91
94
|
|
|
@@ -13,37 +13,47 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { Action, ActionMessage, GLSPClientProxy } from '@eclipse-glsp/protocol';
|
|
17
|
-
import { inject, injectable
|
|
16
|
+
import { Action, ActionMessage, GLSPClientProxy, ResponseAction } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
18
|
import { ClientActionKinds, ClientId } from '../di/service-identifiers';
|
|
19
|
+
import { ClientAction } from '../protocol/client-action';
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
22
|
+
* Component responsible for forwarding actions that are (also) handled by the
|
|
23
|
+
* client
|
|
23
24
|
*/
|
|
24
|
-
|
|
25
25
|
@injectable()
|
|
26
|
-
export class
|
|
26
|
+
export class ClientActionForwarder {
|
|
27
27
|
@inject(GLSPClientProxy)
|
|
28
|
-
|
|
29
|
-
protected glspClient?: GLSPClientProxy;
|
|
28
|
+
protected glspClient: GLSPClientProxy;
|
|
30
29
|
|
|
31
30
|
@inject(ClientId)
|
|
32
31
|
protected readonly clientId: string;
|
|
33
32
|
|
|
34
|
-
constructor(@inject(ClientActionKinds)
|
|
33
|
+
constructor(@inject(ClientActionKinds) public actionKinds: Set<string>) {}
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Processes the given action and checks wether it is a
|
|
37
|
+
* `clientAction` i.e. an action that should be forwarded to
|
|
38
|
+
* the client to be handled there. If the check is successful
|
|
39
|
+
* the action is wrapped in an {@link ActionMessage} and sent to the client.
|
|
40
|
+
*
|
|
41
|
+
* @param action The action to check and forward
|
|
42
|
+
* @return `true` if the action was forwarded to the client, `false` otherwise
|
|
43
|
+
*/
|
|
44
|
+
handle(action: Action): boolean {
|
|
45
|
+
if (this.shouldForwardToClient(action)) {
|
|
46
|
+
const message: ActionMessage = { action, clientId: this.clientId };
|
|
47
|
+
this.glspClient.process(message);
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
39
51
|
}
|
|
40
52
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
this.glspClient.process(message);
|
|
45
|
-
return;
|
|
53
|
+
shouldForwardToClient(action: Action): boolean {
|
|
54
|
+
if (ClientAction.is(action)) {
|
|
55
|
+
return false;
|
|
46
56
|
}
|
|
47
|
-
|
|
57
|
+
return this.actionKinds.has(action.kind) || ResponseAction.is(action);
|
|
48
58
|
}
|
|
49
59
|
}
|
|
@@ -13,21 +13,20 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { expect } from 'chai';
|
|
16
17
|
import { Container, ContainerModule } from 'inversify';
|
|
17
|
-
import
|
|
18
|
+
import * as sinon from 'sinon';
|
|
19
|
+
import { DiagramModules, InjectionContainer } from '../di/service-identifiers';
|
|
18
20
|
import { ClientSessionInitializer } from '../session/client-session-initializer';
|
|
19
21
|
import * as mock from '../test/mock-util';
|
|
20
22
|
import { Logger } from '../utils/logger';
|
|
21
23
|
import { ActionHandler } from './action-handler';
|
|
22
24
|
import { ActionHandlerRegistry } from './action-handler-registry';
|
|
23
25
|
import { DefaultGlobalActionProvider } from './global-action-provider';
|
|
24
|
-
import * as sinon from 'sinon';
|
|
25
|
-
import { expect } from 'chai';
|
|
26
26
|
|
|
27
27
|
describe('test DefaultGlobalActionProvider', () => {
|
|
28
28
|
const container = new Container();
|
|
29
29
|
const serverActions = ['A1', 'A2', 'A3'];
|
|
30
|
-
const clientActions = ['C1', 'C2'];
|
|
31
30
|
const diagramType = 'myDiagramType';
|
|
32
31
|
|
|
33
32
|
const handler1Actions = ['A1', 'A2'];
|
|
@@ -44,8 +43,6 @@ describe('test DefaultGlobalActionProvider', () => {
|
|
|
44
43
|
bind(ActionHandler).toConstantValue(new mock.StubActionHandler(handler1Actions));
|
|
45
44
|
bind(ActionHandler).toConstantValue(new mock.StubActionHandler(handler2Actions));
|
|
46
45
|
bind(ActionHandlerRegistry).toConstantValue(handlerRegistry);
|
|
47
|
-
bind(ClientActionKinds).toConstantValue(clientActions[0]);
|
|
48
|
-
bind(ClientActionKinds).toConstantValue(clientActions[1]);
|
|
49
46
|
});
|
|
50
47
|
|
|
51
48
|
const diagramModules = new Map<string, ContainerModule[]>();
|
|
@@ -62,18 +59,10 @@ describe('test DefaultGlobalActionProvider', () => {
|
|
|
62
59
|
const actionProvider = container.resolve(DefaultGlobalActionProvider);
|
|
63
60
|
|
|
64
61
|
it('serverActionsKinds', () => {
|
|
65
|
-
const result = actionProvider.
|
|
62
|
+
const result = actionProvider.actionKinds;
|
|
66
63
|
expect(result.size).to.be.equal(1);
|
|
67
64
|
const resultServerActions = result.get(diagramType);
|
|
68
65
|
expect(resultServerActions).to.not.be.undefined;
|
|
69
66
|
expect(serverActions.every(action => resultServerActions!.includes(action))).true;
|
|
70
67
|
});
|
|
71
|
-
|
|
72
|
-
it('clientActionKinds', () => {
|
|
73
|
-
const result = actionProvider.clientActionKinds;
|
|
74
|
-
expect(result.size).to.be.equal(1);
|
|
75
|
-
const resultClientActions = result.get(diagramType);
|
|
76
|
-
expect(resultClientActions).to.not.be.undefined;
|
|
77
|
-
expect(clientActions.every(action => resultClientActions!.includes(action))).true;
|
|
78
|
-
});
|
|
79
68
|
});
|
|
@@ -13,60 +13,56 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { distinctAdd } from '@eclipse-glsp/protocol';
|
|
16
17
|
import { Container, ContainerModule, inject, injectable } from 'inversify';
|
|
17
|
-
import {
|
|
18
|
+
import { createClientSessionModule } from '../di/client-session-module';
|
|
19
|
+
import { DiagramModules, InjectionContainer } from '../di/service-identifiers';
|
|
18
20
|
import { ClientSessionInitializer } from '../session/client-session-initializer';
|
|
19
21
|
import { ActionHandlerRegistry } from './action-handler-registry';
|
|
20
|
-
import { ClientActionHandler } from './client-action-handler';
|
|
21
22
|
|
|
22
23
|
export const GlobalActionProvider = Symbol('GlobalActionProvider');
|
|
23
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Provides a map of handled action kinds grouped by `diagramType`
|
|
27
|
+
*/
|
|
24
28
|
export interface GlobalActionProvider {
|
|
25
|
-
readonly
|
|
26
|
-
readonly clientActionKinds: Map<string, string[]>;
|
|
29
|
+
readonly actionKinds: Map<string, string[]>;
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
@injectable()
|
|
30
33
|
export class DefaultGlobalActionProvider implements GlobalActionProvider {
|
|
31
|
-
public readonly
|
|
32
|
-
public readonly clientActionKinds: Map<string, string[]>;
|
|
34
|
+
public readonly actionKinds: Map<string, string[]>;
|
|
33
35
|
|
|
34
36
|
constructor(
|
|
35
37
|
@inject(InjectionContainer) serverContainer: Container,
|
|
36
38
|
@inject(DiagramModules) diagramModules: Map<string, ContainerModule[]>
|
|
37
39
|
) {
|
|
38
|
-
this.
|
|
39
|
-
this.clientActionKinds = new Map();
|
|
40
|
+
this.actionKinds = new Map();
|
|
40
41
|
diagramModules.forEach((modules, diagramType) => {
|
|
41
42
|
const container = this.createDiagramContainer(serverContainer, modules);
|
|
42
43
|
const initializers = container.getAll<ClientSessionInitializer>(ClientSessionInitializer);
|
|
43
44
|
initializers.forEach(service => service.initialize());
|
|
44
|
-
this.
|
|
45
|
-
this.loadClientActionKinds(diagramType, container);
|
|
45
|
+
this.loadActionKinds(diagramType, container);
|
|
46
46
|
container.unbindAll();
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
createDiagramContainer(serverContainer: Container, modules: ContainerModule[]): Container {
|
|
51
51
|
const container = serverContainer.createChild();
|
|
52
|
-
|
|
52
|
+
const clientSessionModule = createClientSessionModule({
|
|
53
|
+
clientId: 'tempId',
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
55
|
+
glspClient: { process: () => {} },
|
|
56
|
+
clientActionKinds: []
|
|
57
|
+
});
|
|
58
|
+
container.load(...modules, clientSessionModule);
|
|
53
59
|
return container;
|
|
54
60
|
}
|
|
55
61
|
|
|
56
|
-
|
|
62
|
+
loadActionKinds(diagramType: string, diagramContainer: Container): void {
|
|
57
63
|
const handlerRegistry = diagramContainer.get<ActionHandlerRegistry>(ActionHandlerRegistry);
|
|
58
|
-
const diagramServerActions = this.
|
|
59
|
-
handlerRegistry
|
|
60
|
-
|
|
61
|
-
.filter(handler => !(handler instanceof ClientActionHandler))
|
|
62
|
-
.forEach(handler => diagramServerActions.push(...handler.actionKinds));
|
|
63
|
-
this.serverActionKinds.set(diagramType, [...new Set(diagramServerActions)]);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
loadClientActionKinds(diagramType: string, diagramContainer: Container): void {
|
|
67
|
-
const clientActionKinds = diagramContainer.getAll<string>(ClientActionKinds);
|
|
68
|
-
const diagramClientActions = this.clientActionKinds.get(diagramType) ?? [];
|
|
69
|
-
diagramClientActions.push(...clientActionKinds);
|
|
70
|
-
this.clientActionKinds.set(diagramType, diagramClientActions);
|
|
64
|
+
const diagramServerActions = this.actionKinds.get(diagramType) ?? [];
|
|
65
|
+
handlerRegistry.getAll().forEach(handler => distinctAdd(diagramServerActions, ...handler.actionKinds));
|
|
66
|
+
this.actionKinds.set(diagramType, diagramServerActions);
|
|
71
67
|
}
|
|
72
68
|
}
|
|
@@ -13,17 +13,24 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { GLSPClientProxy } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { GLSPClientProxy, bindOrRebind } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { ContainerModule } from 'inversify';
|
|
18
|
-
import { ClientId } from './service-identifiers';
|
|
18
|
+
import { ClientActionKinds, ClientId } from './service-identifiers';
|
|
19
19
|
|
|
20
|
-
export
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
export interface ClientSessionModuleOptions {
|
|
21
|
+
clientId: string;
|
|
22
|
+
glspClient: GLSPClientProxy;
|
|
23
|
+
clientActionKinds: string[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Creates the DI module that binds client session specific configuration
|
|
28
|
+
*/
|
|
29
|
+
export function createClientSessionModule(options: ClientSessionModuleOptions): ContainerModule {
|
|
30
|
+
return new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
31
|
+
const context = { bind, unbind, isBound, rebind };
|
|
32
|
+
bindOrRebind(context, ClientId).toConstantValue(options.clientId);
|
|
33
|
+
bind(GLSPClientProxy).toConstantValue(options.glspClient);
|
|
34
|
+
bind(ClientActionKinds).toConstantValue(new Set(options.clientActionKinds));
|
|
28
35
|
});
|
|
29
36
|
}
|
|
@@ -13,44 +13,11 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import {
|
|
17
|
-
CenterAction,
|
|
18
|
-
DeleteMarkersAction,
|
|
19
|
-
EndProgressAction,
|
|
20
|
-
ExportSvgAction,
|
|
21
|
-
FitToScreenAction,
|
|
22
|
-
NavigateToExternalTargetAction,
|
|
23
|
-
NavigateToTargetAction,
|
|
24
|
-
RequestBoundsAction,
|
|
25
|
-
SelectAction,
|
|
26
|
-
SelectAllAction,
|
|
27
|
-
ServerMessageAction,
|
|
28
|
-
ServerStatusAction,
|
|
29
|
-
SetBoundsAction,
|
|
30
|
-
SetClipboardDataAction,
|
|
31
|
-
SetContextActions,
|
|
32
|
-
SetDirtyStateAction,
|
|
33
|
-
SetEditModeAction,
|
|
34
|
-
SetEditValidationResultAction,
|
|
35
|
-
SetMarkersAction,
|
|
36
|
-
SetModelAction,
|
|
37
|
-
SetNavigationTargetsAction,
|
|
38
|
-
SetPopupModelAction,
|
|
39
|
-
SetResolvedNavigationTargetAction,
|
|
40
|
-
SetTypeHintsAction,
|
|
41
|
-
SetViewportAction,
|
|
42
|
-
SourceModelChangedAction,
|
|
43
|
-
StartProgressAction,
|
|
44
|
-
TriggerEdgeCreationAction,
|
|
45
|
-
TriggerNodeCreationAction,
|
|
46
|
-
UpdateModelAction,
|
|
47
|
-
UpdateProgressAction
|
|
48
|
-
} from '@eclipse-glsp/protocol';
|
|
49
16
|
import { interfaces } from 'inversify';
|
|
50
17
|
import { ActionDispatcher, DefaultActionDispatcher } from '../actions/action-dispatcher';
|
|
51
18
|
import { ActionHandlerConstructor, ActionHandlerFactory } from '../actions/action-handler';
|
|
52
19
|
import { ActionHandlerRegistry, ActionHandlerRegistryInitializer } from '../actions/action-handler-registry';
|
|
53
|
-
import {
|
|
20
|
+
import { ClientActionForwarder } from '../actions/client-action-handler';
|
|
54
21
|
import { CommandStack, DefaultCommandStack } from '../command/command-stack';
|
|
55
22
|
import { UndoRedoActionHandler } from '../command/undo-redo-action-handler';
|
|
56
23
|
import { DiagramConfiguration } from '../diagram/diagram-configuration';
|
|
@@ -101,7 +68,6 @@ import { BindingTarget, applyBindingTarget, applyOptionalBindingTarget } from '.
|
|
|
101
68
|
import { GLSPModule } from './glsp-module';
|
|
102
69
|
import { InstanceMultiBinding, MultiBinding } from './multi-binding';
|
|
103
70
|
import {
|
|
104
|
-
ClientActionKinds,
|
|
105
71
|
ClientId,
|
|
106
72
|
ContextActionsProviders,
|
|
107
73
|
ContextEditValidators,
|
|
@@ -167,6 +133,7 @@ export abstract class DiagramModule extends GLSPModule {
|
|
|
167
133
|
applyBindingTarget(context, DiagramType, this.bindDiagramType());
|
|
168
134
|
applyBindingTarget(context, ClientId, this.bindClientId());
|
|
169
135
|
applyBindingTarget(context, DiagramConfiguration, this.bindDiagramConfiguration()).inSingletonScope();
|
|
136
|
+
applyBindingTarget(context, ClientActionForwarder, this.bindClientActionForwarder()).inSingletonScope();
|
|
170
137
|
|
|
171
138
|
// Model-related bindings
|
|
172
139
|
applyBindingTarget(context, GModelSerializer, this.bindGModelSerializer()).inSingletonScope();
|
|
@@ -191,7 +158,6 @@ export abstract class DiagramModule extends GLSPModule {
|
|
|
191
158
|
|
|
192
159
|
// Action & operation related bindings
|
|
193
160
|
applyBindingTarget(context, ActionDispatcher, this.bindActionDispatcher()).inSingletonScope();
|
|
194
|
-
this.configureMultiBinding(new InstanceMultiBinding<string>(ClientActionKinds), binding => this.configureClientActions(binding));
|
|
195
161
|
this.configureMultiBinding(new InstanceMultiBinding<ActionHandlerConstructor>(ActionHandlerConstructor), binding =>
|
|
196
162
|
this.configureActionHandlers(binding)
|
|
197
163
|
);
|
|
@@ -233,7 +199,6 @@ export abstract class DiagramModule extends GLSPModule {
|
|
|
233
199
|
}
|
|
234
200
|
|
|
235
201
|
protected configureActionHandlers(binding: InstanceMultiBinding<ActionHandlerConstructor>): void {
|
|
236
|
-
binding.add(ClientActionHandler);
|
|
237
202
|
binding.add(RequestModelActionHandler);
|
|
238
203
|
binding.add(RequestContextActionsHandler);
|
|
239
204
|
binding.add(RequestTypeHintsActionHandler);
|
|
@@ -260,6 +225,10 @@ export abstract class DiagramModule extends GLSPModule {
|
|
|
260
225
|
return DefaultGModelSerializer;
|
|
261
226
|
}
|
|
262
227
|
|
|
228
|
+
protected bindClientActionForwarder(): BindingTarget<ClientActionForwarder> {
|
|
229
|
+
return ClientActionForwarder;
|
|
230
|
+
}
|
|
231
|
+
|
|
263
232
|
protected bindGModelIndex(): BindingTarget<GModelIndex> {
|
|
264
233
|
return GModelIndex;
|
|
265
234
|
}
|
|
@@ -330,40 +299,6 @@ export abstract class DiagramModule extends GLSPModule {
|
|
|
330
299
|
// empty as default
|
|
331
300
|
}
|
|
332
301
|
|
|
333
|
-
protected configureClientActions(binding: InstanceMultiBinding<string>): void {
|
|
334
|
-
binding.add(CenterAction.KIND);
|
|
335
|
-
binding.add(DeleteMarkersAction.KIND);
|
|
336
|
-
binding.add(EndProgressAction.KIND);
|
|
337
|
-
binding.add(ExportSvgAction.KIND);
|
|
338
|
-
binding.add(FitToScreenAction.KIND);
|
|
339
|
-
binding.add(NavigateToExternalTargetAction.KIND);
|
|
340
|
-
binding.add(NavigateToTargetAction.KIND);
|
|
341
|
-
binding.add(RequestBoundsAction.KIND);
|
|
342
|
-
binding.add(SelectAction.KIND);
|
|
343
|
-
binding.add(SelectAllAction.KIND);
|
|
344
|
-
binding.add(ServerMessageAction.KIND);
|
|
345
|
-
binding.add(ServerStatusAction.KIND);
|
|
346
|
-
binding.add(SetBoundsAction.KIND);
|
|
347
|
-
binding.add(SetClipboardDataAction.KIND);
|
|
348
|
-
binding.add(SetContextActions.KIND);
|
|
349
|
-
binding.add(SetDirtyStateAction.KIND);
|
|
350
|
-
binding.add(SetEditModeAction.KIND);
|
|
351
|
-
binding.add(SetEditValidationResultAction.KIND);
|
|
352
|
-
binding.add(SetMarkersAction.KIND);
|
|
353
|
-
binding.add(SetModelAction.KIND);
|
|
354
|
-
binding.add(SetNavigationTargetsAction.KIND);
|
|
355
|
-
binding.add(SetPopupModelAction.KIND);
|
|
356
|
-
binding.add(SetResolvedNavigationTargetAction.KIND);
|
|
357
|
-
binding.add(SetTypeHintsAction.KIND);
|
|
358
|
-
binding.add(SetViewportAction.KIND);
|
|
359
|
-
binding.add(SourceModelChangedAction.KIND);
|
|
360
|
-
binding.add(StartProgressAction.KIND);
|
|
361
|
-
binding.add(TriggerEdgeCreationAction.KIND);
|
|
362
|
-
binding.add(TriggerNodeCreationAction.KIND);
|
|
363
|
-
binding.add(UpdateModelAction.KIND);
|
|
364
|
-
binding.add(UpdateProgressAction.KIND);
|
|
365
|
-
}
|
|
366
|
-
|
|
367
302
|
protected bindContextActionsProviderRegistry(): BindingTarget<ContextActionsProviderRegistry> {
|
|
368
303
|
return ContextActionsProviderRegistry;
|
|
369
304
|
}
|
|
@@ -41,7 +41,6 @@ import { DiagramModules, InjectionContainer } from './service-identifiers';
|
|
|
41
41
|
* * {@link ClientSessionFactory}
|
|
42
42
|
* * {@link ClientSessionManager}
|
|
43
43
|
* * {@link GlobalActionProvider}
|
|
44
|
-
* * {@link GLSPClientProxy}
|
|
45
44
|
*
|
|
46
45
|
*/
|
|
47
46
|
export class ServerModule extends GLSPModule {
|