Changes
- [diagram] Fix a bug that prevented proper rendering of templates/ghost elements during node creation in Firefox #324 - Contributed on behalf of Axon Ivy AG
- [routing] Improve anchor point calculation for edge routing #325
- [validation] Fix a bug that could cause duplicate validation markers after a model update #329
- [di] Introduce a reusable
LazyInjector
that can be used for deferred retrial of services from the container. #330- Introduce
preLoadDiagram
hook forIDiagramStartup
s. This hook is invoked right before theDiagramLoader
starts the model loading process
- Introduce
- [launch] Introduce
GLSPWebWorkerProvider
to simply setting up a worker connection to a in-browser GLSP-server #322 - [diagram] Improve base abstract
UIExtension
to allow more fine-grained definition of container and parent #333 - Contributed on behalf of Axon Ivy AG - [protocol] Improve Geometry API. Add utility functions to
Bound
,Dimension
andPoint
. IntroduceVector
andMovement
types #341 - Contributed on behalf of Axon Ivy AG - [features] Introduce optional
gridModule
for managing and rendering grids anddebugModule
that allows do display additional graphical debug information during development #343 #359 - [diagram] Improve error handling of startup hooks #346
- [feature] Improve style handling in svg exporter #354
- [di] Improve
ContainerConfiguration
API and add additional checks to ensure that all ids ofFeatureModules
are unique #355 - [diagram] Update to sprotty 1.2.0. Non-breaking as all potential API breaks have been mitigated via the glsp-sprotty rexport layer #357
- [diagram] Fix a bug with the
AutocompleteWidget
that prevented proper application of valid suggestions #362 - [api] Improved behavior of default
ToolManager
to avoid unnecessary deactivation and reactivation of default tools #367 - [diagram] Add
onFocusChanged
event toFocusTracker
andEditorContextService
#380
Potentially breaking changes
- [API] Centralize most marquee selection behavior in the
MarqueeUtil
class which is now a singleton, injectable and needs theDOMHelper
. This will cause a break if you manually created the class without injecting it. To construct it manually, you need to provide theDomHelper
as a second argument #373. - [protocol] Avoid indirect dependency to
chai
introduce by accidentally exporting testing modules #321@eclipse-glsp/protocol
no longer exportstest-util.ts
via main index. If needed the module can still be imported via the full path@eclipse-glsp/protocol/lib/utils/test-util.ts
- [API] Apply feedback commands already on
SetModelCommand
and unifyrank
andpriority
property #323.- Method
FeedbackAwareUpdateModelCommand.getFeedbackCommands
moved toIFeedbackEmitter
for re-use, resulting in two new methods:getFeedbackCommands
andapplyFeedbackCommands
. - Method
FeedbackAwareUpdateModelCommand.getPriority
is replaced by a genericrank
property and theRanked
namespace. - The
priority
property (higher priority equals earlier execution) inFeedbackCommand
is superseeded by arank
property (lower rank equals earlier execution).
- Method
- [DI] Introduce deferred injection for multi-injected services (listeners, action handlers etc.). Highly reduces the likelihood of circular dependency issues during container creation #330.
No API breaks in the core API, but it introduces some minor breaks in protected methods/fields of default implementations:GLSPCommandStack
- Handling of
IGModelRootListeners
has moved to theEditorContextService
. onModelRootChanged
is no deprecated. UseEditorContextService.onModelRootChanged
instead
- Handling of
EditorContextService
: ThepostRequestModel
method has been removed. It was previously unused and effectively a no-op.SelectionService
: InjectedcommandStack
property has been removed.
- [diagram] Introduce a reusable
FeedbackEmitter
base implementation that is stable across model updates and allows composing feedback before dispatching it #342
Refactored tool implementations and related services to make use of the newFeedbackEmitter
API. This can cause potential breaks for adopters that have customized the default tool implementations.
Affected tools and services:MouseTrackingElementPositionListener
,HelperLineManager
,FeedbackMoveMouseListener
,NodeCreationToolMouseListener
,EdgeEditListener
, - [diagram] Refactor and improve
ChangeBounds
API by introducing a centralizedChangeBoundsManage
andChangeBoundsTracker
#344 #348 #352 - Contributed on behalf of Axon Ivy AG
This can cause potential breaks for adopters that have customized the default tool implementations
Affected tools and services:MouseTrackingElementPositionListener
,FeedbackMoveMouseListener
,ChangeBoundsTool
,ChangeBoundsListener
,FeedbackEdgeRouteMovingMouseListener
,NodeCreationTool
,
Full Changelog: v2.1.0...v2.2.1