Skip to content

2.0.0 Release

Compare
Choose a tag to compare
@tortmayr tortmayr released this 09 Nov 13:42
· 97 commits to master since this release
v2.0.0

Changes

  • [layout] Improve Layouter to support more dynamic layouts and complex parent/children node structures #187 - Contributed on behalf of STMicroelectronics
  • [diagram] Fix SVG export for nested root elements e.g. GLSPProjectionView #196
  • [diagram] Scope the styles to not break existing application layout #209
  • [routing] Ensure that routes are properly re-calculated when moving a routing point #198
  • [diagram] Fix a bug in the EditLabelUIExtension where the diagram becomes dirty without an actual change. #766
  • [diagram] Extend ComputedBoundsAction definition with routing information. This enables proper forwarding of client-side computed routes to the server #201
  • [DI] The createClientContainer function is now deprecated. Please use initializeDiagramContainer instead. This new function can also be used with ModuleConfigurations which allow a more fine granular configuration by adding new modules and/or removing default modules. #218 #231 #236
  • [diagram] Fix incorrect calculation of decorator popup positions for edges. #221
  • [protocol] Introduce a reusable Disposable type #222
  • [protocol] Introduce reusable utility functions for DI configuration #236#237
  • [diagram] Augment diagram SVG with additional model metadata to enable easier integration tests and accessibility #239
  • [validation] Add and track reason for validation markers (e.g. batch and live validation) #243
  • [protocol] Introduce optional deselectAll flag for SelectActions #257
  • [protocol] Provide the common interfaces and type definitions for TS-based GLSP servers #245 - Contributed on behalf of STMicroelectronics
  • [diagram] Introduce a new set of accessability features for disability-aware conceptual modeling and keyboard-only diagram interactions. (experimental) #240 #241 #242 #254 #276 #279
  • [API] Re-work tool and feedback structure #264 #274
    • Introduce registerListener method on GLSP mouse and key tool to return a disposable for de-registration
    • Adapt registerFeedback method from feedback dispatcher to return a disposable for de-registration
    • Introduce dedicated BaseGLSPCreationTool for tools based on trigger actions
    • Introduce toDisposeOnDisable collection in BaseGLSPTool to register disable handling during enablement
  • [DI] Introduce and consistently use FeatureModules instead of plain inversify ContainerModules #267
  • [diagram] Introduce statusModule that binds UI extension to handle & render GLSPStatusMessages. #272
  • [diagram] Provide generic dirty state handling in EditorContextService #272
  • [diagram] Fix bug that broke edge edit (routing) in certain cases #273
  • [API] Introduce DiagramLoader component + life cycle management #274 #282
    • Integration projects no longer need to manually implement the initial diagram loading. Instead a set of configurationsIDiagramOptions and then the diagram loader
      is invoked and initializes the diagram.
    • Add a onServerInitialized event to the GLSPClientAPI.
    • Introduce IDiagramStartup service. Adopters can multi bind this service to hook into the diagram loading lifecycle and provide additional logic. i.e. dispatching of initial actions.
  • [diagram] Fix a bug that broke edge intersection detection when using the GLSPProjectionView #275
  • [diagram] Fix a bug regarding focus handling when integrated in an application frame like Theia #278

Breaking Changes

  • [DI] Injecting an IButtonHandler constructor is now deprecated. Please use configureButtonHandler() instead. #195 - Contributed on behalf of STMicroelectronics
  • [node] Update minimum requirements for Node to >=16.11.0 #210
  • [protocol] Renamed UndoOperation and RedoOperation to UndoAction and RedoAction to match operation specification #216
  • [protocol] Remove dependency to vscode-ws-jsonrpc. The protocol package now directly offers functions to create a websocket rpc connections #215
  • [protocol] The elementIds property of LayoutOperation is now optional. If undefined the entire model will be layouted #232
  • [API] Refactored base API #259
    • Removed the TYPES.SelectionService service identifier. Please directly use the SelectionService class as service identifier instead
    • The SelectionService binding is now part of the defaultGLSPModule. This means the SelectionService remains available even if the selectModule is not configured
    • RootModelChangeListeners are no longer tied to the FeedbackawareUpdateModelCommand instead they are managed by the GLSPCommandStack
    • IMouseTool and TYPES.IMouseTool are no longer available. Directly inject and use MouseTool instead
    • Refactored rank utility functions
      • isRanked() -> Ranked.is()
      • getRank() -> Ranked.getRank()
      • DEFAULT_RANK -> Ranked.DEFAULT_RANK
  • [API] Introduce Event API to replace the old listener/notifier pattern #261
    • Reworked SelectionService, GlspCommandStack & EditorContextService to make use of this new API
    • Removed explicit (de)registration methods for listeners. Use the corresponding event property (e.g. SelectionService.onSelectionChanged) instead
    • Aligned naming of injectable interfaces & service identifiers to consistently use the I prefix
  • [API] Re-work tool and feedback structure #264
    • Remove generic toolsModule and toolFeedbackModule in favor of individual tool modules
    • Rename dispatchFeedback in BaseGLSPTool to registerFeedback to align with feedback dispatcher
    • Switch arguments in deregisterFeedback in BaseGLSPTool for easier de-registration and clean up actions
  • [protocol] Add messages for server-side progress reporting and remove timeout in ServerMessageAction #265
  • [DI] Renamed and aligned prefixes of DI modules. #266
    • Removed glsp prefix from all modules (e.g. glspSelectModule-> selectModule)
    • In addition, the following modules have been renamed
      • defaultGLSPModule-> baseModule
      • modelHintsModule -> typeHintsModule
      • enableDefaultToolsOnFocusLossModule -> toolFocusLossModule
      • glspEditLabelModule -> labelEditModule
  • [websocket] Introduce a reusable GLSPWebSocketProvider class that supports reconnect on connection loss #269
  • [API] Introduce GLSPModelSource as default implementation for sprotty's ModelSourceAPI #272 #287
    • GLSPDiagramServer has been deprecated and is no longer available
    • SelectionServiceAwareContextMenuMouseListener renamed to GLSPContextMenuMouseListener
    • SourceURIAware interface has been removed. No longe required since we only have one GLSPModelSource binding now.
  • [protocol] Revise TypeHints API and introduce possibility to dynamically query the server for complex connection conditions #285
    • EdgeTypeHint
      • sourceElementTypeIds and targetElementTypeIds are now optional. If not provided all connection targets are allowed
      • Introduce dynamic flag. If a hint has this flag enabled connection tools know that the have to query there server in addition
        to checking the default Connectable.canConnect method.
    • Introduce RequestCheckEdgeAction & CheckEdgeResultAction used to query the server wether the provide edge information is valid.
      Used in combination with dynamic type hints.
  • [protocol] Refactor base protocol & actions #287
    • Rename ServerStatusAction -> StatusAction
    • Rename ServerMessageAction -> MessageAction
    • Extend InitializeClientSessionParams with a clientActions property. This is used by the server to now which action kinds are (also) handled by the client.
  • [API] Update to sprotty 1.0.0 and consistently use GModel naming scheme on client side [#291(https://github.com//pull/291)]
  • Move augmented GLSP reexport of sprotty into dedicated package @eclipse-glsp/sprotty
  • With sprotty 1.0.0 the SModel classes haven been renamed by adding an Impl suffix (SModelElement->SModelElementImpl). We took this opportunity and aliased all sprotty model elements to consistently use GModel
    • SModelElement -> GModelElement
    • SNode-> GNode
    • SShapeElement->GShapeElement etc.

New Contributors

Full Changelog: v1.0.0...v2.0.0