- [api] Extend model submission with optional layout information #121
- [api] Refactor MenuItem API #116
isEnabled,isToggledandisVisibleare now serializable boolean flags instead of functions
- [api] Add layout operation as optional parameter to
LayoutEngine.layout#111
- [layout] Updated GLSPElkLayoutEngine for elkjs > 0.10.1 #109
GLSPElkLayoutEngine: Replace usages of the deprecated and no longer supportedELKPrimitiveEdge. This might affect adopters that use a customization of this class
- [node] Update minimum requirements for Node to >=20 #113
- [layout] Fix a bug regarding the application of routing point information in
ComputedBoundsActionHandler#103 - [gmodel] Cancel pending progress reporters in
RequestModelActionHandlerif an error occurred #104 - [operation] Improve
OperationActionHandlerto ensure that a new model is only submitted after actual changes #105 - [server] Ensure correct log level logging for
ConsoleLogger#106 - [server] Avoid configuration of winston logger if logging is disabled via options #107
- [api] Update align default type mappings with the client-side types #97
- [workflow] Fix a but in the
WorkflowEdgeCreationCheckerthat prevented creation of weighted edges #98 - [model] Refactor
ModelSubmissionHandlerto use async live validation by default #99
- [layout] Ensure that model is updated correctly when using
automaticserver layout #74 - [gmodel] Add proper undefined/null handling in GModel builder functions #76
- [launch] Improve Winston-Logger implementation to properly handle non-serializable objects #82
- [layout] Ensure that including
ElkLayoutEngineengine does not error in browser-only server implementations #83 - [gmodel] Introduce new
Resizableinterface that is implemented by allGShapeElementsand allows per-element definition of resize handle locations #84 - [action] Ensure that actions queued with
dispatchAfterNextUpdateare also dispatched after the initialSetModelAction#88
- [protocol] Removed local definition of
GIssueMarkerand reuse it from@eclipse-glsp/protocolinstead #88- =>
GIssueMarkeris now an interface instead of a class
- =>
- [operation] Add support for defining ghost elements/templates in
CreateNodeOperationHandler's #65 - [launch] Use "127.0.0.1" as default host to avoid potential IP v4/v6 connection issues #67
- [gmodel] Fix a bug in
GModelDeleteOperationHandlerthat prevented deletion of multiple selected elements #68
- [elk] Fix a bug in the
GLSElkLayoutEnginethat skipped layouting of certain edges #23 - Contributed on behalf of STMicroelectronics - [launch] The message sent after successful startup now also contains the effective socket port #30 - Contributed on behalf of STMicroelectronics
- [launch] Fix a bug that caused the server to not properly dispose all resources when
shutdownwas called #33 - Contributed on behalf of STMicroelectronics - [diagram] Fix a bug to ensure that the copy&paste feature is working properly #35
- [api] Ensure that all
Promises andMaybePromises have proper rejection handling #36- Contributed on behalf of STMicroelectronics - [launch] Add a launcher component for starting WebSocket based GLSP servers #41
- [validation] Add explicit support and API for live and batch validation #43
- [launch] Launcher components now auto allocate a free port if the port argument is 0 #42
- [server] Add support for server progress reporting #52
- [diagram] Add support for handling reconnection requests to
RequestModelActionHandler#54 - [server] Update
AbstractJsonModelStorageto ensure that Windows file paths are properly converted #55 - [deps] Remove unneeded dependency to
fs-extra#56 - [diagram] Provide generic reusable base operation handlers for JSON-based source models #59
- [diagram] Add support for dynamic edge type hints
- Provide
EdgeCreationCheckerAPI. Adopters can implement this to handle dynamic edge creation validation requests. #60
- Provide
- [model] Introduce new
GForeignObjectElement+ builder class #61
- [graph] Align GGraph model with newest changes from glsp-server #22 - Contributed on behalf of STMicroelectronics
- Renamed interfaces:
EdgePlacement->GEdgePlacement(affected classes:GEdgeLayoutable,GLabel)GLayoutContainer->GLayouting(affected classes:GCompartment,GGraph,GNode)GShapePreRenderedElement->GShapedPreRenderedElement
- Renamed interfaces:
- [deps] Update minimum requirements for Node to >=16.11.0 #32
- [api] Restructure
@eclipse-glsp/server-nodepackage to provide entry points for both node and browser-only environments #37- The package has been renamed to
@eclipse-glsp/server. This change affects all import namespaces. - New namespaces for environment specific code:
@eclipse-glsp/server/node@eclipse-glsp/server/browser
- The package has been renamed to
- [operation] Implement Command API and rework OperationHandler to provide an optional command instead of direct execution to allow more execution control (including undo & redo support) #38 #59
- This includes major breaking changes across the whole API:
OperationHandlerhas been refactored from an interface to a common abstract base class. Theexecutemethod now has to return aMaybePromise<Command|undefined>- Refactor
CreateOperationHandlerto an interface instead of a class - Rename the services and handlers of the direct GModel library => consistent use of
GModelprefix - The
ModelStateinterface no longer has anisDirtyflag. Dirty state is now handled by theCommandStack
- This includes major breaking changes across the whole API:
- [server] Default port has changed from 5007 (and 8081 for websocket) to 0, which implies autoassignment by the OS #42
- [server] Refactored
GLSPServerandGLSPServerLauncherAPI #44 - Contributed on behalf of STMicroelectronics- Server type definitions are now consumed from
@eclipse-glsp/protocol GLSPServerimplementation is no longer relies on json-rpc implementation details.- JSON-RPC setup is now done with
JsonRpcGLSPServerLauncher
- Server type definitions are now consumed from
- [api] Provide
CommandStackAPI to support undo/redo of model changes #38 #39 - Contributed on behalf of STMicroelectronicsModelStateno longer has aisDirtyproperty- Breaking refactor of
OperationHandlerAPI
- [deps] Update to inversify 6.x and Typescript 5.x. #48
- GLSP uses a synchronous inversify context this means with inversify 6.x decorator methods (e.g.
@postConstruct) with asynchronous results are no longer supported
- GLSP uses a synchronous inversify context this means with inversify 6.x decorator methods (e.g.
- [api] Revise model loading and client action handling #57 #58
- Refactor
ModelSubmissionHandlerto enable handling ofRequestModelActionas proper request action- Introduce a
submitInitialModelmethod that is called by theRequestModelActionHandler
- Introduce a
- Remove
configureClientActionsfromDiagramModuleas client actions are now implicitly configured viaInitializeClientSessionrequest - Remove
ClientActionHandlerand replace withClientActionForwarder - Rename
ServerStatusAction->StatusActionandServerMessageAction->MessageAction
- Refactor
Inception of the Node GLSP Server. This project provides the Node based server component for the Eclipse Graphical Language Platform (GLSP). The implementation of this server is aligned with the default Java based GLSP Server. The initial implementation was contributed on behalf of STMicroelectronics. The following list composes changes that have been made since the initial implementation.
- [core] Implement
dispatchOnNextUpdatemethod that enables queuing of actions that should be dispatched after the next graphical model update. #1 - Contributed on behalf of STMicroelectronics - [diagram] Implement LayoutEngine API for server-side autolayouting & provide an integration package for layout engines based on ELK. #2 #5 - Contributed on behalf of STMicroelectronics
- [model] Source model refactorings #11
ModelSourceLoader→SourceModelStorage- Added method to
SourceModelStorage
- [model] Refactor
ModelStateAPI #20- Introduce
updateRootmethod DefaultModelState=> make root setter protected
- Introduce
- [gmodel] Refactor & Move all base & helper classes for the direct GModel usecase into own
gmodel-libsubdirectory #16