-
Add support for a table widget in form representations
-
Automatically select newly created nodes on diagrams
-
Add undo/redo support
-
Add support for drag and drop in the explorer
-
Add custom bending points to edges
-
Add support for draggable labels
-
Improve form property section layout
-
[ADR-158] Support delegating representation event handling
-
[ADR-159] Create event processor only using the representation id
-
[ADR-160] Persist label position in diagram
-
[ADR-161] Add support for undo redo on semantic changes
-
[ADR-162] Add support for styled labels in view model for trees
-
[ADR-163] Adapt the Diagram Palette API to the new palette design
-
[ADR-164] Add the ability to select newly created diagram elements
-
[ADR-165] Add support for actions in tree item menu
-
[ADR-166] Support Server-Side Pagination for Table Representation
-
[ADR-167] Support REST APIs
-
[ADR-168] Display the icon of the representation in the workbench tab
-
[ADR-169] Compute the icon of a representation
-
[ADR-170] Add support for representations in the Details View
-
[ADR-171] Add support for Sorting and Filtering in Tables
-
#3846 [core] Migrate frontend to React 18, you now need React 18 to import sirius web modules.
-
#3875 [sirius-web] The
ExplorerView
component has been moved fromsirius-components-trees
tosirius-web-application
module -
#3155 [core] All the paths in the code involving the modification of some data (project, semantic data, representation data, etc.) will now require a new parameter
ICause cause
which is the cause of this change. BothIInput
andIDomainEvent
implementICause
and will thus be used to indicate which action has triggered the change. -
#3763 [core] updates some services behavior:
-
The
org.eclipse.sirius.components.emf.services.DefaultIdentityService#getId(Object object)
Can now provides the Id if the Object is of typeorg.eclipse.emf.ecore.resource.Resource
. Before this change, it would have returned null. -
The
org.eclipse.sirius.components.emf.services.DefaultLabelService
Can now provides the label if the Object is of typeorg.eclipse.emf.ecore.resource.Resource
. Before this change, it would have returned an empty string. -
The
org.eclipse.sirius.components.emf.services.DefaultContentService#getContents(Object)
Can now provides the content if the Object is of typeorg.eclipse.emf.ecore.resource.Resource
. Before this change, it would have returned an empty list.
-
-
#3972 [diagram] The
InsideLabelStyle#displayHeaderSeparator
has been renamed toheaderSeparatorDisplayMode
and is no longer a boolean but an enum with three possible values: NEVER, ALWAYS, and IF-CHILDREN. Previously, the value false was equivalent to NEVER, and true to IF-CHILDREN. The new option ALWAYS allows the separator to be displayed in every case. -
#3678 [core] Remove
IRepresentationMetadataSearchService#findByRepresentation
, useIRepresentationMetadataSearchService#findByRepresentationId
instead. -
#4050 [sirius-web]
IUploadFileLoader
must now return anIResult
. This allows an error to be displayed when there is a problem during uploading -
#4037 [tree] The tree item id passed to
ITreeQueryService.findTreeItem
is no longer a UUID but is now a String. -
#4077 [charts] Remove
interface RepresentationMetadata
fromBarChart.types.ts
. -
#3840 [diagram] Migrate to ReactFlow 12, if you have components that uses the library then you’ll need to update them.
-
#2399 [core] When executing successive model operations inside a tool, the execution context (variables, in particular
self
) of all sibling operations now stays the same. This is much more natural and closer to the behavior of usual languages, but change the behavior. -
#3679 [core] Split representation metadata from content + Remove
org.eclipse.sirius.components.core.api.IRepresentationMetadataSearchService
and its implementation. + Useorg.eclipse.sirius.web.domain.boundedcontexts.representationdata.services.api.IRepresentationMetadataSearchService#findAllMetadataByTargetObjectId
instead oforg.eclipse.sirius.components.core.api.IRepresentationMetadataSearchService#findAllByTargetObjectId
. -
#3679 [sirius-web] The service
hasChildren
requires the editing context like the aql servicegetChildren
. -
#3983 [tree] The
TreeDescription
must now implement adropTreeItemHandler
. -
#3680 [core] The label has been removed from the content of all representations. + The label of a representation is available through its metadata that can be retrieve thanks to the service
IRepresentationMetadataSearchService
from sirius-web-domain or,IRepresentationMetadataProvider
from sirius-components-collaborative. -
#4114 [sirius-web] The
projectActionButtonMenuItemExtensionPoint
extension point has been removed. Use the newprojectContextMenuEntryExtensionPoint
instead which allows the contribution of actualMenuItem
components instead of just props. SeeProjectDownloadMenuItemExtension
for an example. Warning: while more powerful, the new extension point should be used with care: make sure all contributions return an actual MUIMenuItem
component. -
#3681 [sirius-web] Replace all representation specific rename event handlers by
RenameRepresentationEventHandler
. + It means that an application that only use sirius-components should provide its own means to rename a representation. -
#3980 [core] Removed the label attribute from
WorkbenchSelectionEntry
(backend, GraphQL Schema and frontend).
-
[releng] Switch to Spring Boot 3.3.3
-
#3846 [core] Migrate the frontend to
react 18.3.1
,react-dom 18.3.1
,react-router-dom 6.26.0
,@xstate/react: 3.0.0
and@ObeoNetwork/gantt-task-react 0.6.0
-
#3840 [diagram] Migrate to ReactFlow 12
-
[releng] Switch to the final release version of AQL 8.0.2
-
#3836 [gantt] Switch to @ObeoNetwork/gantt-task-react 0.6.1 to benefit for enhancements
-
#3823 [table] Add a dependency to
material-react-table "2.13.3"
andexport-to-csv "1.3.0"
-
#3868 [diagram] Add dependency to
react-draggable 4.4.6
-
#3868 [diagram] Add dependency to
svg-path-parser 1.1.0
-
#3954 [diagram] Ensure separator bar is displayed immediately after dynamically adding list child
-
#4001 [diagram] Fix an issue with label text overlapped by icon
-
#3965 [diagram] Fix an issue where the label height was not evaluated to define the node size on the first layout
-
#4005 [diagram] Fix a problem synchronizing explorer with current selection
-
#4008 [diagram] Prevent
detailsEvent
to be triggered twice when selecting a multi-represented element in the diagram -
#4032 [diagram] Fix an issue where separator list compartment is missing
-
#4028 [tree] Fixed an issue where special characters (e.g. #) could not be used in the treeId due to URL parsing limitations.
-
#3958 [tree] Partial fix of a StackOverflow when expanding an item contained in rendering loop cycle
-
#4050 [sirius-web] Display error message on failed upload document action
-
#4051 Error when deleting Resource that use EReference.isContainer feature
-
#3958 [tree] Prevent expand all action to loop indefinitely.
-
#4073 [tree] Add missing variables
ancestorIds
andindex
to variable manager used in the default expand all handler. -
#4077 [charts] Remove metadata from Charts widgets. Charts' metadata is only relevant when Charts are used as Representations.
-
#3904 [form] Fix an issue where textfield did not update to reflect backend-set value when it matched the initial value.
-
#3836 [gantt] Prevent task.description from resetting after gantt task change.
-
#2399 [core] When executing successive sibling model operations inside a tool, their execution context (in particular the value of
self
) now stays the same -
#4117 [core] Fix URLParser for single-character parameter entries (e.g. identifiers).
-
#3681 [core] Fix the representation rename
-
#4149 [diagram] Fix the synchronization on group tool layout
-
#4148 [diagram] Fix an issue when moving child node in free form container.
-
#4154 [diagram] Restore feedback while resizing a list container
-
#4141 [sirius-web] Fix a bug where opening a representation from its URL or from the onboarding area no longer revealed it in the Explorer view.
-
#3763 [diagram] Make it possible to display semantic candidates in the selection dialog using a tree
-
#3979 [core] Add Project related REST APIs. The new endpoints are:
-
getProjects (
GET /api/rest/projects
): Get all projects. -
getProjectById (
GET /api/rest/projects/{projectId}
): Get project with the given id (projectId). -
createProject (
POST /projects
): Create a new project with the given name and description (optional). -
deleteProject (
POST /api/rest/projects/{projectId}
): Delete the project with the given id (projectId). -
updateProject (
PUT /projects/{projectId}
): Update the project with the given id (projectId). Add Object related REST APIs. The new endpoints are: -
getElements (
GET /api/rest/projects/{projectId}/commits/{commitId}/elements
): Get all the elements in a given project at the given commit. There are no commits in Sirius Web so you can use the same Id as the projectId for the commitId. -
getElementById (
GET /api/rest/projects/{projectId}/commits/{commitId}/elements/{elementId}
): Get element with the given id (elementId) in the given project at the given commit. There are no commits in Sirius Web so you can use the same Id as the projectId for the commitId. -
getRelationshipsByRelatedElement (
GET /api/rest/projects/{projectId}/commits/{commitId}/elements/{elementId}/relationships
): Get relationships that are incoming, outgoing, or both relative to the given related element. There are no commits in Sirius Web so you can use the same Id as the projectId for the commitId. -
getRootElements (
GET /api/rest/projects/{projectId}/commits/{commitId}/roots
): Get all the root elements in the given project at the given commit. There are no commits in Sirius Web so you can use the same Id as the projectId for the commitId. A newIObjectRestServiceDelegate
interface is available, allowing to customize the default implementation of services related to Object related REST APIs. Specifiers can implement this new interface with a springService
. Specifiers are also encouraged to implement their own JSON serializers for their domains, as the default one may not return expected results.
-
-
#3873 [diagram] Make the Selection Dialog available for the EdgeTool
-
#3950 [diagram] Have the multiple selection on the Selection Dialog
-
#3982 [core] Add support for the command palette.
-
#3983 [tree] Add drag and drop support for explorer
-
#3823 [form][table] Add table widget in form.
-
#4113 [sirius-web] Two new extension points have been added to customize the context menu displayed for a project in the edit project view:
-
editProjectNavbarMenuEntryExtensionPoint
can be used to add new entries to the menu. SeeDownloadProjectMenuEntryContribution
for an example. Warning: make sure all contributions return an actual MUIMenuItem
component. -
editProjectNavbarMenuContainerExtensionPoint
: can be used to wrap the menu inside a custom container, for example to add more context for the items or to completely replace the context menu.
-
-
#4114 [sirius-web] Two new extension points have been added to customize the context menu displayed for a project in the project browser:
-
projectContextMenuEntryExtensionPoint
can be used to add new entries to the menu. They will be added at the end after the default hard-coded actions. SeeProjectDownloadMenuItemExtension
for an example. Warning: make sure all contributions return an actual MUIMenuItem
component. -
projectContextMenuContainerExtensionPoint
: can be used to wrap the menu inside a custom container, for example to add more context for the items or to completely replace the context menu.
-
-
#3980 [diagram] Add Elements to Select Expression on NodeTool and EdgeTool to control which semantic elements should be selected after the tool’s successful execution
-
#4048 [core] Add the ability to undo/redo only semantic changes after a mutation with crtl+z or ctrl+y on the edit project view (this does not include deleting a resource)
-
#3868 [diagram] Make the path of edges editable
-
#2604 [diagram] Expand a tool section when the mouse is over it
-
#3887 [diagram] Memoize diagram representation (improve performance when selecting an element on large diagram)
-
#3987 [sirius-web] Transform
widgetFields
fragment to retrieve custom widget fields -
#3875 [sirius-web] Move explorer related code from
sirius-components-trees
tosirius-web-application
-
#3806 [sirius-web] Add an API to condition the application of migration participants
-
#3155 [core] Propagate the cause of the events in Sirius Web. The interfaces
IInput
andIDomainEvent
are now both extendingICause
which let us capture the causes of a domain event recursively. An event may have been caused by another event or caused by an input received from the frontend for example. -
#4014 [forms] Improve the performance of the reference widget and let end users view all they can need to create new references
-
#3972 [diagram] Added option to force display of separator bar header. It is now possible to choose between three options: never, always and if_children (to display the separator only if children exist).
-
#4021 [sirius-web] Disable the Rename and Delete project menu actions when project is read-only
-
#3677 [diagram] Remove backend layouting code from the time the backend was computing the layout.
-
#3678 [core] Rely on representation id to retrieve representation metadata
-
#3754 [sirius-web] Activate cypress tests again. + Make possible to register view models in the loading editing context when the "test" profile is active. + To activate the test profile add the value test to the
SPRING_PROFILES_ACTIVE
environment variable. -
#3882 [sirius-web] Add a new tree event to handle tree description which are not explorer-related
-
#3961 [sirius-web] Extend the explorer to support multiple presentations
-
#3856 [tree] Add tree representation in the view DSL
-
#4000 [tree] Add support for styled labels in view model for trees
-
#4037 [tree] Add mechanism to define actions in tree item context menu
-
#4064 [sirius-web] Ensure that project template images fill the whole content part of the card. Project template images will now have a predictable size of 150px by 110px. This will allow specifier to create images that fir perfectly in the project template card.
-
#3833 [gantt] Enhance Gantt to support Date and DateTime
-
#4029 [sirius-web] Add Project Custom Images element to the exported APIs
-
#4027 [forms] List widgets in read-only mode now still allow the selection of their items, but still prevent the invocation of the corresponding single or double-click handlers (which can perform mutations).
-
#3816 [form] Make EMF default form support Integer null value
-
#3826 [form] Make EMF default form support attributes with a date
-
#2163 [form] Make EMF default form support non changeable features
-
#4086 [form] Wrap widget returned by property section in a div with a specific classname
-
#4088 [trees] Change tree item context menu entries internal management
-
#4130 [sirius-web] The
sirius-web-application
package now exportsuseExplorerSubscription
anduseRelatedElementsViewSubscription
.
-
Add tree representation in the view DSL
-
Add support for object duplication from Explorer
-
Add support for diagram tool shortcuts
-
Extend the explorer to support multiple presentations
-
[ADR-152] Add support for any kind of object as semantic element in the tree representation
-
[ADR-153] Restore the Selection Dialog support in diagrams
-
[ADR-154] Add support for finding parent in tree representation
-
[ADR-155] Add max-width expression for diagram labels
-
[ADR-156] Make it possible to display the semantic elements as a tree in the Selection Dialog
-
[ADR-157] Have the multiple selection on the Selection Dialog
-
#3702 [sirius-web] The extension point
navigationBarMenuExtensionPoint
has been removed. For those who want to entirely replace the appearance of the navigation bar menu icon, it has been replaced bynavigationBarMenuIconExtensionPoint
. On the other hand, those who want to only change the URL of the help can now use the new extension pointnavigationBarMenuHelpURLExtensionPoint
. Finally, those who want to add new menu entries to the menu can do so using the extension pointnavigationBarMenuEntryExtensionPoint
. -
#3675 [core] Since the label is removed from the selection, the label of a representation cannot be retrieved from the selection
-
#3742 [sirius-web] Remove the code of the legacy Sirius Web architecture. As a result, the following maven modules have been deleted:
sirius-web-sample-application
,sirius-web-spring
,sirius-web-graphql
,sirius-web-services-api
,sirius-web-services
,sirius-web-persistence
. -
#3676 [representation] Remove the label from representation subscriptions and from graphql types. + Also remove the label from representation metadata (and sometimes the whole metadata) when the label or metadata were not needed.
-
#1470 [view] Since the computation of converted description ID has changed, the identifier of existing representations is not valid anymore, and these representations cannot be opened.
-
#2759 [diagram] Update some API relative to the diagram:
-
The
NodeTool#selectionDescription
attribute of typeSelectionDescription
has been renamed intodialogDescription
and is now of typeDialogDescription
. -
The
SelectionDescription
type has been renamed intoSelectionDialogDescription
and inherit fromDialogDescription
. -
The
InvokeSingleClickOnDiagramElementToolInput#selectedObjectId
has been replaced by avariables: [ToolVariable!]!
to make it possible to provide any kind of variable to the backend context.
-
input InvokeSingleClickOnDiagramElementToolInput {
id: ID!
editingContextId: ID!
representationId: ID!
variables: [ToolVariable!]!
diagramElementId: ID!
startingPositionX: Float!
startingPositionY: Float!
toolId: ID!
}
-
The
String
attributeorg.eclipse.sirius.components.collaborative.diagrams.dto.InvokeSingleClickOnDiagramElementToolInput#selectedObjectId
has been replaced by the attributevariables
of typeList<ToolVariable>
-
#3437 [core] Migrate frontend to MUI 5, if you contributed React componenent that use MUI, you should upgrade them to use MUI 5.
-
#2204 [core] Added
getStyledLabel
inIDefaultLabelService
andIObjectService
, you must implement this method if you have custom implementation of these interface. -
#3815 [core] Make child creation descriptions locale independent
-
#3976 [core] Remove the configuration object used to create representation event processors.
-
The ids used to create a subscription is also changed, refer to [ADR-159] for more details on how to migrate existing API.
-
#3767 [diagram] Improves the robustness of the arrange all
-
#3784 [sirius-web] Fix the click on a representation which is already selected in the explorer.
-
#2759 [diagram] Reactivate the Selection Dialog
-
#3766 [sirius-web] Fix a potential NPE in RewriteProxiesEventHandler#rewriteProxyURIs
-
#3808 [tree] Fix interactions with
TreeItemContextMenu
modal -
#3811 [forms] Fix issue with Reference widget not working when placed in a flexbox container
-
#3776 [tree] Restore expand all functionality for ref widget trees
-
#3824 [core] Fix representation migration participant execution which was failing when there were many representation migration participant to apply.
-
#3851 [tree] Fix an issue where the tree filters menu items were not displayed anymore after a click on the filters menu.
-
#3849 [form] Fix the tree representation in form support the display of the same referenced element many times in the tree.
-
#3878 [diagram] Unmount ReactFlowProvider after layout
-
#3869 [form] Close form-based views when the underlying element no longer exists.
-
#3899 [diagram] Fix an issue when using alt-tab shortcut and trying to drag a node afterwards
-
#3911 [diagram] Fix overflow issue with labels, ensuring proper wrapping and ellipsis.
-
#3933 [vs-code] Fix explorer in vscode extension
-
#3920 [form] Fix DateTime widget default style not set
-
#3934 [diagram] Remove helper lines when moving pinned elements
-
#3907 [diagram] Fix bad state update in handleNodesChange
-
#4079 [sirius-web] Fix a warning in the console when closing the project’s context menu
-
#3748 [diagram] Store current diagram payload in
DiagramContext
-
#3578 [form] Store property and form payload in a context
-
#3821 [sirius-web] Allow to filter resources in
RewriteProxiesEventHandler
. Introduce newIRewriteProxiesResourceFilter
interface, to register resource filter forRewriteProxiesEventHandler
. -
#3570 [diagram] Add max width expression in the View DSL for labels
-
#2204 [core] Added
getStyledLabel
inIDefaultLabelService
andIObjectService
that can be used to display styled string in the explorer for example. -
#3963 [core] Add support for optional GraphQLCodeRegistry post-processing/transformation.
-
#3744 [diagram] Add support for helper lines during multi selection move
-
#3770 [diagram] Enable helper lines by default
-
#3756 [sirius-web] Add an extension point to contribute custom footer
-
#3702 [sirius-web] Improve the extensibility of the navigation bar menu by giving consumers of Sirius Web the ability to add new menu entries
-
#3675 [core] Remove the label from the selection entry. + It also introduces a new hook to retrieve representation metadata
-
#1470 [view] Add EKeys to containment references in view metamodels. The ID of description was previously computed using the URI of the view description, which included its index in its containment reference, meaning that the ID wasn’t stable if the view was updated. The new implementation still uses URIs, but URIs now have the following pattern:
//@descriptions[name='Form']
, which doesn’t rely on the index anymore. -
#3778 [diagram] Export
EdgeData
insirius-components-diagrams/src/index.ts
-
#3755 [sirius-web] Move code related to Sirius Web form based views out of Sirius Components. Thanks to this change, the various form based representations (details, related elements, representations, etc) can now have dedicated features such as specific inputs or additional payloads for their subscriptions.
-
#3794 [view] In diagram view DSL, NodeLabelStyle#showIcon has been change to NodeLabelStyle#showIconExpression, allowing to dynamically change this style option depending on a condition evaluated at runtime. A migration participant has been added to automatically keep compatible all diagram descriptions created before 2024.9.0.
-
#3774 [sirius-web] Add an extension point to contribute custom tools to the diagram palette
-
#3785 [sirius-web] Add an extension point to contribute custom tree item menu entry
-
#3782 [sirius-web] Add an extension point to contribute custom widgets
-
#3801 Add an equivalent of IViewDiagramDescriptionSearchService for Form descriptions
-
#3550 [sirius-web] Add an extension point to contribute setting pages
-
#3776 [tree] Remove unwanted dependency from the reference widget in the explorer
-
#3777 [sirius-web] Add support for any kind of object as semantic element in the tree representation
-
#3392 [diagram] Prevent edge from passing through another node
-
#3763 [diagram] Split the SelectionDialogDescription to prepare the Tree support
-
#3793 [sirius-web] Add mechanism to retrieve the parent object of an element in the tree representation
-
#3880 [sirius-web] Make some tests methods more generic
-
#3834 [deck] Add more variables for DeckDescription
-
#3897 [sirius-web] Improve the search for projects
-
#3902 [core] Move the Help menu entry at the last position (after any contributed entries)
-
#3927 [sirius-web] Make the viewer object configurable
-
#3928 [sirius-web] Derive the read-only state from the project GraphQL query
-
#3932 [forms] Do not display the 'Delete' button (even disabled) for non-deletable lists
-
#3951 [sirius-web] Provide an error page to redirect users in case of error
-
#3974 [diagram] Add support for
<
and>
to trigger direct edit
-
#3634 All the existing parts of the API used to contribute custom nodes with
nodeLayoutHandlers
,nodeConverters
andnodeTypeContributions
will be migrated soon to leverage the extension registry. The signature of the types to implement should not change but the way they are contributed will.
-
#3562 [sirius-web] Update displayed default model creation action. + Projects that have a nature and need the action to create an empty model will need to register the empty model action like it is done in
StudioEditingContextActionProvider
. -
#3553 [core] Remove the concepts
RepresentationContext
,RepresentationContextProvider
and their types which were used to contribute representations for the Sirius Components workbench in favor of an API based on the extension registry. This is one of the first existing API used to extend Sirius Web deprecated in favor of the new extension registry. More existing APIs will be migrated to this new common pattern. -
#3597 [core]
IRepresentationEventProcessorFactory
,IRepresentationEventProcessor
andIEditingContextEventProcessor
change to the signature of the methods in order to create RepresentationEventProcessor without the need ofClass<T> representationEventProcessorClass
to :-
boolean canHandle(IRepresentationConfiguration configuration)
; -
Optional<IRepresentationEventProcessor> createRepresentationEventProcessor(IRepresentationConfiguration configuration, IEditingContext editingContext)
; -
public Optional<IRepresentationEventProcessor> acquireRepresentationEventProcessor(IRepresentationConfiguration configuration, IInput input)
; -
Flux<IPayload> getSubscription(String editingContextId, IRepresentationConfiguration representationConfiguration, IInput input);
-
-
#3623 [form] Remove
IWidgetSubscriptionManagerFactory
-
#3634 [sirius-web] Remove
GraphQLNodeStyleFragment
fromNodeTypeRegistry
, you can specify additional fields to be retreived by the subscription using theDocumentTransform
GraphQL API and theapolloClientOptionsConfigurersExtensionPoint
extension point -
#3641 [core]
IRepresentationMetadataProvider
now defined a single methodOptional<RepresentationMetadata> getMetadata(String representationId)
instead of separatecanHandle
andhandle
methods. -
#3684 [form, tree] Remove the existing mechanisms used to contribute instances of
FormConverter
andTreeConverter
-
#3859 [view] View builders has been grouped in dedicated packages
-
#3510 [releng] Switch to Spring Boot 3.2.5
-
[releng] Switch to
@apollo/client
3.10.4 -
[releng] Switch to
graphql
16.8.1 -
[releng] Switch to
vite
5.2.11,vitest
1.6.0,@vitest/coverage-v8
1.6.0 and@vitejs/plugin-react
4.3.0 -
[releng] Switch to
@types/node
20.12.12 -
[releng] Switch to
typescript
5.4.5 -
[releng] Switch to
turbo
1.13.3 -
[releng] Switch to
jacoco
0.8.12 -
[releng] Switch to
maven-checkstyle-plugin
3.3.1 -
[releng] Remove the dependency to
reflect-metadata
-
[releng] Switch to
subscriptions-transport-ws
0.11.0 -
[releng] Switch to EMF Json 2.3.12
-
#3523 [gantt] Move to @ObeoNetwork/gantt-task-react 0.4.19 to benefit for enhancements
-
#3515 [form] Form pages appear in the addition order
-
#2981 [diagram] Fix a warning when an edge was hidden
-
#3517 [diagram] Prevent edge path for rotatable border node to be inconsistent
-
#2908 [diagram] Homogenize delete icon
-
#3485 [diagram] Add a validation error message when background value is missing
-
#3480 [diagram] Fix an error that prevents border color to be properly applied
-
#3538 [form] Register the Details view description in the editing context
-
#3575 [core] Restore support for studio palette colors
-
#3582 [tree] Restore the initial direct edit tree item label for the explorer
-
#3611 [diagram] Fix missing creation tool image in the contextual palette
-
#3628 [sirius-web] Restore support for expand all and reveal in the explorer
-
#3616 [diagram] Fix potential exceptions due to duplicate keys in diagram event processing
-
#3624 [diagram] Fix an issue where the header separator does not fill the entire width of the node
-
#3531 [diagram] Fix unnecessary edges label re render
-
#3650 [diagram] Fix potential NPE in DiagramNavigator and Node toString method
-
#3649 [sirius-web] Restore support for Related elements view icons
-
#3630 [sirius-web] Restore support for the deletion of dangling representations
-
#3666 [core] Enable EMF’s intrinsicIDToEObjectMap for JSON resources to support languages which use modeled identifiers (e.g. SysMLv2).
-
#3664 [core] The Default.svg image is no longer displayed with the new architecture.
-
#3693 [view] Fix the computation of the candidates for the ReferenceWidget.
-
#3716 [forms] Fix an issue causing some icons of the reference widget to be missing
-
#3672 [forms] Fix an issue preventing the deletion of a list item
-
#3589 [diagram] Add missing migration participant for diagram representation
-
#3668 [diagram] Fix an issue that would cause wrapped label to overflow its container
-
#3709 [domain] Add a conditional edge style for containment references
-
#3722 [sirius-web] Fix reference widget registration
-
#3711 [diagram] Fix an issue that prevent filter elements button to be in read-only mode
-
#3710 [portal] Fix an error raised by switching mode on portal
-
#3700 [diagram] Prevent edge selection from being lost after a diagram refresh
-
#3690 [diagram] Prevent node overlap check from being triggered on border nodes during arrange-all
-
#3691 [diagram] Prevent border nodes from overlapping after the first layout
-
#3466 [gantt] Persist the gantt table columns
-
#3447 [view] Add support for For construct in the operations DSL
-
#3526 [diagram] Add support for text alignment on node labels
-
#3550 [core] Add ExtensionRegistry merge strategy
-
#3563 [sirius-web] Improve NavigationBar extensibility to allow the contribution of components on the left and right of the navigation bar.
-
#3344 [core] Add support for reloading representations from the database
-
#3553 [core] Add RepresentationFactory extension point
-
#3587 [sirius-web] Add an extension point to contribute new project cards
-
#3614 [core] Add the ability to contribute additional payloads to representation subscriptions
-
#3429 [diagram] Add a diagram filter dialog in the diagram panel. This dialog presents diagram elements in a tree and allows to select them and update their visibility and status (e.g. hide, show, collapse).
-
#3523 [gantt] Support rounding dates when changing dates from gantt
-
#3655 [gantt] Support "Delete Task Dependency" tool in gantt
-
#3591 [sirius-web] Add EditProject subtitle extension point
-
#3662 [sirius-web] Add an extension point to contribute props to ReactFlow diagram renderer, contributed props must be memoized
-
#3695 [form] Add an extension point to contribute widget labels decorators
-
#3511 [diagram] Improve edge handle position for border nodes
-
#2837 [gantt] Enhance gantt scroll bar management
-
#3441 [gantt] Use a DateTime widget for AbstractTask entity
-
#3539 [diagram] Add editing context variable in diagram delete tool
-
#3529 [diagram] Improve edge path when a layout direction is defined
-
#3489 [diagram] Apply a fit to screen after an arrange all
-
#3548 [core] Avoid costly recomputations in MigrationService
-
#3566 [diagram] Remove
draggedNodeIdSelector
on nodes to improve performance on large diagrams -
#3552 [core] Rewrite EObjectIdManager using lower-level code for performance
-
#3555 [core] Avoid costly recomputations in RepresentationMigrationService
-
#3558 [core] Avoid all representation migration overhead when not needed
-
#3595 [core] Avoid re-rendering the workbench when the selection does not really change
-
#3601 [sirius-web] Extract test helper classes to sirius-web-tests
-
#3597 [core] Improve the creation of
RepresentationEventProcessor
-
#3544 [diagram] Add missing positions for inside label
-
#3574 [diagram] Add a loading indicator during execution of an arrange-all
-
#3586 [diagram] Fix an issue with keypress listener attached to the palette
-
#3623 [form] Remove unused form payload
-
#3627 [form] Remove unused mutation in form
-
#3606 [test] Improve error handling in ExecuteEditingContextFunctionRunner and ExecuteEditingContextFunctionEventHandler
-
#3561 [diagram] Add support for background and border on diagram labels
-
#3604 [diagram] Make node overlap resolution faster during "Arrange All"
-
#3653 [gantt] Add documentation for gantt representation
-
#3634 [sirius-web] Simplifying the contribution to the GraphQL subscription of the diagram for custom nodes
-
#3656 [core] Add the ability to customize the GraphQL type resolver
-
#3645 [core] Revert earlier change made in #3595 which caused regressions
-
#3651 [diagram] Improve performances when interacting with the diagram, especially when dragging a node
-
#3641 [core] Do not fetch representation content when we only need the metadata
-
#3589 [diagram] Add the ability to limit the direction of resize for a node
-
#3706 [sirius-web] Add some documentation explaining how to change the maximum size allowed for uploaded files. The error messages displayed in case of an error while uploading a file have been uploaded to mention that the file may be too large since it can be a common error. We cannot rely on the error message recaived from the backend since Cross Origin Resource Sharing may prevent us from seeing both the message and the 413 status code.
-
#3697 [diagram] Improve arrange-all performance by reducing overlap management complexity
-
#3669 [diagram] Add migration participant to hide label borders by default
-
#3684 [form, tree] Replace form & tree converters configurations with dedicated extension points
-
#3701 [domain] Add edge and node tools to domain diagram including creation tools as well as delete and direct edit tools.
-
#3859 [view] Allow name duplication in ecore by grouping builders in dedicated packages
-
Configurable collapse
-
Add support for EMF models migration
-
Add support for representations migration
-
Add Assertions and Navigators to improve Diagram testability
-
Improve document upload
-
Configurable visibility
-
Create a representation using the content of another representation as input
-
Add support for DateTime widget
-
[ADR-139] Add Is Collapsed By Default Expression in NodeDescription entity in the view DSL
-
[ADR-140] Add collapse and expand services
-
[ADR-141] Factorize GraphQL queries in tests
-
[ADR-142] Add report on document upload
-
[ADR-143] Handle documents upload with other formats than JSON and XMI
-
[ADR-144] Add the support for EMF models migration
-
[ADR-145] Add a hook to update nodes in ReactFlow
-
[ADR-146] Add support for contributing representation metadata for transient representations
-
[ADR-147] Add support for overlapping nodes
-
[ADR-148] Improve edge layout
-
[ADR-149] Add Default Visibility Fields in View DSL
-
[ADR-150] Add hide/reveal/fade/unfade services
-
#3279 Starting with Sirius Web 2024.5.0, every maven modules used by
sirius-web-sample-application
in thesirius-web
package will be deprecated includingsirius-web-sample-application
. This includes maven modules such assirius-web-persistence
,sirius-web-services
,sirius-web-graphql
among others. They will be replaced by the maven modules of the new architecture used bysirius-web
. The removal of those deprecated modules will occur during the iteration 2024.9.0.
-
#3271 [test] Move
IGraphQLRequestor
toorg.eclipse.sirius.components.graphql.tests.api
. -
#3088 [diagram] Some changes have been made in the View DSL for diagram:
-
attribute
labelExpression
has been renamed tocenterLabelExpression
for edges -
attribute
labelExpression
has been removed fromNodeDescription
in favor ofInsideLabelDescription
For further information, please refer to ADR 130_add_support_for_outside_inside_node_labels.adoc
-
-
#3237 [diagram] Update the name of the
diagramEvent
variable todiagramEvents
to reflect that events are now stored in a list. -
#2567 [form] The
Slider
widget is now a standard widget -
#2567 [form] The TypeScript API used to contribute custom widgets has changed a little to fix some types which could not work in a strict TypeScript environment. The use of generics has thus been greatly reduced since they could not create a set of coherent TypeScript type signatures.
-
#3279 [core] Remove
IRepresentationRefreshPolicyRegistry#add
since it can easily be replaced with a plain old Spring service dependency injection -
#3279 [core] Remove the field
EditingContext#stereotypeDescriptions
fromcore.graphqls
since it is not provided by Sirius Components and only used by Sirius Web -
#3279 [core] Remove all references to the Stereotype API from
sirius-components-core
since it has always been a Sirius Web API. This will make the dependency to the old Sirius Web architecture more explicit. -
#3279 [sirius-web] Simplify the lifecycle and API of the documentation creation in order to provide a simpler yet more powerful API for the new architecture
-
#3279 [sirius-web] The custom nodes project and its edit project have been renamed from
sirius-web-customnodes{-edit}
tosirius-components-view-diagram-customnodes{-edit}
and moved to match other view based projects. They are also now used by the view builder code generator. -
#3382 [diagram] Remove the hardcoded show/hide tools in the frontend and move it to the backend. Specifiers now need to manually add the hide tools they want in their node/edge palette. New default implementations are available in
DefaultToolsFactory
to ease the migration. -
#3304 [core] The
ISemanticRepresentation
interface has been removed. Its single method,getTargetObjectId
, has been moved up into the mainIRepresentation
interface. For representations which were notISemanticRepresentation
before, their target object is theIEditingContext
itself if nothing more relevant is available. Accordingly,IObjectSearchService
andIIdentityService
now handle actualIEditingContext
instances as objects. -
#3425 [diagram] In our GraphQL schema,
DiagramDescription
must now declare anArrangeLayoutDirection
. -
#2655 [diagram] Add optional
calculateCustomNodeEdgeHandlePosition
method toINodeLayoutHandler
. -
#3456 [diagram]
ConnectionTargetHandle
now expectsisHovered
props for custom nodes -
#3391 [diagram] Some changes have been made in the View DSL for diagram:
-
super types
style
has been removed fromNodeStyleDescription
-
attribute
background
has been added toRectangularNodeStyleDescription
andIconLabelNodeStyleDescription
-
-
Move to docker compose v2 for our GitHub Actions workflow.
-
[test] Switch to ArchUnit 1.3.0 to restore architectural tests which were failing recently
-
#3183 [diagram] Fix an issue in which an edge between a child and its parent passed entirely through the child.
-
#3287 [form] The label sent with the form refreshed event payload is the representation name, not the always the
FormRepresentationDescription#titleExpression
-
#3290 [diagram] Fix an issue that prevent the group palette to be displayed if only list children are selected.
-
#3018 [gantt] Fix reference widgets for AbstractTask Details
-
#3298 [diagram] Fix an issue in which the diagram had unnecessary rendering
-
#3317 [diagram] Fix an issue that caused a crash when selection changes were made too quickly
-
#3269 [diagram] Disable node drag and drop during multi selection
-
#3352 [diagram] Fix an issue that prevents pinned elements from being unpinned unintentionally
-
#3301 [diagram] Fix an issue that caused direct edit to fail if a node didn’t have an inside label.
-
#3373 [diagram] Fix potential IllegalArgumentException with non uuid shape.
-
#3383 [diagram] Fix an issue where the first resizing after node creation was not persisted.
-
#3411 [diagram] Fix an issue that prevents border node to be move if
AreChildNodesDraggableExpression
is false -
#3416 [explorer] Add a tooltip for Filter menu in Explorer view.
-
#3420 [diagram] Fix an issue that prevents position reset after a rejected drag&drop.
-
#3422 [diagram] Fix an issue that prevents element not present on diagram to be selected on first click.
-
#3407 [diagram] Fix performance issue during node drag.
-
#3424 [emf] Fix wrong document migration data when creating a document.
-
#3443 [diagram] Prevent outside label to be truncated.
-
#3440 [diagram] Prevent a border node losing its position after being moved to another border
-
#3214 [vscode] Apply theme colors in the VS Code extension.
-
#3472 [diagram] Prevent arrange-all action to mark nodes as
resizedByUser
. -
#3474 [diagram] Prevent the border of the last compartment of a list node from being visible when the node is hidden
-
#3477 [diagram] Prevent dropNode mutation to be send when dropping from the diagram to the diagram
-
#3493 [diagram] Prevent child node to be outside its parent after an arrange all
-
#3271 [test] Factorize GraphQL queries used in tests. 4 new projects have been created to store GraphQL queries, mutations, and subscription runners:
sirius-components-graphql-tests
,sirius-components-trees-tests
,sirius-components-portals-tests
,sirius-web-tests
.sirius-components-forms-tests
andsirius-components-diagrams-tests
now both contain GraphQL queries related to forms and diagrams. -
#3236 [view] Add a new expression in
NodeDescription
to specify whether a node is collapsed by default. -
#3236 [diagram] Add a new predicate in
NodeDescription
to specify whether a node is collapsed by default. -
#3163 [gantt] Add support for task drag&drop in task table.
-
#3088 [diagram] Add the support for inside/outside labels. In this first version, the only available positions top_center for inside label en bottom_center for outside label.
-
#3237 [diagram] Add a
DiagramServices
class containing services to expand and collapse nodes from AQL expressions (via the newdiagramServices
variable) and Java services. -
#3282 [diagram] Add diagram assertions and navigators to ease the definition of diagram tests.
-
#3277 [gantt] Add support for dependency creation
-
#3371 [view] Add new expressions in
NodeDescription
to specify whether a node is hidden/faded/normal by default. -
#3371 [diagram] Add new predicates in
NodeDescription
to specify whether a node is hidden/faded/normal by default. -
#3372 [diagram] Add services in
DiagramServices
to hide, reveal, fade, and unfade nodes from AQL expressions and Java services. -
#2839 [gantt] Add support for persisting task expand/collapse state
-
#3333 [emf] Add support for the migration of semantic data
-
#3382 [diagram] Add a tool section in Node and Edge palettes with tools to hide/show/reset elements and their children.
-
#3135 [diagram] Add new overflow strategies for node label : wrap and ellipsis
-
#3425 [diagram] Make the direction applied during arrangeAll configurable.
-
#3354 [diagram] Add support for overlapping nodes in arrangeAll and distribute elements
-
#3389 [form] Add support for DateTime widget
-
#3307 [representation] Add support for the migration of representation
-
#3503 [tree] Add tree item renaming support to the new architecture
-
#3279 [sirius-web] Improve the new architecture to reach feature partity with the old one
-
#2567 [form] Fix the inconsistency in the typing of the custom widget API
-
#3279 [validation] Multiple instances of
IValidationService
are now supported in the new architecture -
#3279 [gantt] The expressions
TaskDescription#startTimeExpression
andTaskDescription#endTimeExpression
can now both acceptString
values as a result if those values can be parsed byjava.timeInstant#parse
. They still support returning anjava.time.Instant
object directly. -
#3309 [diagram] Hide header border-bottom when the node is collapsed
-
#3285 [diagram] Make the icons in the diagram palette use the default color of Sirius Web theme
-
#3312 [form] Make the details view more compact
-
#3349 [diagram] Add a default label when creating a NodeDescription
-
#3342 [deck] Update deck and gantt view metamodel and deck view examples
-
#3346 [workbench] Make the Explorer panel wider by default.
-
#3313 [core] Avoid sending events for no-op updates of domain objects
-
#3362 [diagram] Ignore edge during multi-selection to apply distribution tools on nodes
-
#3360 [sirius-web] Handle documents upload with other formats than JSON and XMI.
-
#3376 [diagram] Prevent
getToolSection
to be called during multi-selection -
#3377 [diagram] Only synchronize selection with explorer at the end of the process
-
#3359 [sirius-web] Add report on document upload
-
#3405 [diagram] Display layout tools vertically in group palette
-
#3333 [emf] Store the last migration performed in a document
-
#3409 [diagram] Make border node movement smoother
-
#3279 [sirius-web] Restore support for project images
-
#3279 [core] Image URLs are now sanitized in a similar manner in all datafetchers, as a result absolute URLs to external images are better supported and a leading slash is now required anymore.
-
#3296 [diagram] Add a hook
useStore
to retrieve localsetNodes
,setEdges
,onEdgesChange
andonNodesChange
, this hook is used to align how nodes and edges are manipulated during processing of ReactFlow events. -
#3397 [diagram] Add helper lines when resizing nodes
-
#2655 [diagram] Add
calculateCustomNodeEdgeHandlePosition
method to position edge handles according to the real layout of the custom node -
#3456 [diagram] Fix an issue that were causing a large delay when opening a diagram, creating an edge or reconnecting an edge
-
#3391 [diagram] Accept gradient for node background
-
#3435 [diagram] Extract diagram style from useDropNode
-
#3453 [diagram] Memoizing edges and nodes style
-
#3450 [diagram] Add
calculateCustomNodeBorderNodePosition
method to position border nodes according to the real layout of the custom node -
#3460 [diagram] Use arrange layout direction properties during edge handle position computing
-
#3366 [gantt] Trigger the zoom on Ctrl+MouseWheel
-
Transform Sirius Web into an extensible platform
-
Facilitate the insertion of elements into a list node
-
Add support to filter elements on a diagram
-
Add filters on the explorer view
-
Add support for overflow label strategies
-
Improves resizing support for list nodes
-
[ADR-126] Add the ability to reuse both the Sirius Web frontend and backend easily
-
[ADR-127] Add the ability to extend the Sirius Web frontend
-
[ADR-128] Add the ability to extend the Sirius Web backend
-
[ADR-129] Add support for confirmation dialogs
-
[ADR-130] Add support for outside and inside node labels
-
[ADR-131] Add more filtering capabilities on diagram
-
[ADR-132] Add support for filters in Explorer View
-
[ADR-133] Add Tree Widget to the View DSL
-
[ADR-134] Split IObjectService in multiples sub services
-
[ADR-135] Add support for representations in object related services
-
[ADR-136] Add variables to the view form dsl
-
[ADR-137] Use a common identification strategy for transient representations
-
[ADR-138] Allow consumers to reuse smaller parts of the Sirius Web backend
-
The type
RenameProjectSuccessPayload
andDeletedProjectSuccessPayload
will be replaced bySuccessPayload
-
The type
DeleteRepresentationSuccessPayload
will be replaced bySuccessPayload
-
The mutation
createRepresentation
anddeleteRepresentation
and their datafetcher will be entirely managed by Sirius Components -
The interface
IEditingContextEPackageService
should be deleted since we now have access to editing context preprocessors which can be used to contribute packages to editing context and even more. -
Remove the image for resources from
sirius-components-compatibility
andorg.eclipse.sirius.components.compatibility.services.ImageConstants
.
-
#3010 [form] The reference widget has been updated. On backend side,
clickHandler
has been removed fromReferenceValue
.itemClickHandlerProvider
has been removed fromReferenceWidgetDescription
. EventHandler & DataFetcher on widget reference item click action have also been deleted. The reference widget graphql schema and the frontend have been updated accordingly. -
#2822 [diagram] The GraphQL type
Edge
must now implementlabelEditable
boolean field. -
#2783 [diagram] Remove the package
sirius-components-diagrams
containing the Sprotty based implementation of our diagrams -
#2783 [diagram] Rename the package
sirius-components-diagrams-reactflow
tosirius-components-diagrams
since we only have one implementation now -
#2783 [diagram] Remove the modules
sirius-components-diagrams-layout-api
andsirius-components-diagrams-layout
in favor of the frontend based layout API. As a result, all the APIs relying on this code have been deleted too such as the dead code used to export diagrams on the server or the API for parametric SVGs which was replaced in Reactflow based diagrams. -
#3020 [sirius-web] Remove the component
Views
and its dependencies in favor of a more straightforward API. -
#2823 [diagram] Some changes have been made for node layout, there may be an impact on the custom node.
-
getNodeOrMinWidth
andgetNodeOrMinHeight
have been renamedgetDefaultOrMinWidth
andgetDefaultOrMinHeight
. -
computePreviousSize
no longer returns{0,0}
when it’s a new node but its default size.
-
-
#2606 [diagram] Add the attributes
topGap
andbottomGap
to graphqlListLayoutStrategy
. -
#3042 [core] IObjectService have been divided in smaller API IContentService, IObjectSearchService, IIdentityService and ILabelService. If you used the default implementation of
IObjectService
you can still use it to retrieve the default implementation of the new services. Yet we are recommending using each individual services since this aggregated one may be deprecated in the future. If you want to add your own custom behavior, please use the new services, see the related ADR for more details. -
#3066 [core]
IObjectSearchService
,IIdentityService
,ILabelService
now can also find/resolve representations. This changes a core assumption from before where an element known to those services (i.e. an element for whichIIdentityService.getId
returned a non-null value) was a "semantic element" and thus could not be a representation. -
#3021 [sirius-web] Remove the interfaces
IRepresentationDescriptionRegistry
andIRepresentationDescriptionRegistryConfigurer
to replace them withIEditingContextRepresentationDescriptionProvider
which provides the same feature but also gives access to the editing context for conditional registration of representation descriptions. This new interface will move in the near future fromsirius-components-core
tosirius-web-application
. It’s current location is only there to simplify the transition to the new Sirius Web architecture. -
#3021 [sirius-web] Make the
ISuggestedRootObjectTypesProvider
optional insirius-components-emf
in order to be able to reuse this maven module without the Sirius Desktop compatibility one. -
#3019 [emf] Remove the dependency from
sirius-components-emf
to the validation representation. Reusing the EMF compatibility layer will not add any dependency to specific representations. The EMF validation support will now be provided bysirius-web-services
. -
#3156 [core] In our GraphQL schema,
Viewer
is now a type instead of an interface. HavingViewer
as a type did not bring any additional value and it created some overhead by having to create and keep updated an additional type without any benefit. -
[sirius-web] The field
ChangeKind.PROJECT_RENAMING
has been deleted since it does not make any sense in Sirius Components. -
#2713 [diagram] Add the attribute
growableNodeIds
to graphqlListLayoutStrategy
. -
#3019 [core] Add
CoreImageConstants.DEFAULT_SVG
to retrieve the default svg image fromsirius-components-core
instead of the now deletedImageConstants.DEFAULT_SVG
fromsirius-components-compatibility
-
#3019 [core] Move the
WidgetIdProvider
fromsirius-components-compatibility
tosirius-components-forms
to remove unnecessary dependencies to the Sirius Desktop compatibility layer. -
#3019 [core] Move the EMF based default description of the details view from
sirius-components-compatibility-emf
tosirius-components-emf-forms
since there are no dependency between the default description of the details view and the Sirius Desktop compatibility layer. -
#3096 [tree]
TreeConfiguration
has a new parameterList<String> activeFilterIds
. -
#3019 [form] Allow consumers of Sirius Components to reuse the reference widget without the form description editor or the view DSL.
-
#3246 [view] Remove representation specific code from
ViewRepresentationDescriptionSearchService
-
#3250 [form] Change the base package of the reference widget from
org.eclipse.sirius.components.widgets.reference
toorg.eclipse.sirius.components.widgets.reference.view
-
#3303 [core] The identifiers for all transient representations have changed. They are now more uniform and more importantly clearly distinct from persisted representations (which all use plain UUIDs):
-
Explorer:
explorer://?expandedIds=[…]&activeFilterIds=[…]
-
Details:
details://?objectIds=[…]
-
Validation:
validation://
-
RelatedElements:
relatedElements://?objectIds=[…]
-
Representations:
representations://?objectIds=[…]
-
Selection:
selection://
-
-
#2984 [deck] Handle successPayload messages in Deck representation.
-
#2666 [formdescriptioneditors] Change widget reference preview to match its new look.
-
#3004 [deck] Fix some of the console errors
-
#2799 [diagram] Remove the unwanted space between the header and first element in list node
-
#2822 [diagram] Prevent direct edit to be triggered on edge if there is no edit label tool corresponding
-
#3061 [form] Ensure Forms are always refreshed using the current version of their target element
-
#3052 [diagram] Fix an issue that prevented user from reconnecting an edge.
-
#3030 [diagram] Fix the position of the palette when multiple diagrams are open at the same time (e.g. inside a portal)
-
#2823 [diagram] Fix an issue that prevents nodes from being resized smaller than their default size.
-
#3063 [selection] Ensure Selections are always refreshed using the current version of their target element
-
#2721 [diagram] Prevent labels to exceed their container
-
#3100 [diagram] Add support for drop on
IconLabelNode
-
#3124 [diagram] Fix an issue that prevents manual line break in node label
-
#3127 [diagram] Fix an issue with handles position
-
#3143 [diagram] Fix an issue where the default icon was consistently being used for EdgeTool The implemented fix does not allow to evaluate an AQL expression, but only to retrieve a static value.
-
#3166 [diagram] Fix an issue where label edit tool did nothing on nodes with outside label.
-
#1707 [diagram] Fix an issue where changing cursor position through a click while editing a tree item label lead to the end of the edition.
-
#2825 [diagram] Fix an issue where a click on the text during direct edit opened the palette instead of change the caret position.
-
#3185 [diagram] Fix an issue where child nodes were used in helper lines computation of container.
-
#3149 [diagram] Fix an issue where newly created border nodes could overlap existing one
-
#3217 [diagram] Prevent helper lines to be displayed on moving a pinned node
-
#3215 [vscode] Fix an issue where it was impossible to delete elements on a diagram from the VSCode extension.
-
#3208 [form] Fix an issue with splitbutton default style in form editor
-
#3235 [diagram] Fix an issue where group palette and element palette could be both displayed on edges.
-
#3035 [diagram] Fix an issue where diagram palette and element palette could be both displayed.
-
#3044 [diagram] Fix an issue that caused the selection between the diagram and the explorer to be desynchronized
-
#2956 [diagram] Fix an issue where diagram performance were degraded over time when moving elements.
-
#3228 [diagram] Fix an issue where list child could be moved outside its container
-
#3206 [diagram] Fix an issue where precondition on tool was not respected during palette creation
-
#3257 [diagram] Fix an issue that caused an infinite loop when selecting elements with shift.
-
#3239 [form] Add missing reference widget view builder
-
#3265 [diagram] Fix an error on console when moving a node with an opened palette
-
#3499 [portal] Fix label positioning in portal representation
-
#3010 [form] Reference widget has been updated. Its body operations are now bind on set/add instead of click.
-
#2942 [deck] Add the Card Drag and Drop capability in the Deck representation.
-
#3024 [sirius-web] Add a new Papaya example diagram
Deployment Diagram
that will allow us to test border nodes -
#3015 [deck] Add the Lane Selection and Direct edit capability.
-
#3033 [deck] Add the Lane Drag and Drop capability.
-
#2606 [diagram] Add the possibility to insert free space before or after elements in list layouted node
-
#3045 [deck] Make it possible to collapse lanes in the Deck representation.
-
#2841 [diagram] Add the support for read-only diagram. In read-only mode, the palette can not be displayed, some of the panel action are disabled, a node cannot be moved or be resized.
-
#3042 [core] IObjectService have been divided in smaller services IContentService, IObjectSearchService, IIdentityService and ILabelService, see the related ADR for more details.
-
#3089 [sirius-web] Add confirmation dialog on delete.
-
#3087 [deck] Add the Zoom, Full Screen and Fit to screen actions.
-
#3101 [deck] Add a Lane context menu to hide/reveal cards in Deck
-
#3081 [forms] TreeWidget has been added in forms model.
-
#3083 [forms] Add support for icons at the end of a tree item label.
-
#3082 [forms] Add checkbox support for tree widget.
-
#3133 [deck] Add OKR and Kanban samples in the Task template and Deck view stereotype.
-
#3145 [diagram] Add support for helper lines to facilitate the alignment of nodes with each other.
-
#3084 [form] Add SplitButton Widget.
-
#3193 [form] Allow the use of custom variables in the
VariableManager
initialized by the FormDescription. -
#3193 [core] Added the methods
hasVariable(String name)
andgetParent()
in VariableManager to, respectively, detect if a variable manager defines a variable (it returnsfalse
, if the variable is defined by a parentVariableManager
) and to navigate to a parentVariableManager
. Thanks to this capability, a specifier can easily retrieve a variable overriden by a childVariableManager
. -
#3096 [tree] Tree representations can now support filters
-
#3158 [diagram] Add a new tool to apply adjust-size on diagram node.
-
#3201 [diagram] Add support for tools on multiple diagram elements selection (hide, fade and pin).
-
#3197 [form] Add the
FormVariable
concept to the view form DSL. Form variables declared in a form description will thus be added in the FormDescriptionVariableManager
. -
#3198 [form] Add a new variable,
variableManager
, in most interpreted expressions of the form DSL. -
#3243 [diagram] Add tools to help manual layout on multiple elements
-
#2999 [formdescriptioneditor] Add the support for read-only Form Description Editors.
-
#3253 [diagram] Add a new tool to apply same size on multiple nodes
-
#2775 [gantt] Handle TypeScript strict mode for Gantt module
-
#2975 [diagram] Fix issues with ReactFlow pane events that were slowing down the application.
-
#2988 [diagram] Fix an issue with ReactFlow OnNodesChange event that were slowing down the application.
-
#2978 [diagram] Fix issues with ReactFlow edge and drag events that were slowing down the application.
-
#3000 [portal] Portals which already contain representation now open in "direct" mode.
-
#2875 [forms] Make the Representations view a plain FormBasedView
-
#2732 [diagram] Add missing support for feedback messages on tool action.
-
#3020 [sirius-web] Simplify the code used to update the navigation bar menu and icon.
-
#3024 [diagram] Added two new variables
semanticEdgeSource
andgraphicalEdgeSource
to compute the target nodes of an edge. -
#3050 [sirius-web] Contributes a first version of the new Sirius Web architecture
-
#1844 [emf] Unload resources by default when the EMF based editing context is disposed
-
#3020 [sirius-web] Improve the creation of the Apollo GraphQL client.
-
#3056 [tree] Expand the clickable/draggable zone for tree items
-
[forms] Avoid creating a new subscription when re-selecting the same element
-
[tree] Avoid sending treePath query if the selection does not actually change
-
[core] Ignore empty changes of kind ChangeKind.NOTHING
-
#3020 [sirius-web] Improve the project browser to make the code more robust
-
#3021 [sirius-web] Leverage the new Spring Boot APIs to create the sirius-web-starter autoconfiguration
-
#3020 [sirius-web] Simplify the contribution of views in the workbench
-
#3066 [core] The core object-related services now can also find/resolve representations.
-
[portal] Use MUI tooltips for Portal toolbar elements
-
#2480 [diagram] Merge the rectangle node and the image node into FreeFormNode.
-
#3079 [deck] Add a name attribute on CardDescription and LaneDescription
-
#3019 [sirius-web] Improve the new architecture to let product builders reuse Sirius Web
-
#3141 [portal] Make the header of embedded representations sticky so that it (and its icon) are always visible.
-
#2713 [diagram] Enhances resize support for list nodes
-
#3120 [deck] Provide styles customization in the Deck representation
-
#3187 [diagram] BorderNode creation now considers the click position to define the border.
In other scenarios, the default creation position border remains the eastern one.
-
#2785 [gantt] Add cypress tests
-
#3225 [sirius-web] The confirmation dialog on delete does not propose anymore the option allowing to "Disable this confirmation dialog" when the local storage is not available.
-
#3246 [view] Make the
ViewRepresentationDescriptionSearchService
independent from specific representations -
#3220 [deck] Add documentation
-
#3178 [portal] Add documentation for portals
-
#2890 [portal] Display the contents of a Portal in the Representations view
-
Add support for Portal representation
-
Add support for Gantt representation
-
Add support for Deck representation
-
Add support to pin unpin nodes
-
[ADR-122] Use the page object model in integration tests
-
[ADR-123] Improve frontend selection support
-
[ADR-124] Add support for libraries
-
[ADR-125] Provide a common ShareRepresentationModal
-
#2675 [view]
IViewDiagramElementFinder
has been updated with new methods. All implementations of this interface must implement these new methods:-
List<NodeDescription> getNodeDescriptions();
to retrieve allNodeDescriptions
created by providers. -
List<EdgeDescription> getEdgeDescriptions();
to retrieve allEdgeDescriptions
created by providers.
-
-
#2658 [sirius-web] Add dedicated colors for navigation bar in the Sirius Web theme. The theme provided by the user must now provide navigation bar colors:
...
navigationBar: {
border: 'yellow',
background: 'blue',
},
...
-
#2669 [sirius-web] Add dedicated colors for selected elements in the Sirius Web theme. The theme provided by the user must now provide selected elements colors:
...
selected: 'gray',
...
-
#2672 [sirius-web] Add dedicated colors for toast messages in Sirius Web theme. The theme provided by the user must now provide toast messages colors:
...
success: {
main: '#43A047',
dark: '#327836',
light: '#4EBA54',
},
warning: {
main: '#FF9800',
dark: '#D98200',
light: '#FFB800',
},
info: {
main: '#2196F3',
dark: '#1D7DCC',
light: '#24A7FF',
},
...
-
#2804 [sirius-web] Add the ability to declare custom nodes while using the
sirius-web-application
frontend package. A new optional component namedDiagramRepresentationConfiguration
has been introduced. If you want to add some custom nodes, this new component must be declared underSiriusWebApplication
:
const nodeTypeRegistry: NodeTypeRegistry = {
...
};
<SiriusWebApplication httpOrigin={httpOrigin} wsOrigin={wsOrigin}>
<DiagramRepresentationConfiguration nodeTypeRegistry={nodeTypeRegistry} />
</SiriusWebApplication>
-
#2790 [diagram] All handles used to resize a node have been updated to be wider, you can update your custom nodes in the same way it’s done in the EllipseNode example.
-
#2932 The line used to resize a node have been updated to be wider, you can update your custom nodes in the same way it’s done in the EllipseNode example.
-
#2872 [diagram] The GraphQL type
DiagramDescription
has a new fieldchildNodeDescriptionIds
, returning a list of Ids. The GraphQL typeNodeDescription
has a new fieldchildNodeDescriptionIds
, returning a list of Ids and replacing the fieldchildNodeDescriptions
which has been deleted. The GraphQL typeNodeDescription
has a new fieldborderNodeDescriptionIds
, returning a list of Ids and replacing the fieldborderNodeDescriptions
which has been deleted. -
#2872 [diagram] Change the signature of the node converters in order to leverage the diagram description to resolve the reuse descriptions. Additional changes to this interface will probably occur in the near future in order to support more complex use cases.
-
#2889 [emf] Remove the default implementation of the editing context from the
sirius-components-emf
module. The default implementation of the editing context for Sirius Web, which had Sirius Web specific code already, will be owned bysirius-web-services
. This default implementation will now also contain all the view models properly loaded which should be considered during the lifecycle of the editing context. -
#2796 [sirius-web] All Flow related configurations have been moved to
sirius-components-flow-starter
module. -
#2883 [diagram] Add the attribute
resizedByUser
to reactflow nodes and graphql nodes. -
#2926 [sirius-web] A new
IEditingContextProcessor
has been introduced. It allows to execute operations before/after the load of anIEditingContext
inEditingContextSearchService
. -
#2901 [diagram] Added
nodeDescription
prop toConnectionTargetHandle
component.
-
[releng] The frontend now depends on @ObeoNetwork/gantt-task-react v0.3.13
-
[releng] The frontend now depends on react-trello 2.2.11
-
#2842 Move to @ObeoNetwork/react-trello
-
[releng] Switch to EMFJson 2.3.6-SNAPSHOT
-
[releng] The frontend now depends on elkjs 0.8.2
-
#2812 [tree] Fix an issue that prevents icon to be displayed in treeNodes.
-
#2580 [diagram] Cancel direct edit on 'Esc'.
-
#2778 [diagram] Authorize empty string for direct edit.
-
#2579 [diagram] Fix the invalid text cursor position when editing a label by typing text directly.
-
#2826 [diagram] Fix invalid reference position used for nodes with a depth superior to 2.
-
#2857 [form] Fix default reference widget bugs. Now, for a multi-valued feature, the values are properly displayed and the delete is properly handled.
-
#2888 [view] Ensure that the retrieval of the view models returns properly loaded models
-
#2797 [diagram] Preserve diagram selection after change in the details view.
-
#2755 [diagram] Ensure that the unfolded tool section is always visible above the rest of the palette
-
#2786 [diagram] Fix an issue where resizing was clunky.
-
#2912 [diagram] Send all requested node descriptions to the frontend when requested.
-
#2678 [diagram] Fix an issue where tools from the diagram palette where not executed.
-
#2943 [view] Fix an issue where the default colors were not applied to sub-nodes and border nodes.
-
#2957 [diagram] Fix an issue where children of custom node lose their position.
-
#2934 [portal] Fix the initial position of representations added into portals
-
#2907 [diagram] Fix an issue on some browsers where a tool could not be executed if the tooltip was visible
-
#2901 [diagram] Fix an issue where the connectionLine could be stuck on invalid nodes.
-
#2940 [diagram] Fix an issue where the diagram palette would render with no tools.
-
#2986 [portal] Prevent a portal from containing itself
-
#2413 Add a debug mode for React Flow diagrams
-
#2735 [gantt] Contribute the first version of the Gantt representation.
-
#2403 [view] Add support for If and Let constructs in the operations DSL.
-
#1545 [core] The current selection can now be read and set from anywhere using the new
useSelection()
hook. -
#2736 [gantt] Add a starter project for beans related to task meta-model.
-
#2819 [deck] Contribute the first version of the Deck representation.
-
#2765 [portal] Contribute the first version of the Portal representation.
-
#2737 [gantt] Support create, edit and delete task in gantt.
-
#2793 [diagram] Add the possibility to pin / unpin nodes.
-
#2883 [diagram] The size of manually resized node does not change anymore, unless it needs to.
The size of nodes that do not have been resized manually tries to fit the node default size.
-
#2792 [diagram] Add a first version for arrange all support.
-
#2926 [sirius-web] Add a first version of the support for {pre|post}processing of the editing context.
-
#2848 [core] The new
ShareRepresentationModal
can be used to share the URL of any kind of representation.
-
#2675 [view] Improve
IViewDiagramElementFinder
by adding new methods:-
List<NodeDescription> getNodeDescriptions();
to retrieve allNodeDescriptions
created by providers. -
List<EdgeDescription> getEdgeDescriptions();
to retrieve allEdgeDescriptions
created by providers.
-
-
#2733 Leverage the page object model to improve out integration tests
-
#2658 [sirius-web] Add dedicated colors for navigation bar in the Sirius Web theme
-
#2669 [sirius-web] Add dedicated colors for selected elements in the Sirius Web theme
-
#2672 [sirius-web] Add dedicated colors for toast messages in the Sirius Web theme
-
#2720 [releng] Improve our build process to be faster in development mode
-
#2780 [releng] Upgrade github/aws actions versions in workflows
-
#2644 [diagram] Highlight nodes on hover in React Flow diagrams
-
#2766 [tree] Tree representations (including the explorer) now support dragging any kind of element (not just semantic elements). It is the responsibility of the drop targets (e.g. a diagram) to validate the dropped element(s) type and ignore the one it does not support.
-
#2772 [diagram] Improve the Palette performance.
-
#2679 [diagram] When editing a label, place input element closer to the label’s location (centered).
-
#2804 [sirius-web] Add the ability to declare custom nodes while using the
sirius-web-application
frontend package. -
#2718 Replacing useNodes and useEdges by useReactFlow to improve performances.
-
#2787 [view] Add the ability to customize the icons of the node tools and edge tools in the View DSL.
-
#2784 [performance] Expand monitoring capabilities.
-
#2760 Begin and end label placement of and edge takes into account handle position.
-
#2788 [diagram] Add the possibility to declare child nodes undraggable in ListLayoutStrategy.
-
#2790 [diagram] Increase the size of the handles used to resize a node.
-
#2920 [Deck] Add Cypress integration tests
-
#2849 [diagram] Reduce the time taken to open a diagram
-
#2609 [diagram] Move handles after node move to reduce edges crossing.
-
#2484 [diagram] Split the label concept into three concepts: edge label, inside label and outside label. This is a preliminary work to add some proper support for outside labels in the near future.
-
#2869 [diagram] Add
diagramContext
variable to accessible variables when computing semantic candidates expression. -
#2774 [gantt] Rework the gantt representation front-end to follow best practises.
-
#2872 [diagram] Reduce the time needed to retrieve a diagram description, thus leading to reduce the duration of diagrams opening.
-
#2889 [emf] Add the
IEMFEditingContext
interface in order to let any editing context be an EMF aware one. After this change, we will be able to delete theEditingContext
class fromsirius-components-emf
and add new interfaces to describe the various capabilities of an editing context. Among those capabilities, we should find the list of view models to consider during the lifecycle of the editing context. -
#2889 [view] Load view models only once during the lifecycle of the editing context. This change makes the editing context the single source of truth for the state of the view models.
-
#2904 [sirius-web] Order candidates in Representations sections in the Onboard Area.
-
#2903 [sirius-web] Order New Representation modal candidates.
-
#2796 [sirius-web] Flow diagram description has been converted to the view DSL.
-
#2910 [portal] Make the initial drop area larger and more visible on empty portals
-
#2932 The line and the handle used to resize a node is now bigger. The handle is now circular. .Old resize handles vs new ones
-
#2948 [portal] Use a "close" icon instead of "delete" icon for the button that removes a representation from a portal (but does not delete the representation).
-
#2792 [diagram] Add support to label and call layout after arrangeAll.
-
#2951 [diagram] Set ConnectionLine color to theme.palette.selected.
-
#2909 [portal] Add support for read-only mode on portals.
-
#2983 [deck] Use the strict mode of TypeScript for the Deck package.
-
Add support for custom nodes in Diagram representations
-
Add the possibility to specify a size ratio on node.
-
Add support for rotatable border node
-
Improve handles management in React Flow based diagrams
-
[ADR-111] Add support for image overlay
-
[ADR-112] Provide only valid view descriptions to the renderer
-
[ADR-113] Add support for multiple IObjectService
-
[ADR-114] Add support for multiple IEditService
-
[ADR-115] Split the Sirius Web frontend
-
[ADR-116] Add support for changing the content of the explorer
-
[ADR-117] Add support for changing the content of the details view
-
[ADR-118] Use dynamic handles to connect edges between nodes
-
[ADR-119] Share layout data between subscribers
-
[ADR-120] Improve the arrange all action with reactflow
-
[ADR-121] Add process before and after input handling
-
#2386 [form] Reference widget structure has changed,
referenceOptions
has been removed to be lazily loaded. -
#2335 [form] The general mutation
editReference
has been removed from the reference widget. This mutation has been replaced by finer grain mutations:-
clearReference mutation: to reset the content references (set the value to
null
for mono-valued references and to an empty list for multi-valued ones). -
addReferenceValues mutation: to several reference values to a reference (only used with multi-valued references)
-
setReferenceValue mutation: to set the value of mono-valued references
-
removeReferenceValue mutation: to remove a given value from a reference (in case of mono-valued references, this mutation is equivalent to clearReference)
-
createElementInReference mutation: to create a new element (used in the context of a reference widget)
-
moveReferenceValue mutation: to reorder the list of values in multi-valued references
-
UI is unchanged except that we removed the transactional behavior of the TransferModal component which is now performing operations live. This means that changes are no longer done when the modal is close (using the Apply button) but as soon as the user interacts with elements (adding or removing values, changing order).
-
#2269 [core] The GraphQL field
EditingContext#domains
has been modified. A new parameterrootDomainsOnly: Boolean
has been added, allowing to remove domains not compatible with root objects. For example, Diagram & Form domains are not root domains becauseDiagramDescription
andFormDescription
are not root objects valid candidates. -
#1712 [diagram] The GraphQL type
Node
must now implementisLabelEditable
boolean field. -
#2456 [sirius-web] The GraphQL field
CreateChildSuccessPayload
now expects to have a list of messages. -
#1982 [diagram] Change the diagram structure. The Node’s 'label' attribute has been renamed into 'insideLabel' and its type changed from
Label
toInsideLabel
(which is currently identical toLabel
except for the name). -
#2388 [core] The
IObjectService.getImagePath
API changed and now must return a list containing all the image paths to compose/overlay. Due to this data structure modification, all existing diagrams can no longer be opened. -
#2460 [form] The reference widget no longer declares a
createElementHandlerProvider
, this feature is delegated to the new serviceIReferenceWidgetCreateElementHandler
. -
#2453 [diagram] The GraphQL fields
DeleteFromDiagramSuccessPayload
,EditLabelSuccessPayload
andDropOnDiagramSuccessPayload
now expects to have a list of messages. -
#2514 [diagram] Move and rename the RectangleNodeStyle
withHeader
attribute to InsideLabelisHeader
. It requires to add aisHeaderProvider
to the LabelDescription of Node. Replace only for the programmatic API the LabelDescription type in NodeDescription by InsideLabelDescription and add the inside label location. Update the graphql API accordingly. -
#2444 [form]
ViewFormDescriptionConverterSwitch
now extendsFormSwitch<Optional<AbstractControlDescription>>
-
#2516 [diagram] Add to the diagram core API the possibility to display the header separator when the inside label is a header. It requires to add a
displayHeaderSeparatorProvider
to the InsideLabelDescription. For the compatibility layer, the separator will always be displayed if the label is inside a node displaying its children has a list. Add the attributedisplayHeaderSeparator
to the graphql API. -
#2535 [view] Add the possibility for the header separator to be displayed or hidden in the View DSL.
-
#2255 [diagram] The properties
widthComputationExpression
andheightComputationExpression
have been removed fromNodeStyleDescription
. From now on, use thedefaultWidthExpression
anddefaultHeightExpression
properties fromNodeDescription
. -
#2537 [sirius-web]
sirius-web
frontend package has been split in two:sirius-web
andsirius-web-application
. The packagesirius-web
now depends onsirius-web-application
. A new componentSiriusWebApplication
has been added. Developers who want to create asirius-web
frontend should use this component as their root component. The API of this component will change over time in order to provide additional capabilities. API breaks should be expected.Another component, named
Views
has also been added. This component will allow developers to customize some parts of the Sirius Web views. It will currently provide the ability to customize the application icon and application menu. The API of this component will also change over time so API breaks should be expected in the upcoming releases.This new package and those new components are the first part of our work to make Sirius Web more reusable.
-
#2615 [diagram]
useDropNode().dropFeedbackStyleProvider
has been removed. UseuseDropNodeStyle(node.id)
instead to get the feedback of the drop feedback. -
#2671 [diagram] Switch to Reactflow by default. To open a diagram with Sprotty, suffixes the diagram name with
__SPROTTY
-
#2360 [form] Fix an issue that prevents creation of new object on some containment reference with the reference widget.
-
#2456 [form] Fix an issue that prevents creation of new object on mono valued and containment reference when a value is already set with the reference widget.
-
#2269 [view] Fix an issue where it was possible to create a DiagramDescription or a FormDescription as a root object of a resource.
-
#2470 [form] Fix an issue that prevents the removal of a contained reference from the reference widget.
-
#2469 [form] Fix an issue that occurs when navigating from a reference widget to a filtered item in the explorer.
-
#2466 [form] Fix an issue that prevents the selection of an ancestor in the reference widget.
-
#2456 [form] Add a more meaningful message when trying to add a new value to a mono reference not empty.
-
#2487 [form] Fix an issue that prevents an error when using values not in the option list in a reference widget modal transfert.
-
#1712 [diagram] Fix an issue that triggers direct label edition even if there is no corresponding tool. Note that double-clicking no longer triggers a direct edit.
-
#2498 [diagram] Fix an issue that prevents tool name to be displayed on multi lines in react flow diagram palette.
-
#2491 [diagram] Fix an issue where multiple tool section could be opened.
-
#2509 [diagram] Fix an issue that prevents using graphical DnD in deep node in some cases.
-
#2453 [diagram] Add support for feedback messages on following actions: DropOnDiagram, DeleteFromDiagram, ReconnectEdge and EditLabel
-
#2513 [diagram] Fix the double node border displayed when node list was containing compartments.
-
#2532 [diagram] Fix the limitation on borders that prevent movement on all sides of their node parent.
-
#2543 [diagram] Prevent list items being moved to inconsistent positions
-
#2500 [diagram] Selecting an element in the explorer now correctly selects and focuses on the corresponding edge on the current diagram if there is one.
-
#2547 [diagram] Fix a bug where edge labels could be hidden/covered by other nodes
-
#2539 [diagram] Ignore hidden nodes when determining potential drop targets.
-
#2550 [diagram] Palette is now hidden on viewport or zoom change.
-
#2562 [diagram] Prevent a node to be created on the TOP header of its parent. The node will be created below the header.
-
#2562 [diagram] Fix a bug where edges would stop at the new creation handles instead of the border of their target node
-
#2549 [diagram] Prevent the arrange-all to break the layout of node list. It uses our algorithm instead of elk.js to perform the arrange-all.
-
#2591 [diagram] Give the right node descriptions to node convert handlers.
-
#2601 [emf] Fix an issue in
EditingContextCrossReferenceAdapter
where references to moved objects were lost. -
#2582 [diagram] Fix a delay in renderer of palette tools between the one from getPalette backend call and the one declared in frontend.
-
#2615 [diagram] Fix the
useDropNode
lifecycle. -
#2614 [diagram] Tool sections now correctly remember the last of their tool invoked and default to that.
-
#2593 [diagram] Fix an issue where and edge could be reconnected if not selected after a semantic change.
-
#2624 [diagram] Fix an issue where edge arrows in react flow diagrams were wrongly drawn.
-
#2625 [diagram] Fix the line style computation on edge and border node.
-
#2633 [diagram] Make sure the grid is visible when enabled, even when moving a non-droppable node
-
#2635 [diagram] Fix an error when switching between react flow representations.
-
#2581 [diagram] Fix an issue where nodes created by custom tool are always on the default position.
-
#2642 [diagram] Fix an issue where moving the viewport was slow.
-
#2640 [diagram] Compute the handle position on diagram conversion, which happens every time a diagram refresh payload is received.
-
#2647 [diagram] Split border shorthand CSS properties into non-shorthand properties for list nodes. Make some border node transparent when the node is in a list node in the convert engine.
-
#2646 [diagram] Fix an issue where the palette was re-rendering too much.
-
#2685 [diagram] Fix direct edit of edge labels with F2.
-
#2464 [diagram] Apply the fit-to-screen after the first layout
-
#2703 [diagram] Remove the explorer menu used to export diagrams as SVG image. This menu was using Sprotty export, which has been replaced by ReactFlow by default (see #2671). The only way to export diagram as SVG image is to use the ReactFlow toolbar located at the top left of each diagram.
-
#2706 [diagram] Fix an issue where node children were not correctly positioned.
-
#2687 [diagram] Fix an issue where ConnectionHandles where rerendering too much
-
#2698 [diagram] Fix an issue that prevents imageNode to be resizable.
-
#2684 [diagram] Fix an issue where the edges' arrows where not exported during the SVG export.
-
#2726 [diagram] Fix an issue that prevents last tool used in a tool section to be added to another palette.
-
#2728 [diagram] Prevents unnecessary rerenders in DiagramPanel
-
#2683 [diagram] Hide diagram element palette when the element itself is moved.
-
#2689 [diagram] Fix the borderNode moves that is no longer anchored to its parent.
-
#2682 [diagram] Fix an error in diagram selection that can lead to a node remaining selected in the diagram but not in the explorer.
-
#2605 [diagram] Fix an issue that prevents last node or edge to remain selected if the new selection is not displayed on the diagram.
-
#2919 [diagram] Reset node position if drag and drop fails.
-
#3001 [diagram] Fix an issue that inverse list order after arrangeAll
-
#2982 [diagram] Fix an issue where the drop position on container was invalid.
-
#2214 [diagram] Add support for borders nodes with React Flow.
-
#2264 [diagram] Add feedback for edge reconnection with React Flow.
-
#288 [diagram] Add support for drag and drop of nodes inside diagrams. The behavior is controlled by the new Drop Node tools defined on the target element, which can be either a node or the diagram itself (when dropping on the diagram’s background).
-
#1982 [diagram] Make the node label non required
-
#2482 [diagram] Add the support for TOP_CENTER inside label location. Other inside label locations will be supported later.
-
#2256 [diagram] Add the possibility to contribute custom shape. See the
EllipseNode
example and the documentation for more details. Note that the custom shape replaces the parametric SVG, which is deprecated and will be removed in a future version. -
#2512 [diagram] Add the support for multi-line label in reactflow. That includes the support during the direct edit. The user can use 'shift+enter' to insert a line break.
-
#2522 [diagram] Add the support for rotatable border node.
-
#2255 [diagram] Add the possibility to specify a ratio on node to guarantee its appearance.
-
#2568 [tree] Allow developers to modify the content of the explorer view
-
#2570 [form] Allow developers to modify the content of the details view
-
#2618 [core] Add an API to provide pre-process and post-process around input handling.
-
#2386 [form] Reference widget candidates are now lazily loaded when necessary.
-
#2424 [view] Align the format of description id used in Form generated from View with the one used in diagram. As a result, the identifier of a form description created from a view model will not be an UUID anymore but instead an URL based identifier
-
#2335 [form] Change the capabilities of the reference widget to open it to more customization. In order to provide a first version of those capabilities, some additional coupling has been created between the reference widget and its use in Sirius Web which may prevent its use in other applications. This coupling will be removed in the near future as a consequence, the dependencies of this code will change and some APIs of the reference widget will be broken in the near future.
-
#2380 [diagram] Add typing to reactflow hooks
-
#2430 [diagram] Improve fit to screen feature to zoom on selected nodes
-
#2288 [diagram] Make IconLabel a react flow node
-
#2289 [diagram] Use the layout strategy to layout icon label nodes
-
#2410 [diagram] Do a fit to screen on a diagram opening
-
#2268 [diagram] Create child nodes where the user has clicked.
-
#2475 [diagram] Prevent nodes to move each diagram refresh event. Only the size is still updated.
-
#2485 [view] Change the default size of View Node Description from 1x1 to 150x70.
-
#2493 [diagram] Disable double click to zoom in with React Flow.
-
#2388 [core] Added support for image overlay in icons. All icons can now be composed of multiple images, which will be overlayed on top of each other. An example of use has been added on the domain entity items.
-
#2483 [diagram] Take the header into account in the React Flow layout.
-
#2504 [diagram] Create nodes at the cursor position when using create instance or drop tools.
-
#2444 [form] It is now possible to ignore widgets with invalid descriptions
-
#2528 [core] Add support for multiple
IObjectService
. It is now possible to contribute specific services to interact with domain objects, throughIObjectServiceDelegate
. The new implementation ofIObjectService
, namedComposedObjectService
, tries first to delegate to the appropriateIObjectServiceDelegate
and then fallback to a default behavior fromIDefaultObjectService
if needed. -
#2530 [core] Add support for multiple
IEditService
. It is now possible to contribute specific services to edit domain objects, throughIEditServiceDelegate
. The new implementation ofIEditService
, namedComposedEditService
, tries first to delegate to the appropriateIEditServiceDelegate
and then fallback to a default behavior fromIDefaultEditService
if needed. -
#2555 [diagram] Add distinct edge creation handles (only visible when a node is selected)
-
#2559 [diagram] Allow to target the whole node when creating or reconnecting an edge
-
#2235 [diagram] Reduce the amount of code in DiagramRenderer
-
#2572 [diagram] Each edges now have a dedicated handle
-
#2584 [diagram] Add feedback during edge creation
-
#2608 [diagram] Improve the placement of handles on the left and right side of nodes so that they are properly centered
-
#2262 [diagram] Share diagram layout data between the subscribers of the representation
-
#2621 [diagram] Set the same ConnectionLine path as the one used to render edges
-
#2595 [diagram] Call the layout on node move and resize. Node will not be outside of their container, nor on a node header because of a move or resize.
-
#2552 [diagram] Hide the diagram palette on 'Esc'
-
#2600 [form] Add a small margin at the top of a page
-
#2693 [diagram] Ensure that the reference position is properly shared between subscribers
-
#2715 [diagram] Prevents the layout to be executed when selecting an element.
-
Add tool sections in the View DSL
-
Add support for Precondition Expressions in Tools
-
Color management in View
-
Add support for image overlay
-
Add the possibility to contribute custom palette tools
-
[ADR-107] Add support for dynamic and conditional widgets in Forms
-
[ADR-108] Improve the widget id computation
-
[ADR-109] Add support for transient data in forms
-
[ADR-110] Color Management in View
-
#2250 [core] Remove all references to notistack from
sirius-components-core
. As a result, the link between notistack and Sirius Components needs to be updated in applications using Sirius Components. See the Sirius WebToastProvider
andToastContextInitializer
to see how to give Sirius Components the relevant function(s) from notistack. Without the dependency to notistack insirius-components-core
, it will be easier to leverage native VS Code popup to display our errors. -
#2259 [tree] [sirius-web] Move the
NewDocumentModal
and theUploadDocumentModal
fromsirius-components-tree
tosirius-web
. We introduced theTreeToolBarContribution
components to contribute actions to theTreeToolBar
such as theNewDocumentModal
and theUploadDocumentModal
. As a result, theNewDocumentModal
and theUploadDocumentModal
will not be available in applications. -
#2270 [core] [sirius-web] Move
DeleteProjectModal
,NewObjectModal
,NewRepresentationModal
,NewRootObjectModal
andRenameProjectModal
fromsirius-components
tosirius-web`
. As a result, they will not be available in the Sirius Components packages anymore, and thus, applications that need such modals will need to implement them. -
#2274 [core] Remove the
Form
andFormContainer
components. They will not be provided by thesirius-components
package anymore. -
#2276 [core] [sirius-web] Move the
ErrorBoundary
HOC into sirius-web. It is not available for applications anymore, and thus, applications that need a global error handling strategy will need to implement it by themselves. -
#2279 [core] Remove the package
sirius-components
. All of its remaining content was only relevant inside of Sirius Web and it has thus been migrated to this location -
[releng] Stop minifying the code of Sirius Components packages. As a result the development of applications consuming Sirius Components packages will be easier and it will be the responsibility of the application to minify everything (which they should already be doing).
-
#2296 [diagram]
sirius-components-diagrams-reactflow
now depends onhtml-to-image
node package. -
#2236 [form] The introduction of ForDescription and IfDescription elements to the Forms DSL introduced breaking changes in the metamodel. Existing FormDescription documents will need to be modified to load correctly, and any custom widget’s metamodel will need to be regenerated using the new
form.ecore
version as reference. See [ADR-107] Add support for dynamic and conditional widgets in Forms for the details of the changes. Also, all widget descriptions now have aFunction<VariableManager, String> targetObjectIdProvider
, needed to compute the widget instance’s id. The newtargetObjectIdProvider
is required to be non-null, so any code which programmatically builds core Form Descriptions (not View-based ones), needs to pass a non-null provider. A suitable implementation is to get the id of theself
object usingIObjectService.getId()
. -
#2118 [form] The introduction of the new modal for create objects with the reference widget, apply changes for two queries
rootObjectCreationDescriptions
andchildCreationDescriptions
. It’s now possible to provide referenceKind to only get theChildCreationDescription
matching this reference. -
#2253 [diagram] The introduction of ToolSection in palette, change the DiagramDescription structure by adding a new level Palette instead of [ToolSection]. Note that palette will be removed in short-term from the DiagramDescription.
-
#2329 [form] Split of
sirius-components-widget-reference
to extract EMF-related code into a new modulesirius-components-collaborative-widget-reference
. -
#2252 [diagram] The support for React Flow based diagrams now require a
DiagramPaletteToolContext
in order to contribute custom palette tool. -
#2343 [sirius-web] Add iconURL field on
ChildCreationDescription
type. -
#2371 [view] Colors are now required everywhere. We will not hardcoded decisions in our application, instead all the references to a color should be configured. In the near future, the GraphQL schema and the frontend of
sirius-components-forms
will thus be updated to reflect this new change. -
#2371 [sirius-web] Default colors are now loaded from a default model located in
sirius-components-view/src/main/resources/studioColorPalettes.json
. They are loaded in every studio project but hidden in the explorer. They are also made readonly in the details view. Applications derived from Sirius Web may have to ensure that references to default colors are properly resolved when loading a view model. -
#2191 [view] The Color property on ImageNodeStyle has been removed.
-
#2388 [tree]
treeItem
is no longer composed of a single string for the imageURL, but of a list of strings to take into account composite images. TheIObjectService.getImagePath
API changed and now must return a list containing all the image paths. -
#2789 [diagram] Added the file ReactFlow.css to sirius-web package.
-
[releng] Switch to
typescript
5.1.6 -
[releng] Switch to
vite
4.4.9 -
[releng] Switch to
vitest
0.34.2 -
[releng] Switch to
@vitejs/plugin-react
4.0.4 -
[releng] Switch from
c8
to@vitest/coverage-v8
0.34.2 as now recommended -
[releng] Switch to
graphql
16.8.0 -
[releng] Switch to
@apollo/client
3.8.1 -
[releng] Switch to
reactflow
11.8.1 -
[releng] Switch to Spring Boot 3.1.2
-
[releng] Switch to Sirius Desktop 7.2.0
-
[releng] The frontend now depends on
html-to-image
to support the "export to SVG" action in the diagram panel of the react-flow prototype (see #2296) -
[releng] Switch to
org.apache.xmlgraphics:batik-bridge
1.17
-
#2222 [tree] Fix an issue where all the tree items where editable, even for elements that have no label.
-
#2245 [sirius-web] Fix an issue when triggering expandAll on models with multiple root objects.
-
#2333 [diagram] Fix a warning console when opening a palette on a diagram.
-
#2345 [diagram] Fix a issue on React Flow diagram when opening a palette with toolSection without nodeTool.
-
#2192 [view] Fix an issue where the Shape property of an ImageNodeStyle was not mandatory. An error message is now displayed if the Shape is not set.
-
#2309 [diagram] Fix an issue where the edge labels where not always centered on react-flow diagrams
-
#2195 [view] Fix an issue where a border color set to None would set the color to a default color, not none.
-
#2360 [form] Fix an issue that prevent creation of new object on some containment reference with the reference widget.
-
#2357 [view] Fix an issue where the color property was displayed in the Details view for an
ImageNodeStyle
though it has no impact for this type of style. -
#2266 [diagram] Keep edges visible when nodes are selected
-
#2162 [diagram] Fix an issue when performing two chained direct-edit on nodes.
-
#2348 [form] Fix a layout issue with the widget reference that can lead to the partial disappearance of action buttons.
-
#2381 [diagram] Fix an issue where the handleId of an edge was undefined.
-
#2191 [view] The Color property on ImageNodeStyle has been removed.
-
#2395 [vs-code] Fix an issue that appeared while rendering diagram with vs-code extension.
-
#2426 [sirius-web] Fix an issue where the Representations view was always empty.
-
#2429 [sirius-web] Ensure that view models can be successfully uploaded by loading the default color palettes
-
#2433 [form] Fix an issue where the readonly property of FlexboxContainerPropertySection was not correctly dispatched to children.
-
#3943 [vs-code] Fix an issue with widget reference
-
#3936 [vs-code] Add FormDescriptionEditor support in vs-code extension
-
#2185 [diagram] Add support for drop tool from the explorer with React Flow.
-
#2117 [form] Add a modal to select new values for multi-valued references
-
#2118 [form] Add a modal to create new objects on a widget reference
-
#2253 [diagram] Add the possibility of organizing palette tools into sections
-
#2236 [form] It is now possible to use
For
andIf
constructs inside the definition of Form (currently only inside Groups and Flexbox containers). Both constructs are commonly combined together, with e.g. For iterating on the different features of the current semantic element and several If inside the loop to decide which concrete widget(s) to instantiate depending on the feature’s type. They can however also be used independently (e.g. a single If outside of a For to make the presence of a widget conditional) and combined in arbitrary ways (e.g. nested loops or conditionals). Note that this first version has a known limitation: FormDescriptions which use For or If elements can not be reliably edited using the Form Description Editor. This will be fixed in the next version. -
#2254 [diagram] Add the possibility to specify precondition on diagram tools
-
#2252 [diagram] It’s now possible to contribute custom frontend-defined tools in a React Flow diagram palette. To illustrate this new feature, we contribute a new tool on the Papaya Diagram, it’s available only on OperationalActivity and it simply opens a dialog with the node label content.
-
#2044 [view] Add custom icons to edges and nodes label in view dsl.
-
#2396 [vs-code] Add VS Code Integration for React Flow diagrams.
-
#2616 [diagram] Keep a connection line visible when creating a new edge.
-
[releng] Add some automatic checks to simplify code reviews
-
[releng] Make some cypress tests more robust
-
#2296 [diagram] Add "export to SVG" action in the diagram panel of the react-flow prototype
-
#2298 [diagram] Support keyboard shortcut for "Delete from model" action on react-flow diagrams
-
#2231 [diagram] Extract the support for full screen in a dedicated hook
-
#2295 [diagram] Support direct edit on edges labels (center, start, end) on react-flow diagrams
-
#2233 [diagram] Move the behavior of the arrange all in the diagram panel component
-
#2311 [diagram] Ensure that the layout uses the same context as the rendering
-
#2208 [diagram] Add Cypress tests for React Flow.
-
#2198 [sirius-web] Add a default Color Palette on View creation
-
#2228 [sirius-web] Creating a domain from the onboard area action now initialize its name.
-
#2329 [form] Change the default representation in the details view for non containment reference from a select widget to a reference widget.
-
#2314 [diagram] Add feedback on edge selection on react-flow diagrams
-
#2313 [diagram] Support edge palette on react-flow diagrams
-
#2350 [form] Change the default tab width in form to fit the page label length.
-
#2208 [diagram] Add Cypress tests for React Flow
-
#2258 [diagram] Add support for image node labels
-
#2355 [core] Remove some warnings from Apollo client since
onSubscriptionData
andonSubscriptionComplete
are now deprecated. -
#2261 [diagram] Change the handle used by edges depending on the position of the source and target
-
#2265 [diagram] Update the viewport to show the current state of the selection
-
#2368 [form] Remove useless reference to the GraphQL version of Google Guava
-
#2343 [emf] Add icon for type selection in new object modal.
-
#2365 [diagram] Support key down and F2 to enable direct edit on edges on react-flow diagrams.
-
#2358 [form] Adds diagnostic messages to the reference widget.
-
#2260 [diagram] Keep the layout stable over time
-
#2371 [view] Add new default color palettes along with the creation of a view (theme colors, mui colors…). These color palettes are accessible in studio projects but are not visible in the Explorer view.
-
#2371 [view] Add new validation rules about colors for View diagrams & forms.
-
#2789 [diagram] Increase the size of the edgeupdater to make reconnecting an edge easier.
-
Add disable / enable concept for widgets
-
Add new custom widget to edit single and multi-valued references
-
Add support for Help Expressions in Form widgets
-
Add border style for containers
-
Add an API for filtering and ordering form pages
-
[ADR-103] Improves the existing feedback messages capability
-
[ADR-104] Add support for Help Expressions in Form widgets
-
[ADR-105] Add custom widget to edit EMF references
-
[ADR-106] Add the support for the palette with react flow
-
#2080 [tree] EditingContextRepresentationDataFetcher will filter on IRepresentation instead of ISemanticRepresentation to be able to support TreeDescription.
As such targetObjectId is removed from RepresentationMetadata.
-
#2124 [sirius-web,emf] The
org.eclipse.sirius.web.services.documents.DocumentMetadataAdapter
has been renamedResourceMetadataAdapter
and moved to theorg.eclipse.sirius.components.emf
package (insirius-components-emf
). This allows for code which does not depend on Sirius Web and the Document notion to properly display the top-level elements of a project in the UI. -
#2126 [tree] The
IExplorerDescriptionProvider
interface has been removed. TheTreeDescription
used by the Explorer view is now registered using the generalIRepresentationDescriptionRegistryConfigurer
(seeExplorerDescriptionProvider
).
-
#2058 [view] Fix an issue where the default icon for List widget candidates was missing when the candidates were not EObjects.
-
#2060 [form] Fix an issue where the list widget was displayed on a single line inside a flexbox container, no matter the length of the labels of its items.
-
#2076 [sirius-web] Fix
EditingDomainFactoryService
declaration to use an interface. -
#2032 [form] Add domainType on PageDescription in the view DSL and takes into account the impacts for the FormDescriptionAggregator. Change for
IPropertiesDescriptionRegistry
which now handlesPageDescription
directly instead ofFormDescription
. Add of theselection
variable available in some context. -
#2072 [view] Fix an NPE when trying to instantiate List/Select/MultiSelect widgets with no candidates expression specified (which is the initial state on creation). An absent/empty candidates expression now simply means the widget is empty.
-
#2064 [view] Enable completion support and other text field customizations for custom widgets
-
#2092 [form] Fix support for help expressions on the FlexboxContainer widget
-
#2088 [tree] Fix initial value of the tree filter bar
-
#2133 [workbench] Fix NPE in Related Elements view
-
#2112 [form] Fix the pages filtering in form editor.
-
#2152 [tree] Fix an issue where some characters typed in the filter bar raised exception
-
#2155 [explorer] Fix an issue where representations leaf tree items were not expanded by Expand All action
-
#2144 [form] Fix the default properties values for widgets with no style.
-
#2140 [tree] Fix Drag’n’drop when a representation is selected.
-
#2179 [tree] Fix an issue where labels of tree items matching exactly pattern typed in the filter bar were not detected.
-
#2178 [view] Fix an error when selecting an EdgeStyle.
-
#2019 [project] Fix exporting and re-importing studio projects
-
#2190 [view] Fix an issue where diagram nodes with image style didn’t use the width and height defined in view node descriptions.
-
#2211 [diagram] Fix an issue where the icons of an edge label where broken with ReactFlow.
-
#2197 [project] Fix an issue where the renaming of a project from the project page needed a refresh to be visible.
-
#2194 [view] Fix an issue where it was impossible to set the None value to a color property in a View Node/Edge Description from the Details view.
-
#2225 [form] Fix an issue where tabs displaying page name could be hidden.
-
#2220 [vs-code] Fix an issue where some React contexts where missing, the treeID variable was missing in graphQLSubscription for the explorer and the Forms were not parts of the list of representations available.
-
#2217 [diagram] Fix the svg export when the file extension was not available. It falls back to the image content type to determine the image type.
-
#2039 [project] A new "Blank Studio" project template is available to create a project with the "studio" nature but no initial content
-
#2004 [form] Add the possibility to show select options' icons.
-
#2055 [form] Added initial version of a custom widget to view & edit EMF references (both single and multi-valued).
-
#2056 [form] Add the possibility to control read-only mode for widgets with an expression.
-
#2077 [form] Add the ability to define a border style for groups and flexbox containers.
-
#2080 [tree] Add an initial label value when editing tree items label.
-
#2090 [diagram] Add the support for the arrange all on react flow diagram. The arrange all is made with elkjs.
-
#2094 [diagram] Add the support for the palette on the diagram background
-
#2125 [form] Add the API
IFormPostProcessor
to programmatically modify all forms just before they are published on the subscription. Note that IFormPostProcessor is a singleton, if several rules must be applied to several forms, a mechanism has to be added to the implementation. -
#2116 [form] Add a modal to select a new value for single-valued references
-
#2083 [diagram] Add support for edge markers with React Flow.
-
#2034 [diagram] Integrate the workbench selection in the react-flow prototype
-
#2047 [view] Activate architectural tests on
sirius-components-view-builder
-
#2036 [form] Add the concept of pageAction in form.
-
#2015 [form] Add to the payload the possibility to return a list of messages, these messages will be displayed on the UI.
There is an example of the
IFeedbackMessageService
interface usage inDomainAttributeServices
. Note that in the end, the message list will be the only way to return info in payload, the single message will be removed. -
#2010 [diagram] Add a palette on node with the alternate diagram rendering.
-
#1988 All Form widgets can now define (if relevant) a dynamically computed "help text". Widgets which define such a help text have a new "?" icon next to their labels; the actual help text is accessible as a tooltip on this icon. For View-based widgets, this materializes as an AQL
helpExpression
. The help text can include multiple lines (separated by\n
), but no text formatting. -
#2048 [diagram] Add a basic support for the resize. It is possible to reduce the size of a node less than the space needed to display all children.
-
#2064 [form] Make the
IWidgetDescriptor
API more flexible. -
#1618 [view] Split the view metamodel into dedicated subpackages.
-
#2083 [diagram] Add support for edge markers
-
#2086 [diagram] Add a panel with the default diagram actions
-
#2087 [diagram] Add support for snap to grid
-
#2115 [form] Add the possibility to choose the label position on checkbox widget. Note that the default position changes from top to end.
before : after : -
#2121 [diagram] Add new closed arrow with vertical bar to diagram arrow styles
-
#2132 [diagram] Add new closed arrow with dots to diagram arrow styles
-
#2098 [form] Enable vertical scrolling on the Reference widget’s when showing more than a few values.
-
#2135 [tree] Allow `TreeItemContextMenuContribution`s to only apply to specific trees (based on the tree id). The existing context menu contributions now only apply to the Explorer view.
-
#2128 [releng] Update generated classes copyright to apply the same format as other classes.
-
#2091 [diagram] Add support for the direct edit in the diagram with nodes.
-
#2142 [diagram] Add support for Edge labels (begin, center, end) in sirius-components-diagrams-reactflow.
-
#2097 [form] Add click handler support on the reference value of a reference widget.
-
#2123 [tree] Add support for non-selectable tree items
-
#2126 [tree] Add support for multiple Explorer-like tree definitions. These should be registered globally like other representations using a
IRepresentationDescriptionRegistryConfigurer
. TheirTreeDescription.getCanCreatePredicate()
will be invoked with atreeId
variable (a string) to test if it handles a given tree subscription requested by the front. For example the main Explorer frontend component subscribes to thetreeEvent
subscription with atreeId
of'explorer://'
, and the backendExplorerDescriptionProvider’s tests for `treeId.startsWith("explorer://")
to indicate it is the one to use to handle this subscription. -
#2096 [form] Add style for the reference widget. Use the same style properties as the list widget.
-
#2175 [tree] Change tree behavior to reveal the current value(s) in the model browser.
-
#2171 [tree] Remove from model browser subtrees with no compatible values.
-
#2168 [tree] Add option on tree to disable multiple selection.
-
#2183 [form] Add some data-testid to help cypress tests redaction.
-
#2103 [diagram] Add support for edge reconnection with React Flow.
-
#2086 [diagram] Add the support for the hide and fade of a node
The diagram panel with unhide all and unfade all:
The node palette with hide and fade:
-
#2095 [diagram] Add support for the creation of new edges in the alternate diagram rendering solution
-
#2104 [diagram] Improve the frontend rendering. Labels and node list are rendered with css.
-
Filter tree based representations
-
Add pages to form in the view DSL
-
Simplify the programmatic creation of view models
-
Add the ability to convert an odesign to a view model
-
Provide a view-based version of Flow
-
Add support for the features of the compatibility layer not supported in the view DSL
-
Add an example showing how to contribute to the details view with the View DSL
-
Improve the layout of simple nodes
-
Support custom widgets in Form representations
-
Send message to the frontend
-
[ADR-098] Use the editing context to compute the metamodels
-
[ADR-099] Filter tree based representations
-
[ADR-100] Add support for custom widgets
-
[ADR-101] Feedback messages on actions
-
[ADR-102] Expand all menu item contribution in Explorer View
-
#1897 [diagram] ToolSection are now using records
-
#1616 [core] Use Java records for all our payloads
-
#1848 [project] Remove the frontend dependency to
uuid
in favor ofcrypto.randomUUID
-
#1907 [view] The management of colors is changing, it is not possible anymore to use color directly represented by a string in the styleDescription. All the colors are now defined in a new palette object ColorPalette with the properties name and value. A view can define as many ColorPalette as desired. In the styleDescription, the definition of a color are now a select list of all the colors contained in the ColorPalette of the view
-
#1970 [diagram] Simplify the lifecycle of the diagram creation and refresh. For that, the
DiagramCreationService
will have less responsibilities. Starting now, it will stop persisting the diagram after its creation. It will start by improving a bit performances since diagrams were persisted twice in some use cases. -
#1915 [view] Add the page support in the view DSL.
-
#1304 [tree] Fix an issue where dropping an element from the tree to a diagram used the current selection instead of the dragged tree item.
-
#1839 [view] Remove default AQL expression on Create Edge and Create Node since they did not work anymore.
-
#1940 [sirius-web] Remove duplicated spring-boot-starter-test dependency in sirius-web-sample-application
-
#1952 [view] Fix a regression introduced in 2023.4.0 where View-based Forms could no longer be instantiated
-
#1968 [sirius-web] Fix a regression introduced with the feature 1907, where for the papaya studio, colors are only searched in the first ColorPalette.
-
#1991 [form] Fix an issue where widgets from different groups share the same ID.
-
#1305 [diagram] Fix an issue where the default tools of the palette’s tool sections where not updated.
-
#2008 [view] Make edge tool more robust for applications which use a custom IViewRepresentationDescriptionSearchService
-
#2027 [diagram] Support both versions of the ITool interface in the imageURL data fetchers
-
#2026 [view] Display the layout strategy description of a node description in the explorer view again
-
#2018 [formdescriptioneditors] Fixed form editor selection to display the page containing the first element selected.
-
#1883 [sirius-web] Add the possibility to programmatically set some metadata such as specifics natures to a project. These natures can be used later to enable or not some capabilities on a project. This work will start by adding the ability to filter the project’s domains. A large set of features will have to be updated in order to stop considering the list of metamodels available in an editing context as a certainty.
-
#1946 Enabled child extenders in the View DSL implementation. This allows downstream projects and applications to provide their own sub-types of the DSL types (e.g. new WidgetDescriptions). In addition to registering the extension metamodel itself, users must provide a
ChildExtenderProvider
bean for their extensions to be properly integrated. -
#1918 [tree] Its is now possible to filter tree items in trees. After selected a tree item, hit Ctrl+f (or Cmd+f on macOS) to enable the filter bar.
All visible tree items containing the value typed in the filter bar will be highlighted. The filter button inside the filter bar allows to filter (hide) all visible tree items not containing the value typed in the filter bar.
-
#1914 [form] It is now possible for applications to provide their own custom widgets without forking Sirius Components. See the documentation for more details.
-
#1830 [layout] This feature is experimental and can be activated on a diagram by adding "__EXPERIMENTAL" to its name. The new algorithm does the minimum possible to place node without overlap.
-
|#1985 [sirius-web] It is now possible to use in-memory View-based representations by registering them in the new
InMemoryViewRegistry
. These representations can be created programmatically or loaded from.view
EMF models on startup, and do not need to be stored as documents inside a project in the database. -
#1921 [view] Added a project sirius-components-view-builder.
Introducing providers interfaces to help creating view programmatically.
Introducing a generator of builders aimed to help creating view programmatically, the generation makes use of emf-merge and modifications to these builders can be annotated to live during future regeneration.
-
#1912 [core] Add the possibility to send feedback messages to the frontend after an action.
-
#1989 [diagram] Contribute a new way to render diagrams to evaluate an alternate layouting strategy
-
#1996 [explorer] Add an Expand All menu item contribution to the Explorer View.
-
#1966 [view] Add Selection Description in the View DSL
-
#1869 [tree] Navigate to the first child with the right arrow if a node is expanded. Navigate to the parent with the left arrow if a node is collapsed
-
#1621 [project] Migrate the onboard area to Material-UI
-
#1852 [layout] Single position event takes the diagram element id and the double position event takes the source id and target id
-
#1971 [layout] Add the first new layout engine integration test
-
#1831 [layout] Improve the data structure of the layout algorithm
-
#1975 [emf] The getContents method from the ObjectService will use the eObject’s IEditingDomainItemProvider if it exists.
-
#1916 [sirius-web] We supply an example of how to provide your own Details view definition for specific elements using a View-based FormDescription. See
org.eclipse.sirius.web.sample.configuration.DomainPropertiesConfigurer
andorg.eclipse.sirius.web.sample.services.DomainAttributeServices
for a working example that can be easily adapted. -
#2003 [view] Make reconnection tool more robust for applications which use a custom IViewRepresentationDescriptionSearchService.
-
[ADR-094] Provide better control on contextual palette’s content
-
[ADR-095] Use richer data types in the View DSL definition
-
[ADR-096] Distinguish the containment kind of view creation requests
-
[ADR-097] Separate the layout data structures from the diagram data structures
-
1643 [core] Removed our dependencies to Spring Security
-
#1592 [view] In View-based diagram definition, all tools applicable on a given element are now configured inside the new Palette element directly inside the element (diagram, node or edge) description.
-
#1761 [core] Remove
sirius-web-graphql-schema
since it was not really used anymore -
#1825 [diagram] Distinguish the containment kind of view creation requests
-
#1840 [diagram] The GraphQL field Diagram#autoLayout has been removed. We only use DiagramDescription#autoLayout to retrieve the autolayout state of a diagram.
-
#1638 [view] The lifecycle of the representation descriptions from the view DSL is now aligned with the lifecycle of the metamodels computed from the Domain DSL.
As such, the representation descriptions available for an
EditingContext
are now computed and transformed when theEditingContext
is loaded. It will thus improve the performances of the lookup for representation descriptions since they will be referenced directly by theEditingContext
. This does not come with any changes to the interfaceIEditingContext
. Alternate implementations ofIEditingContext
do not have to keep the representation descriptions in their implementation ofIEditingContext
.By loading representation descriptions from the View DSL when the editing context is being loaded, we are making the editing context the sole source of truth of the representation descriptions available.
As a result, any datafetcher requiring a representation description will now have to use the editing context event processor registry to find the requested representation description. We previously had some datafetcher which were using the
IRepresentationDescriptionSearchService`
withnull
as a value for the editing context. Such calls will not work anymore sincenull
will not be an acceptable value anymore by our implementation of this interface. -
[diagram] Changed the type of
Node#descriptionId
andEdge#descriptionId
fromUUID
toString
-
[view] Changed the values of {Diagram|Node|Edge}descriptionId computed by the view converter:
-
siriusComponents://diagramDescription?sourceKind=view&sourceId=UUID_OF_DOCUMENT&sourceElementId=UUID_OF_SOURCE_ELEMENT
-
siriusComponents://nodeDescription?sourceKind=view&sourceId=UUID_OF_DOCUMENT&sourceElementId=UUID_OF_SOURCE_ELEMENT
-
siriusComponents://edgeDescription?sourceKind=view&sourceId=UUID_OF_DOCUMENT&sourceElementId=UUID_OF_SOURCE_ELEMENT
-
-
#1890 [view] Tools are now retrieved from their corresponding View Description
Removing dependencies from sirius-components-compatibility-emf in the canHandle methods of sirius-components-view-emf services
-
#1674 [diagram] The fade and hide tools were available on the background of the diagram
-
#1710 [diagram] Ensure that the edit box of an empty edge label is not located at the wrong position
-
#1716 [workbench] Fixed the "Related Elements" view when activated on dynamic instances
-
#1591 [emf] Creating root elements in a model will now use the EPackages loaded in the package registry of the editing domain
-
#1746 [form] Rich-text editor toolbar on forms representations are not grayed when read-only
-
#1744 [form] Checkboxes on forms representations are not grayed when read-only
-
#1639 [core] Support schemaLocation and extendedMetaData for JSON resource
-
#1760 [project] Remove an invalid attribute from our pom.xml
-
#1675 [explorer] Align tree items without children with their siblings
-
#619 [explorer] Fix order of the models in the explorer
-
#1604 [diagram] Fix fade does not work on border nodes
-
#1773 [workbench] Fix editors area tab title may hide close button
-
#1541 [workbench] Editors area can overflow on Details view
-
#1708 [form] Fix the impossibility to move a toolbar action from a group to another with no toolbar actions in FormDescriptionEditors.
-
#1748 [chart] Underline and strike-through style options are not taken into account for BarCharts.
-
#1688 [form] The title of the Details view will not be wrapped on multiple lines anymore
-
#1602 [diagram] The connector tool does not work with descriptions from the View DSL
-
#1833 [explorer] Fix Explorer toolbar and selected item background color width
-
#840 [view] Add the ability to create multiple nested views for unsynchronized node descriptions. For that, specifiers will be able to use properly the variable name property of the create view model operation. The result returned and captured in this variable name will not be the real node since it will be rendered later but it is a placeholder which contains some properties of the real node such as its id which can be used to create the nested views.
-
#1838 [diagram] Collapsing and expanding a node with unsynchronized child nodes will now properly restore the child nodes
-
#1775 [core] Handle representation/document/project label length in UI (by adding ellipsis) and in sirius-web SQL schema (up to 1024 characters)
-
#1829 [diagram] Node descriptions from the view DSL can now reference concepts outside of their containing diagram description
-
#1851 Fix an issue where the explorer could be expanded while not synchronized
-
#1785 [form] Fix name collision on labelFields GraphQL fragment
-
#1908 [workbench] Fix an issue where the Explorer and Details Views titles could be overflowed
-
#1929 [view] Fix an issue where direct edit on View based diagram elements could lead to infinite loop
-
#1891 [projects] The 'Show all templates' dialog was not functional from an empty state (with no existing project)
-
#1934 [formdescriptioneditor] Fix the renaming of a form Description Editor
-
#1695 [view] Add a precondition expression to the node description
-
#1527 [diagram] Add the new layout data structure which will be used by the new version of our layout algorithm. This new data structure will be used by the frontend if the name of a diagram ends with
__EXPERIMENTAL
. This will allow us to easily compare the current layout algorithm and the new one. -
#1846 [diagram] A debug mode has been added for diagrams. This debug mode can be activated by setting the configuration property
sirius.components.diagram.debug
totrue
. Once activated, this debug mode will display additional information on diagram elements to help debug what has been computed by the backend. -
#1902 [sirius-web] Add new data fetchers to sirius-web allowing to execute AQL requests
-
#593 [domain] Add support for referencing and extending other custom domains
-
#1518 [project] Remove the "format all code" save action in order to let us write code without having to specify "@formatter:off" everywhere. It will also make it easier for us to use IDEs other than Eclipse to contribute to Sirius Web
-
#1632 [core] Start documenting the variables available for each operation in our various representations
-
1565 [view] The definition of the View DSL now uses richer data types for most attributes. This has no visible effect at the moment, but will allow better documentation, validation and configuration later.
-
[studio] Add a project template for the Papaya domains and view
-
#1667 [diagram] Make the contextual palette self contained
-
#1858 [project] Improve project template cards layout
-
#1879 [core] Add an annotation
@Builder
to identify builders and simplify some use cases involving the builder pattern. It is now possible to use builders in records and it is a first step toward the deprecation of the@Immutable
annotation in favor of more records. -
[diagram] Added a common interface
IDiagramElement
that is implemented byNode
andEdge
-
#1904 [project] Add templates to track our work on shapes and scopes in
doc/iterations/YYYY-MM/{scopes/scope.adoc|shapes/shape.adoc}
. At the end of every iteration, we will work on the shape of the new iterations and validate them by merging a first version.During the iteration, while developers will progress on their work, they will update the scope. We will not create a new commit for each minor change in the scope, instead the scope will evolve while a pull request is updated. The progress on a task could thus be shared with a draft pull request with the rest of the team.
-
[ADR-085] Add support for project templates
-
[ADR-086] Add support of edges as targets of single click tools
-
[ADR-087] Provide the variables available to each operation
-
[ADR-088] Align the lifecycle of views on the lifecycle of domains
-
[ADR-089] Add a URL based kind to representation description
-
[ADR-090] Improve support for compartments
-
[ADR-091] Add support of the compartment expand/collapse
-
[ADR-092] Add support for diagram nodes labels' auto-wrap
-
[ADR-093] Improve node size control
-
[core] Records are now used as the implementations of
IInput
-
#1574 [diagram] In
diagram.graphqls
,SingleClickOnDiagramElementTool
member’stargetDescriptions
is now of new typeDiagramElementDescription
instead ofNodeDescription
. -
#1614 [graphql] Add a SuccessPayload to replace most basic payloads
-
#1615 [diagram]
DiagramDescription.getTools()
has been removed. It was not actually used, as tools have long been found inDiagramDescription.getToolSections()
instead. -
#1588 [project] Moved the action "New Model" and "Upload model" in a new tree toolbar
-
#1614 [graphql] Add a SuccessPayload to replace most basic payloads, add GQLWidgetOperationPayload to replace most basic Operation
-
#1374 [layout] The border node position is now updated when its parents bounds has changed (e.g. when a node increases its size because of a child creation).
-
#1580 [diagram] Border nodes do not return to their previous position after they have been moved manually.
-
#1522 [diagram] Rectangle nodes with a header can now be resized.
-
#1529 [diagram] Improve the layout of newly created edges with a begin or end label
-
#1607 [tree] Make sure that a recently closed representation can be opened again
-
#1686 [diagram] Fix SVG export of the wrapped labels
-
#1692 [core] JPEG images where previously ignored if using a
.jpg
extension instead of.jpeg
. They are now correctly supported -
#1741 [diagram] Border node placement specified with ELK configuration not taken into account anymore
-
#1720 [diagram] Fix the position where newly created views appear on a diagram after a drop
-
#1567 [project] Add support for project templates. Project templates are defined in the backend using the
IProjectTemplateProvider
(template metadata) andIProjectTemplateInitializer
(project contents) interfaces. -
#1456 [diagram] Add the ability to filter the edge created using some graphical variables
-
#1456 [view] Add a precondition expression to the edge description
-
#1463 [diagram] Add support for the direct edit of the start and end labels of an edge. Two new tools can be defined on an edge in order to specify how the begin and end labels can be edited.
For each of those tools,
Edit Begin Label
andEdit End Label
in the previous screenshot, the specifier can also enter anInitial Direct Edit Label Expression
which will be used to compute the initial value of the label when the edition will be triggered. This is mostly used to support the edition of computed labels. The variablessemanticEdgeSource
andsemanticEdgeTarget
are now available both in theInitial Direct Edit Label Expression
and while evaluating the behavior of the tools themselves.In order to edit a begin or end label of an edge, it is necessary to double click on said label. Using
F2`
will trigger the edition of the center label of the edge. -
#1496 [layout] Add the support for free form compartment.
-
#1624 [diagram] Add support for expand/collapse of nodes. A node can be collapsed or expanded if its view description is collapsible or if its sirius desktop description is a region (Horizontal or Vertical stack).
-
#1624 [diagram] The
collapsingState
of a node is now available as a variable to compute its style. As a result, it is possible to create a conditional style which will use the collapsing state quite easily. Using the view DSL, one can use the expressionaql:collapsingState.toString() = 'COLLAPSED'
as a condition to create a style which will be used when the node is collapsed. -
#1584 [diagram] Studio makers can indicate whether or not a node type can be resized by the end-user or not. Nodes which can not be resized (or have not been resized yet) have their actual size computed from the NodeDescription’s sizeProvider in a uniform way for all node types. Nodes which can and have been resized keep their user-chosen size across both incremental and full layout (as long as the requested size is compatible with other constraints).
-
#1583 [diagram] Add support for diagram nodes labels' auto-wrap
-
#1588 [tree] Add support for enabling/disabling the synchronization between the explorer and the current selection. When it is enabled, if the current selection is not visible in the explorer, it will be revealed by expanding the relevant tree items. On the other hand, when it is disabled, the selection will be visible in the explorer but no tree items will be automatically expanded.
-
#1559 [view] It is now possible to specify the (computed) width and height separately for a Node Style (instead of a single size before, which always resulted in square shapes).
-
#1560 Remove unused
EditingContextCompletionProposalsDataFetcher
-
#1426 [view] Add missing data type on initialDirectEditLabelExpression
-
#1456 [diagram] Add new methods to the diagram rendering cache to compute the parent, ancestors, children and descendants of a given node identifier
-
#1574 [diagram] Single click tools can now be executed on Edges in addition to Nodes
-
#1569 [view] Only delegate semantic deletion to the element’s Delete Tool
-
#1562 [view] The default/canonical behaviors for diagram elements can now be invoked explicitly from AQL expressions. See
org.eclipse.sirius.components.view.emf.CanonicalServices
. This feature will be used only for internal for now. There will be breaking changes on this topic soon. -
#1596 [diagram] Sirius Web now includes two example parametric SVG images named "Package" and "Class". They can be used as any custom image (e.g. in a View-based diagram), but their precise shape is partially computed on the backend, in this case to adjust the size of the label compartment to the actual label’s width.
-
#1563 [view] If a diagram description does not explicitly configure a delete/direct edit/element creation tool, the corresponding behavior is simply disabled. By default, new nodes, edges and tools are explicitly configured to invoke the default canonical behavior; it is just made explicit in the model and can now serve as a based or removed to disable the behavior.
-
#1558 [diagram] When a diagram is read-only, the following actions are now disabled: Arrange All, Reveal hidden and Reveal faded elements, and triggering direct edit or delete from the keyboard.
-
[ADR-075] Add support for a basic image widget
-
[ADR-076] Allow users to upload their own custom images
-
[ADR-077] Improve support for direct edit in diagram
-
[ADR-078] Add support for toolbar actions in Form/FormDescriptionEditor
-
[ADR-079] Add support for a rich text edition widget
-
[ADR-080] Add support for styles preview in FormDescriptionEditor
-
[ADR-081] Add support for multi-groups in Form/FormDescriptionEditor
-
[ADR-082] Add support for optional text completion on textfield widgets
-
[ADR-083] Add the possibility to hide or fade a diagram element
-
[ADR-084] Improve support for View elements' tools icons
-
#1437 [backend]
sirius-components-formdescriptioneditors
now depends onsirius-components-forms
.IFormDescriptionEditorWidget.java
have been deleted,FormDescriptionEditor.java
now relies onAbstractWidget.java
fromsirius-components-forms
. -
#1437 [graphql]
formdescriptioneditor.graphqls
now depends on widgets fromforms.graphqls
-
[backenđ] Upgrade to Apache Batik 1.16.0 (from 1.14.0)
-
[backend] Switch to Spring Boot 2.7.5
-
[backend] Switch to EMFJson 2.3.3
-
#1431 [form] The default implementation of the Property View should not try to handle a multi valuated EStructuralFeature of type String
-
#1448 [formdescriptioneditors] Create a default style for new TextArea widgets like for the others
-
#1397 [view] Fix an issue where canonical tools of reused node descriptions were not available
-
#666 [diagram] Make the contextual palette display the tools of the current selection
-
#1442 [diagram] Selecting an element in a diagram can hide others
-
#1462 [diagram] Restore the missing hover / selected feedback on parametric SVG style
-
[diagram] When clicking on a node in a diagram, the creation tools list is now always in the same order
-
#1485 [diagram] Select the relevant edge reconnection tools
-
#1401 [tree] The setSelection is called even if the selection did not changed
-
#1482 [core] Allow CustomImageLoader to get images from packaged projects. To import images from local files on startup, set
-Dorg.eclipse.sirius.web.customImages.pattern="file:///local/path/to/folder/with/files/"
. To import images from a folder inside a packaged JAR, use-Dorg.eclipse.sirius.web.customImages.pattern="classpath:path/in/jar/
"
. The syntax supports Ant-style path patterns. -
#1517 [core] Remove the error for strings which are not marked as non-externalized
-
#1453 [diagram] Add new arrow styles Circle, FillCircle and CrossedCircle
-
#1364 [form] Add support for a basic image widget
-
#1386 [project] Users can now upload their own images from a project’s new settings page (available in the project menu). These images can be displayed in forms using the new image widget, or in View-based diagrams using and ImageNodeStyleDescription and selecting the image in the list of available shapes.
-
#1457 [diagram] Make possible to provide an expression on the label edit tool in View DSL to initialize the direct edit label text field. We kept the current behavior for the compatibility layer but, in fine it will be possible to leverage the direct edit tool Input Label Expression to initialize the direct edit label text field.
-
#1346 [form] Add support for a Rich Text edition widget. The widget behaves in a similar way to the existing Textfield and Textarea widgets, except that the text value should be valid Markdown, and can be edited in a WYSIWYG way by the end user.
-
#1428 [layout] Add support for List layout compartment. We rely on the layout strategy engine handler switch and the layout engine handler switch to dispatch to the correct behavior depending on how children should be laid out and the type of the node. This kind of architecture has already been implemented for model operation for the View DSL. Nothing has changed if nodes have to be laid out freely.
-
#1439 [form] Add support for toolbar actions in Form/FormDescriptionEditor
-
#1437 [form] Add support for styles preview in FormDescriptionEditor `- #1494 [form] Add width and height attributes to BarChart
-
#1510 [form] Add support for multi-groups in Form/FormDescriptionEditor
-
#1504 [releng] Add Cypress-based integration tests
-
#1446 [diagram] Add support for hidden and faded edges
-
#1426 [form] Add support for optional text completion on textfield widgets. This is enabled in the View DSL properties for domain types and AQL expressions
-
#1507 [diagram] Missing variables during execution of a source reconnection tool from the View description (otherEnd,semanticOtherEnd,edgeView and editingContext)
-
#1521 [view] Canonical creation tools from contextual toolbar have no icons
-
#1467 [layout] Elk is now able to compute a list layout. It is an internal change, and thus, nothing should change for the end user
-
[ADR-069] Add support for children layout strategy
-
[ADR-070] How to contribute a new diagram node style
-
[ADR-071] Add parametric SVG node style
-
[ADR-072] Add support for the edition of routing points
-
[ADR-073] Add support for intermodel references (inside the same project)
-
[ADR-074] Add support for edge reconnection
-
#1300 [core] Rename SiriusWebJSONResourceFactoryImpl to JSONResourceFactoryImpl
-
#1301 [core] Add support for having intermodel references. Now, the URI of resources added in a ResourceSet must have a
scheme
. Otherwise, you will encounter exceptions. -
#1064 [core] Remove the URL utility file and ask for the
httpOrigin
instead. Consumers of Sirius Components which rely on the behavior of the URL utility file should instead maintain their own utility file since it is dependent on our build technology and development process.
-
[backend] Switch to EMFJson 2.3.2-SNAPSHOT. It contains better management of proxy resolution in case of intermodel references
-
#1368 [diagram] Do not render rectangle view children twice
-
#931 [layout] When the delete tool of an edge is used, the position of other edges are not affected.
-
#1392 [core] Fix EditingContextCrossReferenceAdapter for derived references
-
#1411 [vscode-extension] Fix a 404 error on the VSCode extension page when loading the image
-
#1454 [vscode-extension] Fix a misprint in VSCode Extension README
-
#1339 [layout] Add concept of layout strategy. The purpose of layout strategy is to split the style of a node from the way a node lays out its children.
-
#1385 [releng] Migrate the backend and frontend code of Sirius Web to Sirius Component. The purpose of this migration is to facilitate the maintenance of these two projects (one pull request instead of two different).
-
#997 [diagram] Edge routing points are not reset when one of the edge end is moving
-
#1387 [releng] Migrate VSCode Extension to Sirius Components.
-
#1423 [form] In-browser spell-checking is now disabled on textfields.
-
#1316 [diagram] Support parametric svg node style
-
#997 [diagram] Add support for edition of routing points in diagrams
-
#1397 [diagram] Add support for reused node descriptions
-
#780 [diagram] Add support for edge reconnection. Edge reconnection descriptions can be defined either inside a classical Sirius desktop VSM or, using the View DSL. While using the Sirius desktop VSM you can define a tool to do both target and source reconnection, you will need to define a tool to reconnect the source and another one to reconnect the target using the View DSL
-
[ADR-067] Add support for injecting platform services/beans into Java service classes used by studios
-
[ADR-068] Improve support for precondition expression from representation description
-
#1311 [releng] Allow reusing
sirius-components-emf
without dependencies to the domain or view DSL. As a result, two new projectssirius-components-domain-emf
andsirius-components-view-emf
have been introduced in order to connect the EMF compatibility layer with the domain and view DSL. Consumers ofsirius-components-emf
may have to update their import. The behavior of the code has not been modified -
#1311 [releng] Allow reusing
sirius-component-emf
without dependencies to Sirius Desktop. As a result, a new projectsirius-components-compatibility-emf
has been added in order to provide EMF support for the Sirius desktop compatibility layer. Consumers ofsirius-components-emf
may have to update their import. The behavior of the code has not been modified -
#1237 [releng] Remove the two hardcoded dependencies to Spring MVC from Sirius Components. As such, reusing most components from Sirius Components without Spring MVC will be easier. The only projects with a dependency to Spring MVC are located in the
web
package -
#1312 [graphql] Provide the datafetchers used by the representations. Starting with the validation representation, we will provide datafetchers directly in Sirius Components to simplify the integration of Sirius Components in various applications. The project
sirius-components-graphql-utils
has been merged intosirius-components-graphql-api
since they had similar dependencies. -
#1231 [charts] The components related to charts have been extracted to
@eclipse-sirius/sirius-components-charts
-
#1231 [form] The components related to forms have been extracted to
@eclipse-sirius/sirius-components-forms
. The views and representations have adopted the suffixView
andRepresentation
respectively. As an example, the componentFormWebSocketContainer
is now namedFormRepresentation
-
#1231 [formdescriptioneditors] The components related to formdescriptioneditors have been extracted to
@eclipse-sirius/sirius-components-formdescriptioneditors
. The representation has been renamedFormDescriptionEditorRepresentation
. -
#1231 [core] Since the core parts of Sirius Components cannot possibly known the components of the representations installed in a project, the context
RepresentationContext
will not provide a default value anymore. In a similar fashion, theServerContext
from@eclipse-sirius/sirius-components-core
will now be required in order to let Sirius Components retrieve the URL of the backend. -
#1231 [tree] The trees related components and the explorer have been extracted to
@eclipse-sirius/sirius-components-trees
. TheExplorerWebSocketContainer
has also been renamedExplorerView
to match the naming convention of the other views. The components migrated have also been fully converted to XState and MaterialUI -
#1231 [workbench] The workbench was depending on some tree components in order to compute the list of
TreeItemContextMenuContribution
to use in the explorer. This dependency has been removed and as a result, users of the workbench component will have to rely on theTreeItemContextMenuContext
to provide the contributions -
#1231 [workbench] Move the workbench related code to
@eclipse-sirius/sirius-components-core
. This move includes components such asWorkbench
,RepresentationContext
,WorkbenchViewContribution
for example -
#1231 [diagram] Move the code of the diagram and the selection wizard in the packages
@eclipse-sirius/sirius-components-diagrams
and@eclipse-sirius/sirius-components-selection
-
#1231 [core] Some code remain in the soon to be deprecated Sirius Component package
@eclipse-sirius/sirius-components
. Most of this code will either be moved to Sirius Web or be removed entirely (such as the old non MaterialUI widgets) -
#1288 [core] The
EditingContext#representationDescriptions
field now takes anobjectId: ID
as argument instead of just the object’skind: ID
. This allows representation precondition expressions to be more precise as they know the actual candidate instance, not just its type. -
#1281 [form] The
LinkDescription
now requires adisplayProvider
and astyleProvider
. ThedisplayProvider
is used to display the text of the hyperLink. The GraphQL API has also been changed with two additional fields on the typeLink
:display
andstyle
(optional). The front-end use thedisplay
value instead of thelabel
value to display the hyperlink text. Thelabel
value is displayed before the widget to be consistent with other properties sections. -
#1320 [diagram] The
selectedNode
variable is now always defined in the context of drop handlers and single-click tools. Previously, if the target of the drop or single-click tool was the diagram itself (instead of a node), the variable was not defined at all. Now it is defined butnull
in these cases. -
#1289 [core] The
representationDescriptions
GraphQL query now returns a new attribute nameddefaultName
in addition to thelabel
andid
. For view-based representations and , thedefaultName
is computed from theRepresentationDescription’s `titleExpression
.
-
[frontend] Update the format of the
package-lock.json
by moving to node 18.7.0 and npm 8.15.0. This will allow us to use the latest version of npm which comes with improvements for its workspace support. This will also help us move beyond the change in behavior of node 16.15.1 and npm 8.6 -
[frontend] Update the version of
jest-transform-css
used in order to fix the long standing issues of its incompatibility with the version ofpostcss`
that we use. We will thus usepostcss 8.4.14
andjest-transform-css 4.0.1
now -
[frontend] Remove our dependency to
ts-transform-graphql-tag
since it is not maintained and its dependencies are outdated and since it is used to lower the dependency withgraphql-tag
which we will stop using soon -
[frontend] Remove the peer dependency to
graphql-tag
. It will not be required for projects consuming Sirius Components now -
[frontend] Remove the peer dependency to
subscriptions-transport-ws
. It is not required by Sirius Components and consumers of Sirius Components will be free to switch tographql-ws
instead of even to not rely on web socket at all to communicate with the backend. Sirius Components itself does not need to specify how the communication with the backend will be done -
[frontend] Switch to
@apollo/client 3.6.9
,@material-ui/core 4.12.4
,@material-ui/icons 4.11.3
,graphql 16.5.0
,prop-types 15.8.1
,sprotty 0.12.2
andxstate 4.32.1
. Various development dependencies have also been updated such as typescript, rollup, prettier etc -
[backend] Switch to Spring Boot 2.7.2
-
[backend] Switch to the managed version of GraphQL Java, as of Spring Boot 2.7.2, we will thus use GraphQL Java 18.2
-
#1287 [form] Fix wrong VariableManager scope usage in ViewFormDescriptionConverterSwitch.
-
#1250 [diagram] Fix invoke tool effect hooks dependencies (to avoid evaluating the same tool result multiple times)
-
#1347 [form] Fix Conditional Style menu items (two menu items available instead of one)
-
#1349 [form] Fix Form Representation scrolling on Y axis
-
#1351 [form] Fix Style/ConditionalStyle not applied to List Widget
-
#457 [form] Fix rename Form representation from the project explorer
-
#1354 [form] Fix rename FormDescriptionEditor representation from the project explorer
-
#1356 [view] Semantic Candidates Expression are bypassed on Unsynchronized children nodes
-
#1231 [releng] Organize backend projects into scope-specific packages
-
#1231 [releng] Switch to node 18.7 for the continuous integration
-
#1231 [releng] Store code coverage results for the frontend packages just like backend packages
-
#1231 [releng] Fix every unit tests provided in the various frontend packages
-
#1318 [studio] Java service classes used by studios (via
IJavaServiceProvider
) can now ask to be injected with any Spring bean available in the application context (for exampleIObjectService
or other Sirius Components services they need for their implementation). -
#1288 [core] Improve support for precondition expression from representation description
-
#1269 [diagram] Prevent dropping elements in a read only diagram
-
#1284 [form] Remove tab when Form representation contains only one page
-
#1329 [studio] The
convertedNodes
variable which was exposed to node create tools for View-based diagrams is now available for all tools of these diagrams -
#1289 [core] Improve support for title expression from representation description.
-
#1341 [diagram] Expose source and target node variables during EdgeTool execution
-
[core] The input and payloads manipulated by the
EditingContextEventProcessor
can now be logged using ` logging.level.org.eclipse.sirius.components.collaborative.editingcontext.EditingContextEventProcessor=trace`
-
#1265 [form] Add support for flexbox containers on FormDescriptionEditors
-
#1272 [form] Add support for button widget on FormDescriptions
-
#1273 [form] Add support for button widget on FormDescriptionEditors
-
#1266 [form] Add styling support on bar-chart and pie-chart Widgets in View DSL
-
#1275 [form] Add support for Label widget in Form representation
-
#1281 [form] Add support for Link widget in Form representation
-
#1292 [form] Add support for List widget in Form representation
-
[ADR-60] Add support for d3 bars data-structure and bar-chart representation
-
[ADR-61] Add support for flexbox containers on form description
-
[ADR-62] Switch to a monorepo layout
-
[ADR-63] Simplify the Sprotty integration
-
[ADR-64] Add support for a ToggableAreaContainer in forms
-
[ADR-65] Add support for a tree widget in forms
-
[ADR-66] Add a new "Related Elements" view
-
#1141 [frontend] The
PropertiesWebSocketContainer
which was hard-coded to display thepropertiesEvent
subscription has been made more generic and renamedFormBasedView
. It now takes an additional prop namedsubscriptionName
so that it can be bound to other subscriptions (which must follow the same API/protocol and send Form payloads). To integrate the "Details" view inside a workbench, one must now use the newDetailsView
component (which simply configuresFormBasedView
to listen topropertiesEvent
as before).
-
The frontend now depends on
@material-ui/lab
to support the new tree widget (see ADR-065).
-
#1245 [form] Fix Dropping widget from FormDescriptionEditor opens new tab on Firefox
-
#1253 [studio] Fix the computation of unsynchronized semantic elements in studios (which broke the use of the Create View operation)
-
#1193 [layout] Fix edge layout on diagrams with node lists.
-
#1260 [workbench] Fix download project fails when model contains a Form Description Editor
-
#1268 [form] Use literal instead of name for Enum label & newValue
-
#1308 [workbench] Fix the vertical overflow issue on the view header
-
#1306 [form] Fix unable to set None value from a Select widget from View Form
-
#1242 [view] Provide icons for View DSL Widgets and FormDescription
-
#1214 [form] The mandatory label attribute which was available in all concrete widget types is now explicitly part of the common supertype.
-
#1215 [form] Widgets can now optionally specify an
iconURL
. It is not used in the default UI for the details view or forms representations for now, but icons (if present) are visible in the toggle buttons bar for groups using the newdisplayMode = TOGGLEABLE_AREAS
. -
#1141 [workbench] It is now possible to add a "Related View" contribution to the workbench. It behaves like the "Details" view in that it reacts to the selection by displaying a Form, but is designed to display contextual information about the selected element (i.e. which elements it points to and which elements point to it for example). The actual definition of the application (e.g. Sirius Web), which must provide a single bean implementing the new
IRelatedElementsDescriptionProvider
interface.
-
#1212 [form] Add styling support on Textfield Widget in View DSL
-
#1233 [form] Handle styling of the View DSL widgets
-
#1236 [form] Handle conditional styling of the View DSL widgets
-
#1203 [charts] Add support for d3 bars data-structure and bar-chart representation
-
#1228 [charts] Add support for bar-chart in view DSL
-
#1248 [charts] Add support for pie-chart in Form representation
-
#1255 [form] Add support for charts in form descriptions editor
-
[ADR-50] Add support for multiple selection entries in the details view
-
[ADR-51] Add support for form descriptions in the View DSL
-
[ADR-52] Add support for EditingContext actions
-
[ADR-53] Add support for form descriptions in the view converter
-
[ADR-54] Add the support of custom anchors on the frontend side
-
[ADR-55] Stop considering the source and target anchors as routing points anymore
-
[ADR-56] Add support for a form descriptions editor
-
[ADR-57] Add the ability to minimize the content of a site
-
[ADR-58] Compute dynamically the connector tools
-
[ADR-59] Add support for styling of the widgets and charts in the API, DSL, converter and compatibility layer
-
#1088 [core] Change the type of
IRepresentationDescription#id
from UUID to String. This will allow us, when we will receive an operation to perform with a given representation description identifier, to determine if this operation should be handled by the Sirius Desktop compatibility layer, the View support or by a programmatic API -
#1138 [workbench] The APIs for the
Panels
andSite
components have been modified to support closing/opening the panels. In particular,Panels
now handles all three parts of the layout (the left and right sites and the main area) directly instead of using recursive two-sided panels. See ADR-54 for the details. -
#1155 [workbench]
WorkbenchViewContribution
now require anicon
prop -
#1155 [core] The palette used by Sirius Components now require two additional colors for the navigation area. The type of the new palette is described in
frontend/src/materialui.ts
. Users of the fallback theme can upgrade without having to add those new colors since they are provided by default. -
#966 [core] The source and target edge anchor are not considered as routing points anymore. Edges of old diagrams may have unexpected behavior since new edges will have two less routing points than existing edges in old diagrams. For further explanation see ADR-054.
-
#1180 [diagram] An implementation of
IConnectorToolsProvider
has to be made for the connector tool to work.
-
#1154 [diagram] Display the palette where the click has been made, not where the cursor is. With the edge animation it was possible for the palette to be displayed at a wrong position which was making possible to create a floating edge.
-
#1148 [diagram] Fix a lot of cases where removing an edge will change the layout of some other edges. This behavior will still happen when it will exist two edges between the two same elements and one of the edge is removed, the other edge will probably take the layout of the removed edge.
-
#1176 [diagram] Fix potential ConcurrentModificationException in ViewDiagramDescriptionConverter when manipulating diagrams. This bug was introduced by the #1152.
-
#1171 [workbench] Fix the overflow behavior of the side panels when they are resized horizontally
-
#1115 [workbench] Stop using the deprecated props
rowsMax
-
#1219 [diagram] Fixed diagram svg export diamond arrow path
-
#1195 [diagram] Fix edge svg export
-
#1194 [diagram] Fix empty diagram svg export
-
#1165 [doc] Improve the pull request template
-
#1155 [workbench] The left and right panels now use a vertical bar of icons (instead of accordions) to select which view to display
-
#966 [diagram] Add the support source and target edge position ratio on the frontend side. For further explanation see ADR-055.
-
#1179 [core] Move
WorkbenchSelection
andWorkbenchSelectionEntry
tosirius-components-representations
in order to let any representation use those classes. We may rename theSelection
representation in the future in order to rename them toSelection
andSelectionEntry
to align the frontend and backend API -
[releng] Detect the presence of classes without a public visibility or with a package or protected constructor in order to speed up the code reviews.
-
#1138 [workbench] The left and right panels can be closed by clicking on the current view’s icon or by resizing them to the minimum width (showing only the icons). When closed, clicking on any of the views' icon will re-open the panel to make the selected view visible.
-
#689 [diagram] Add a variable containing objects ids to render for unsynchronized nodes rendering
-
#1149 [form] Add support for form descriptions in the View DSL
-
#1112 [explorer] Add support for Ctrl+click or ⌘+click to select multiple elements in the explorer
-
#1116 [form] Add support for multiple selection entries in the details view
-
#1117 [diagram] Add support for multiple selections in a diagram. This work only display the various selection entries in the diagram. It does not support Ctrl+click or ⌘+click in a diagram. Support for this feature would require additional work with major improvements in the lifecycle of the
DiagramServer`
-
#1146 [core] Add support for EditingContext actions
-
#1152 [form] Add support for form descriptions in the view converter
-
#1169 [form] Add support for a form description editor
-
#1181 [form] Add backend for a form description editor
-
#1201 [charts] Prepare support for charts in Sirius Components
-
#1180 [diagram] Add support for the dynamic computation of the connector tools to control the tools displayed in the contextual menu.
-
#1212 [form] Add support for styling of the View DSL widgets
-
[ADR-039] Provide a variable to detect the environment
-
[ADR-040] Add support for a post selection
-
[ADR-041] Add the ability to contribute additional services to the EMFQueryService
-
[ADR-042] Use wildcard collections instead of List<Object> in Providers
-
[ADR-043] Consider multiple objects as the input of a form
-
[ADR-044] Use border node "snap to parent container" algorithm
-
[ADR-045] Allow the explorer to reveal the current selection
-
[ADR-046] Make the workbench panels' content configurable
-
[ADR-047] Add support for tools preconditions
-
[ADR-048] Rename concepts related to tools
-
[ADR-049] Improve the incremental layout for dropper elements
-
[core] The various DTOs related to the creation and renaming of both documents and representations will be removed from the project at some point. The only reason why we will keep them for the moment is that some of them are used to trigger some specific behavior in the
EditingContextEventProcessor
. The split of the representation metadata should help us remove those special use cases -
[core] The method
IRepresentationMetadataSearchService#findByRepresentation
will be deleted in the future, it only exists as a transition from requesting the whole content of a representation every time to requesting only its metadata when it’s necessary -
#779 [diagram] The properties
DiagramDescription#toolSections
should be removed in the near future since it has no real reason to exist now that the tools are computed on the fly. On top of that,ITool.handler
will also be deleted at the same time since we no longer need to create the handlers of all the tools while the server is starting -
[diagram] The GraphQL mutations
deleteFromDiagram
will stop being used soon by the delete from model and delete from diagram tools. They will instead be considered as regular tools and thus leverage the "invoke tool" GraphQL API
-
#808 [core] Update the namespace of the projects from
sirius-web-xxx
tosirius-components-xxx
. The projectssirius-web-api
andsirius-web-core-api
have been merged intosirius-components-core
since there was no difference in scope between both projects and neither of them was strictly limited to an api. Since we have validated that most of our projects can be reused outside of a Spring environment (i.e. an environment where Spring Frameworks is in charge of the ApplicationContext), we have also removed the-spring-
from most of our project names. We already had Spring dependencies outside of those-spring-
projects anyway. -
[core] Switch to the
org.eclipse.sirius
groupId in order to prepare for a future publication of our backend on maven central -
#808 [core] Update the namespace of the packages from
org.eclipse.sirius.web.xxx
toorg.eclipse.sirius.components.xxx
. -
#998 [core] Remove the various annotations used to support a code-first approach to build the GraphQL schema
-
#975 [core] Remove useless parts of the GraphQL API which were both unused by the Sirius Components frontend and not handled by the Sirius Components backend
-
#959 [diagram] Remove the concept of
DeleteTool
. This concept was not useful since any tool can perform a deletion -
#1018 [core] Remove the default implementation of
IRepresentationMetadataSearchService
since products integrating Sirius Components needs the ability to customize its behavior -
#1019 [core] Services now have access to the context of the request triggering their execution. Consumer of Sirius Components will have to provide the
RequestAttributes
work. It should be very easy for those in a Spring environment, but it is not automatic for those outside of a Spring environmentin the `RequestContextHolder
to make the `EditingContextEventProcessor` -
#699 [core] The
IRepresentationImageProvider
will now use thekind
of the representation instead of the instance to compute the image. It will allow users to ask for the image of a representation with either its instance or its metadata -
#699 [core] Add the
targetObjectId
to theRepresentationMetadata
-
#1045 [core] Providers will now return List<?> instead of List<Object>. This makes it possible for applications to reuse existing services to implement providers without making useless copies of lists
-
#1068 [form] The form representation is now supporting multiple elements as an input
-
#1068 [workbench] The integration of the details view in the workbench is not limited to semantic objects with a kind starting with
siriusComponents://semantic
. Any object can be used as the input of the details view and we will now provide the identifier of all the objects in the selection. This may include graphical elements such as nodes, edges, representations or anything selected in the explorer for example -
#693 [workbench] The workbench non longer hard-codes the views which are visible in the left and right side-panels. Instead, each application must explicitly configure its workbench using the new
WorkbenchViewContribution
element. See ADR-046 for more details. As part of this change, theExplorerWebSocketContainerProps
,PropertiesWebSocketContainerProps
,RepresentationsWebSocketContainerProps
andValidationWebSocketContainer
types have been removed and replaced with the singleWorkbenchViewComponentProps
type which is structurally equivalent. -
#779 [diagram] Change the signature of the GraphQL API used to retrieve the tools of the diagram’s contextual palette in order to include the identifier of the diagram element
-
#1022 [diagram] The
NodeCreationEvent
and theEdgeCreationEvent
have been renamed toSinglePositionEvent
andDoublePositionEvent
to distinguish from any imagined behavior. Additional tests of the incremental layout should be added in the future to test its behavior in use cases that we did not consider in the past. TheCreateNodeTool
andCreateEdgeTool
have also been renamed in order to describe how the user interact with them instead of the behavior that we imagine they have. Their associated mutations have also been renamed. See the ADR for additional details
-
#992 [view] Let the
ViewValidator
consider statically contributedEPackages
when validating domain types -
#991 [diagram] Restore edge creation tools feedback
-
#1056 [core] Fix an invalid usage of
forwardRef
inDiagramTreeItemContextMenuContribution
-
#962 [layout] Fix an issue preventing nodes from being properly resized when a child node is created
-
#1051 [layout] Fix an issue resizing nodes when a child node was created even if it was not necessary
-
#1073 [core] Add missing ErrorCallback on the canBeDisposed subscriber of the EditingContextEventProcessor
-
[diagram] Fix an issue preventing the resizing of a node if the cursor had not moved after a previous resizing
-
#1075 [compatibility] Use the proper icon feature for OperationAction
-
#1104 [diagram] Fix the image base path during the SVG export
-
#1102 [diagram] Fix the node label positioning (rectangle, list and list item)
-
#985 [core] Provide a variable to detect which environment is used. The value of the variable will change to something specific for the integrating application (for example siriusWeb). This is only available for the diagram for now
-
#1025 [diagram] Add a new API to perform tests of our layout algorithm
-
#699 [core] Provide the
IEditingContext
to find all theRepresentationMetadata
for a specific object -
#1054 [diagram] Add missing variables to compute the label of an edge
-
#1063 [explorer] It is now possible to expand or collapse items in the explorer without selecting them by clicking directly on the expand/collapse arrow icon
-
#1068 [form] Add support for displaying details on arbitrary element kinds
-
#956 [diagram] Add the border node concept on front-end and implement the border node snap. The user can move the border node only on the side of its parent node. The border node enters its parent node with 8px. The ELK automatic layout is adapted to have the same behavior.
-
#1081 [workbench] It is now possible to specify the component to display in the main area when no representation is open instead of the
OnboardArea
(which is still the default when there is no override) -
#1070 [explorer] When selecting an element or opening a representation (for example from its URL or from the onboard area), it is automatically made visible and selected in the explorer.
-
#919 [diagram] Support the parent container resize for the border nodes on back-end
-
#1071 [diagram] Add a label for the border nodes
-
#1071 [diagram] Improve the resizing of the border nodes
-
#783 [diagram] Nodes which use images can now also have a border with all the relevant properties: color, size, radius, and line style. This applies to modelers using the compatibility layer and the web-based diagram definitions
-
#1033 [view] It is now possible to configure all properties of node’s border in web-based diagrams, including the border line style
-
#837 [layout] Improve the position of the dropped elements
-
#1067 [workbench] Hide hamburger menu on tree items with no operations
-
#1128 [workbench] Select representation opened from a tab
-
#988 [core] Add support for a post selection
-
#1018 [compatibility] Add support for the
Navigation
model operation from Sirius RCP -
#1026 [compatibility] Add support for
OperationAction
. The action are converted to regular tools available in the palette of the frontend -
#937 [diagram] Add the ability to export diagram as SVG images
-
#779 [diagram] Add support for tools preconditions
-
#781 [diagram] Add support for multiline labels
-
#695 [form] Add support for links in the form representation
-
[ADR-37] Add support for connector tool
-
[ADR-38] Improve the layout of multiple edges between the same nodes
-
#858 [core] Our dependency to Spring Security will be reduced or eliminated soon. Sirius Components will now longer have any opinion on matters of authentication, authorization, principal management, etc. All those concerns will be out of the scope of the project. It will also be way easier to integrate Sirius Components in a Spring based application since it won’t come with this additional requirement
-
#858 [core] Remove most of the methods of
ISubscriptionManager
since they were not really useful -
#871 [core] Change the constructor of the
EditingContextEventProcessor
in order to let consumers provide anIEditingContextEventProcessorExecutorServiceProvider
-
#134 [workbench] Switch from a single-selection API to a multi-selection API with some changes to the
Selection
object of the workbench -
#878 [core] As specified in the ADR-36, the kind of an object (representation, semantic elements, selection entry of the workbench) is now an URI. All previous kind values have been modified
-
#878 [graphql] The GraphQL argument
classId
which appeared on some fields has been replaced bykind
since it was always thekind
of an object. Technically, it is always the kind of a semantic element but that may not be the case forever -
[core]
IEditService.findClass()
has been removed -
[core]
IRepresentationDescriptionSearchService
has a newfindAll
method to return all the representation descriptions available in a given editing context -
[core] The package containing the concepts related to the editing context has been renamed to remove references to the project
-
#932 [graphql] Introduce the RepresentationMetadata concept in order to prepare the separation of the metadata from the representation
-
[core] Sirius Components does not depend on Spring Security anymore
-
[diagram] Remove the ToolSeparator components.
-
[core] Switch to Spring Boot 2.6.1
-
[core] Switch to GraphQL Java 17.3
-
[compatibility] Switch to Sirius Desktop 6.6.0
-
[frontend] Switch to @xstate/react 1.6.3
-
[frontend] Switch to typescript 4.5.4
-
[frontend] Switch to @typescript-eslint/parser 5.7.0
-
[frontend] Switch to xstate 4.26.1
-
[frontend] Update various development dependencies such as Rollup, ESLint, Prettier and Jest
-
#726 [view] Nodes can now have a dynamically computed size (using
sizeComputationExpression
) which depends on the current state of the semantic model. If the expression is present and produces a positive integer, it will be used as both the width and height of the node, in pixels. Currently it is not possible to compute different values for width and height. -
#133 [diagram] Add a connector tool to help create edges in diagrams
-
#596 [view] It is now possible to define border nodes in dynamic diagram definitions
-
#132 [diagram] Add support for drag and drop from the explorer to a diagram
-
#924 [view] Add support for all text styles on labels
-
#929 [core] Add support for providing a listener on GraphQLWebSocketHandler operations
-
#884 [view] Add support for defining unsynchronized nodes and edges
-
#822 [diagram] Add support for graphical deletion. We can now offer a dedicated menu in the user interface to perform a graphical deletion instead of a semantic one. On the backend, the compatibility layer has been updated to perform a
DeletionViewRequest
if there is no default deletion tool and a new variable nameddeletionPolicy
is available to determine if the deletion should be performed graphically or semantically -
#943 [view] Add support for optional begin & end labels on edges in views
-
#822 [view] Handle 'Delete from Diagram' in view-based diagrams
-
#871 [core] An
IEditingContextEventProcessorExecutorServiceProvider
can be given to theEditingContextEventProcessor
in order to customize theExecutorService
which will be used to handle the processing of theIInput
received. This will allow consumers to change the thread management policy of Sirius Components -
#134 [workbench] The internal API of the workbench is now ready to accept features leveraging a multi-selection
-
[form] Add a tooltip to always make the full label available
-
[core] Customize the Spring
ObjectMapper
instead of creating a brand new one from scratch in ourObjectMapperConfiguration
-
#896 [diagram] Allow to make specific changes before and after the layout
-
#897 [compatibility] The Bordered Node Dot Style is now handled in the compatibility layer
-
#565 [diagram] Improve the layout of multiple edges between the same nodes
-
#914 [diagram] Add the graphical selection to the semantic ones while clicking on diagram elements
-
#925 [diagram] Perform a fit to screen after the first render of a diagram
-
#944 [core] Add the ability to dispose the editing context
-
#936 [view] Add support for
preconditionExpression
in dynamic representations -
#878 [explorer] Update the tooltips of the tree items by parsing the kind of the tree item
-
[view] Use simple type names for the canonical creation tools
-
#952 [diagram] The contextual palette can be displayed with many lines. The contextual palette cannot have more than 15 elements per line.
-
[compatibility] Fix a potential NPE in logging code of the
WidgetDescriptionConverter
-
[form] Handle invalid format more gracefully when editing numeric properties
-
[view] Fix the canonical domain-based edge creation tool
-
#377 [workbench] Restore the real time feedback on representation renaming
-
#868 [diagram] Fix a layout issue with the label of the newly created edges
-
#746 [core] Keep representations in memory for 5 more seconds when they should be disposed in order to have the time to receive some input before their disposal
-
#425 [diagram] Fix a layout issue with self-loop edge
-
#949 [diagram] Fix the position of the begin/end labels on edges
In addition to members of the Sirius core team, this release includes contributions from the following authors. Many thanks to them!
-
[ADR-032] Relax our ID policy for editing context and representation (update)
-
[ADR-034] Switch from semver to calver
-
[ADR-035] Use a common pattern for configuration properties
-
[ADR-036] Adopt a more structured selection
-
#818 [workbench] The concept of
Selection
will be restructured, as described in the ADR-036. Every part of the code involved in the manipulation of the selection of the workbench will be impacted. This includes concepts as remote as the representation descriptions which are used to computed fields likekind
. For example, the behavior of theTreeDescription#getKindProvider
andNodeDescription#getTargetObjectKindProvider
will have to be updated for all the providers. Failure to update to the new behavior will make the selection fail in the workbench -
[core] The Success parameterless constructor will be removed soon.
-
#804 [core] Update the name of our configuration properties. The configuration property
sirius.web.graphql.websocket.allowed.origins
will now besirius.components.cors.allowedOriginPatterns
and it will support complex patterns on top of regular origins. The default value will be restored to nothing since it has temporarily been set to. In a development environment, the recommended value would be both patterns
and
*
in order to accept requests from any application hosted on the same machine. The configuration propertyorg.eclipse.sirius.web.editingContextEventProcessorRegistry.disposeDelay
will now besirius.components.editingContext.disposeDelay
. Its default value will be 1s since it is the only realistic option with domain and view support. -
#692 [explorer] The explorer view is now more generic and extensible. It can represent arbitrary kinds of tree items, but the tree items supported must be configured for each application.
-
#700 [core] editingContextId and representationId are no longer UUID but String. Products that rely on sirius-components will be able to have their own ID policy for the editingContextId and representationId.
-
#773 [compatibility] Add support for both
createView
anddeleteView
model operations which can be used to support unsynchronized diagrams from Sirius Desktop. -
#694 [core] Add
IRepresentationRefreshPolicyRegistry
to contribute `IRepresentationRefreshPolicyProvider`s in order to customize on which kind of change description, representations will be refreshed. -
#613 [compatibility] Add support for external java action with the new API
IExternalJavaActionProvider
which allows others to provide instances ofIExternalJavaAction
in order to perform some custom behavior during the execution of a tool for example. -
#154 [diagram] Add support for the edition of the label of an edge
-
#799 [diagram] The buttons in the diagram’s toolbar now have proper tooltips
-
[core] Add a task to display TypeScript errors in the VS Code problems view
-
#773 [compatibility] The synchronization policy of the node descriptions is now properly computed from the
AbstractNodeMapping
-
#694 [core] Data can be provided to Success in order to notify changement made by operation made on the editing context.
-
[explorer] The context menus on explorer items has been migrated to Material UI
-
#692 [tree] The tree representation will now act as a proper representation. Its event handlers will now be implementations of
ITreeEventHandler
and its input will be implementations ofITreeInput
-
[diagram] The variable
selectedNode
is now available even if there are noselectedObject
from a selection representation -
#817 [core] Improve the TypeScript typing of the frontend
-
[form] Add support for property groups defined in a different category
-
[diagram] The variable
selectedNode
was only available in the variable manager used when executing node tools if a selection dialog was also available. Now theselectedNode
variable will always be available unless the tool has been invoked on the background of the diagram
In addition to members of the Sirius core team, this release includes contributions from the following authors. Many thanks to them!
-
[ADR-024] Add support for view deletion requests
-
[ADR-025] Switch to a schema first approach for our GraphQL schema
-
[ADR-026] Improve the performance of unsynchronized nodes
-
[ADR-027] Make the explorer independent from modeling concepts
-
[ADR-028] Move representations out of the explorer
-
[ADR-029] Introduce some object services
-
[ADR-030] Add a link representation
-
[ADR-031] Separate metadata representations
-
[ADR-032] Relax our constraints on some of our identifiers
-
[ADR-033] Add support for unsynchronized tools
-
[core] The field
ChangeKind#NOTHING
will be removed soon since we have the option to just not send anything at all -
[explorer] Representations will be removed from the explorer soon
-
[core] The metadata of the representations will be removed from the content of the representation soon. As a result, fields like
IRepresentation#id
,IRepresentation#descriptionId
or eventIRepresentation#label
will be removed. It will allow us to massively improve the performance of some use cases and simplify the manipulation of the representations in other use cases -
[workbench] The workbench will become independent of internal concepts from Sirius Components. As a result, the explorer will not have any hardcoded actions such as "create a new document" or "create a new representation". The concept of document will be removed from the frontend entirely
-
[graphql] The interface
ITypeProvider
will soon be removed -
[graphql] All the GraphQL annotations used to build the schema programmatically will be removed soon such as
@GraphQLObjectType
,@GraphQLField
,@GraphQLNonNull
,@GraphQLID
. Annotations used to execute GraphQL queries like@QueryDataFetcher
or@MutationDataFetcher
will still be supported
-
#673 [graphql] Rename namespace to domain in the GraphQL API
-
[core] Remove the need to give a logger to the
BaseRender
-
[properties] Remove useless fields from the properties payloads
-
[graphql] Use pagination for the fields used by the onboarding such as
EditingContext#stereotypeDescriptions
orEditingContext#representations
-
#563 [core] Update the support for custom images by referencing images by their identifiers instead of their file name
-
#683 [core] Move projects such as
sirius-web-services-api
,sirius-web-services
,sirius-web-graphql-schema
andsirius-web-graphql
out of Sirius Components -
[core] Remove all the
sirius-web-collaborative-XXX-api
projects. Those projects became a random collection of all the interfaces (external APIs and internal ones) used by the collaborative projects. Those interfaces now exist within the various collaborative projects -
[graphql] Remove the field
ErrorPayload#additionalMessages
since it was useless -
[graphql] Remove the principal from the GraphQL
Context
since Spring Security allows us to access it much more easily -
#744 [core] Use Reactor to communicate event handler results. As a result of this change, the concept of
EventHandlerResponse
has been removed and replaced with two different sinks. ThepayloadSink
should be used to communicate a response to the process which has sent the input to handler. ThechangeDescriptionSink
can be used in order to indicate to the other event processors a change that has occur. Such change may trigger a refresh or other behavior in the other event processors -
#727 [core] Make
IRepresentationDescriptionSearchService
editing context aware -
#750 [core] Add the ability to provide a status error message. The enumeration
Status
has been replaced by an interface namedIStatus
with two classes implementing it,Failure
andSuccess
. Thanks toFailure
, it is now possible to provide a custom error message for an event handler but as of today this error message is not used in theErrorPayload
created from theFailure
. This will change in the future -
#740 [domain] Remove the explicit
nsURI
from domain definitions. Now only a name will be required and other properties will be computed from said name (nsURI
andnsPrefix
).
-
#190 [emf] Add support for inverse references navigation thanks to an
ECrossReferenceAdapter
installed directly on theEditingContext
-
#588 [domain] Add support for multiple inheritance
-
#598 [view] Add support for node border size, edge width, label font format and node label color in the view language
-
#514 [diagram] Disable move, resize and arrange all on auto-layout diagram
-
#688 [core] Add support for cross site request forgery token while uploading files. Projects integrating Sirius Components will have to decide whether or not they want to add such support and if they want to activate it. It will not be supported for now in Sirius Web
-
#671 [graphql] Add the GraphQL schemas of Sirius Components. Starting with this commit, projects integrating Sirius Components will be able to easily embrace a schema first approach to build their GraphQL schema. It will also be way easier to track changes to our GraphQL schema over time
-
#697 [graphql] Add the ability to perform AQL based queries on the content of an editing context using the
queryBasedXxx
fields -
#672 [diagram] Add support for the
ViewDeletionRequest
in a similar fashion as the previously addedViewCreationRequest
in order to support unsynchronized diagram description created programmatically
-
[domain] Add multiple validation rules to help create proper domains
-
[view] Add validation rules to help create proper views
-
#646 [view] Improve the default color used for new edges in the view language
-
[core] Replace most
NoOpXxx
classes by internalNoOp
classes on each interface -
#674 [core] Use the Spring Security executor service to propagate the current principal in the thread of the
EditingContextEventProcessor
instead of relying on our custom solution -
#680 [validation] Ensure that the validation view is open by default
-
#690 [diagram] Add the
selectedNode
variable to the delete from diagram and invoke node tool handlers -
#638 [diagram] Leverage the automatic layout configuration while computing the incremental layout in order to fix differences in behavior between the incremental layout and the automatic layout
-
#719 [compatibility] Add support for the
container
andelement
variables for the node/container creation tools -
#729 [emf] Make sure that the resource set of our
EditingContext
is anIEditingDomainProvider
-
#731 [view] Allow an
EdgeDescription
to have multiple sources and targets -
#743 [view] Add support for edge labels in views
-
#739 [view] Add a name to node and edge descriptions
-
#761 [domain] Validate the names of domains, entities and their features
-
#767 [core] Use
ServerContext
to retrieve thehttpOrigin
inTool.tsx
. Thanks to this improvement, it is possible to embed diagrams with the proper tool image in a complex architecture -
[workbench] Improve the overflow management of the onboarding area
-
#795 [domain] Custom-defined domains now appear first in the new root object modal
-
#654 [domain] Set
Feature#optional
default value totrue
sincefalse
created serialization issues. We cannot providefalse
as a default value since EMF cannot handle such use case -
[diagram] Make the
DiagramRenderingCache
maps predictable in order to improve performances -
#735 [view] Ensure that the generic edge tool is not used when a custom one is provided
-
#747 [diagram] Fix bounding box computation for images with wide labels
-
#738 [view] Fix the validation rules of the views when using qualified domain type names
-
[view] Consider conditional styles when computing a node type. This bug could lead to the creation of diagrams where node declared a specific type that did not match the type of their style. As a result, we could create diagrams that we could not deserialize with our Jackson parser
-
[core] Add a fallback strategy to the payload sink. With the use of reactor to the event handler, it has become possible to handle an input without ever providing a payload as a response. Now after 5s without a response, an
ErrorPayload
will be send back. This will not stop the current processing of the input nor will it rollback any change made, it will only send a response to ensure that the frontend is not waiting forever for an answer -
#776 [view] Avoid id collision between diagram descriptions with the same name by leveraging the URI of the diagram description to create a more unique identifier
This new release improves support for meta modeling. It also prepares the removal of a lot of code from this repository. Sirius Components will soon be independent from any persistence layer, from the GraphQL layer and even from a specific business layer.
-
[ADR-020] Add support for validation in the workbench
-
[ADR-021] Add validation support to forms
-
[ADR-022] Add support for selection dialog
-
[ADR-023] Move business code from Sirius Components to Sirius Web
-
[core] All the GraphQL and business related projects will be move to the Sirius Web project. As a result, projects such as
sirius-web-services-api
,sirius-web-services
,sirius-web-graphql-schema
andsirius-web-graphql
will no longer exist in this repository
-
#569 [emf] Move document-related code out of
sirius-web-emf
-
#569 [core] Remove the last dependency to
sirius-web-services
fromsirius-web-emf
. As a result, theObjectService
does not need to know about representations anymore -
#562 [graphql] Remove references to
projectId
from the subscriptions and useeditingContextId
instead -
#562 [graphql] Move the
representation
andrepresentations
fields fromProject
toEditingContext
-
#562 [core] Remove multiple references to
projectId
from the collaborative parts. This will impact various concepts such as the input used to edit forms -
#584 [graphql] Remove all the GraphQL projects from
sirius-web-spring-starter
. As such, projects consuming Sirius Components will now have to explicitly depend to those projects. They will soon be removed entirely from Sirius Components to go Sirius Web -
#584 [core] Remove the need to perform some access control and remove the
IDataFetcherEnvironmentService
in favor ofObjectMapper
-
#589 [core] Remove
sirius-web-services
fromsirius-web-spring-starter
. Our business layer will soon be moved out of Sirius Components to Sirius Web -
[core] Remove the unused
ProjectCreatedEvent
-
[core] Remove the support for modelers since it has never been used
-
[core] Refactor the collaborative layer in order to make it easier to reuse in other applications. This change includes a large set of small API breaks to concepts such as
IRepresentationService
orIRepresentationSearchService
-
[core] Provide the editing context while searching and saving representations instead of its identifier. As a result, interfaces such as
IRepresentationPersistenceService
andIRepresentationSearchService
have been modified
-
#554 [core] Add support for the validation view
-
#428 [properties] Add support for the edition of multi-valued references in the properties view
-
#559 [diagram] Add support for selection dialogs. This also include the support for
SelectModelElementVariable
in the Sirius RCP compatibility layer along with an example of such tool in the Flow-Designer -
#655 [properties] Add support for the validation in the properties view
-
[core] Improve the
ShareDiagramModel
,DeleteDocumentModal
andUploadModelModal
by migrating them to MaterialUI and XState -
#550 [diagram] Improve the incremental layout support by taking into account the padding defined in the ELK configuration. On top of that some improvements have been made to the algorithm of the incremental layout in order to maintain it more easily
-
#640 [core] Use accordions to layout the left and right sites of the workbench
-
#604 [core] Use the MaterialUI
ClickAwayListener
to close the context menu. This help fix an issue where the context menu of the explorer could be closed automatically after being opened -
#557 [domain] Fix multiple issues with the first release of domains such as
NullPointerException
during the transformation and better default values -
#557 [view] Fix multiple issues with the first release of views
-
#451 [diagram] Fix the issue which caused one character to be swallowed during the direct edit of a label in a diagram
In this third major release, we have introduced support for the meta modeling in the web browser with the new domain and view languages.
In order to make Sirius Components even more reusable, we have removed all of the views of the frontend. Sirius Components will no longer have an opinion on the architecture of the whole frontend application which will include the workbench. It will only provide as frontend components, representations, the workbench and some utility components but not the core structure of a full web application.
On the backend side, things are moving in the same direction with some massive refactoring for the future removal of the persistence layer and the business layer from Sirius Components. All the related projects will soon move to Sirius Web in order to integrate more easily Sirius Components in applications which do not share the same architectural constraints as Sirius Web.
Some improvements have also been made to the incremental layout in order to support a basic workflow.
-
[ADR-011] Decouple the event handlers from the refresh
-
[ADR-012] Incremental layout: Make it possible to move or create a diagram element at a specific position
-
[ADR-013] Refactor incremental layout
-
[ADR-014] Add a correlation identifier to inputs and payloads
-
[ADR-015] Add support for resizing diagram elements
-
[ADR-016] Remove SubscriptionDescription
-
[ADR-017] Improve the source and target edge anchors
-
[ADR-018] Adopt a subset of Ecore to define data schemas for modelers
-
[ADR-019] Support Simple Diagram Definitions by Reusing Sirius Desktop VSMs
-
[core] All the business code will be removed from Sirius Components in the months to come (project, document, persistence-related code, etc). This will include projects such as
sirius-web-persistence
,sirius-web-services-api
and more -
[core] The support for custom images has been integrated as a prototype. Massive changes to its API will occur in the future in order to cleanup its lifecycle
-
[core] The concept
IDataFetchingEnvironmentService
which can be used to setup an access control policy will soon be removed since it will be up to each application to define its own policy
-
#152 [releng] Remove usage of
airbnb-props-types
anduniversal-cookies
since we don’t need them -
[core] Make views handle the lifecycle of their navbar instead of relying on a common navbar design and lifecycle. This will lower the complexity of the lifecycle of the views and give way more flexibility to the views
-
#342 [core] Introduce the
ChangeKind
concept to decouple event handlers from representation. Prior to this change, an event handler had to know the behavior of all the representations in order to find out which representations were impacted by its change. Now, it can describe the change made and each representation can find out if this change is relevant to them or not -
#348 [core] Add a correlation identifier on
IInput
andIPayload
. From now on all payloads created must have, as an identifier, the identifier of the input which has trigger their creation. This will give us the ability to provide advanced features in the future and improve our debugging capabilities now -
#351 [core] Transform
ChangeKind
intoChangeDescription
in order to encapsulate the source of the change too. This will allow a representation to distinguish between aSEMANTIC_CHANGE
coming from another representation and one coming from itself -
#347 [diagram] Replace
Size
andPosition
builders bySize#of
andPosition#at
-
#378 [core] Make the stereotype description editing context aware. As a result, the
IStereotypeService
and some related classes are now manipulating an extra parameter in some methods, theeditingContextId
-
#368 [core] Remove the now useless
PreDestroyPayload
-
[properties] Remove the
PropertiesEventProcessor
which has never been used. Both the properties and the form representation are using theFormEventProcessor
-
#357 [core] Remove the
SubscriptionDescription
and use instead the SpringSecurityContextHolder
to retrieve the user subscribing to a reactive flux. As a result, this change will give us the ability to use much more easily other GraphQL integration in Spring such as Netflix DGS -
#268 [core] Dispose instances of
IEditingContextEventProcessor
when they are not used anymore. This change introduce some minor evolutions to the API ofIDisposablePublisher
andIEditingContextEventProcessorRegistry
which can impact any customIRepresentationEventProcessor
-
#377 [graphql] Rename the
projectEvent
subscription toeditingContextEvent
-
#382 [diagram] Switch the type of the label identifier from
String
toUUID
-
#384 [explorer] Make the child creation descriptions editing context aware in order to leverage the domain to compute the children
-
[core] Remove the now useless
Subscriber
component -
[compatibility] Remove the now useless
CanCreateMappingTester
andToolDescriptionQuery
-
#386 [graphql] Make the representation creation editing context aware. This will move the field
representationDescriptions
on the editing context in the GraphQL schema -
#333 [core] Make
IEditService#findClass
editing context aware -
#402 [core] Remove all views from Sirius Components. Sirius Components will stop trying to provide a complete product but it will instead be used as a framework which can be used to build collaborative graphical applications. As a result, the views have been removed and most of them been transferred to Sirius Web.
-
#473 [explorer] Improve the support for the read only workbench. This change introduce some API changes in several key workbench components such as
PropertiesWebSocketContainer
-
#449 [core] Move the navigation bar to MaterialUI. This change also removes the
LoggedInNavbar
and introduces theNavigationBar
-
[core] Remove the now useless components such as
Navbar
,ErrorView
,View
,Go
,UserStatus
andFooter
-
[core] Remove the now useless hooks such as
useCapabilities
,useBranding
,useAuth
-
[core] Remove
VariableManager#children
since it was not used -
#325 [compatibility] Move
ViewExtensionDescriptionConverter
tosirius-web-compatibility
-
#402 [graphql] Remove the dependency to GraphQL from the collaborative diagram, form and tree related projects
-
#402 [core] Remove the dependency to the persistence layer from the collaborative diagram and form projects
-
#402 [core] Remove the projects
sirius-web-diagrams-services-api
andsirius-web-diagrams-services
-
#185 [graphql] Move the
toolSections
field fromViewer
toDiagram
-
#402 [core] Remove most dependencies to
sirius-web-services
andsirius-web-services-api
in preparation of their removal from this repository -
[core] Remove the unused concept
IFrontendContribution
-
#402 [core] Move the import / export support out of
sirius-web-emf
-
#276 [emf] Add support for String-based EDataTypes in the properties view
-
#314 [compatibility] Add support for the icon specified in odesign files
-
#238 [diagram] Add the ability for end users to move elements in diagram
-
#221 [domain] Add the first version of the domain language
-
#221 [view] Add the first version of the view language
-
#385 [domain] Load the domain documents as EPackages in the editing context
-
#407 [compatibility] Add support for edges'
sizeComputationExpression
-
#289 [diagram] Add support for resizing elements
-
#418 [diagram] Add support for NodeList and NodeListItem
-
#503 [diagram] Add the ability to indicate the layout policy (auto layout or not) or a diagram on its description
-
#239 [diagram] Add support for the arrange all action
-
#510 [diagram] Add support for rounded corners
-
#173 [business] Migrate the projects view to MaterialUI and XState
-
[core] Remove usage of the deprecated Reactor
DirectProcessor
in favor of the new API based onSinks
-
#341 [diagram] Add the variables
semanticEdgeSource
andsemanticEdgeTarget
to most edge related expressions -
#341 [compatibility] Provide the variables
source
andtarget
for edge related operations by leveraging the newly introduced variablessemanticEdgeSource
andsemanticEdgeTarget
-
#367 [core] Improve the logging of the reactive flux manipulation
-
#287 [diagram] Refactor the incremental layout
-
#286 [diagram] Use figure bounds intersection as edge anchor
-
#387 [core] Push the history state instead of replacing it where necessary. This will improve the user experience by making the navigation between views more understandable
-
#390 [core] Improve the reusability of the workbench by exporting its types
-
#333 [emf] Put EMF resources in the resource set before loading them
-
#392 [domain] Add containment references to the domain language
-
#408 [diagram] Add missing
element
variable for delete tools -
#426 [diagram] Hide the contextual palette when zooming or scrolling/panning
-
#411 [view] Add canonical behaviors to dynamic view definitions
-
#437 [compatibility] Add
self
variable to VSM-based edge creation tools -
#285 [compatibility] Compute the initial size of an element by using the VSM information
-
#429 [domain] Add support for cardinalities in the domain language
-
[diagram] Improve the performance of diagrams by removing an useless layout request
-
[core] Make the editing context dispose delay configurable in order to prevent errors with the current lack of lifecycle management of the domains
-
#493 [diagram] Prevent move, resize, delete and direct edit operations on a read-only diagram
-
#441 [diagram] Add first support for custom images in diagrams. This support will not cover any management of the lifecycle of the images
-
#480 [domain] Add support for single inheritance and abstract entities
-
#452 [core] Delete dangling representations automatically
-
[core] Ensure that we only use Gava 30
-
#532 [explorer] Make the
CreateChildEventHandler
return anErrorPayload
when the child that has been created has no owner and handleErrorPayload
in theNewObjectModal
-
[core] Add the ability to indicate that a selection is a representation thanks to the
isRepresentation
function on theRepresentationContext
registry
-
#315 [compatibility] Use the label of the conditional style used instead of the fallback style
-
#342 [explorer] Fix a regression caused by a refactoring which caused the explorer to not be refreshed when a representation had been deleted
-
[core] Prevent multiple
NullPointerException
withObjectService
,NodeMapping#getStyle
,Edge#toString
-
#335 [form] Restore icons in list property sections and use the icons of the list item element’s types instead of the selected element’s type
-
#360 [diagram] Restore the use of auto layout on diagram creation
-
#346 [compatibility] Make the behavior of the
Unset
model operation match the one in Sirius RCP. The previous implementation did not actually match the behavior of Sirius Desktop on several points. ThefeatureName
was taken as a fixed string, but Sirius Desktop evaluates it as a dynamic expression and the previous implementation could never actually remove individual elements from a multi-valued feature, only reset/clear it -
#378 [business] Fix a regression which prevented the creation of new document from the onboarding area
-
#420 [diagram] Fix a regression on the direct edit in diagrams
-
[diagram] Leverage the identifier of the edge description while computing the identifier of the edge in order to ensure that we do not have duplicate edge identifiers in a diagram
Second major release of Sirius Components after the move to an open source project.
Sirius Components was the core part of the proprietary product Obeo Cloud Platform up until a couple months ago. We have transferred in the Eclipse Foundation most of the code of Obeo Cloud Platform to become both Sirius Web and its core part Sirius Components which should be reusable in multiple applications.
In this release, we have made some major refactoring in order to separate some remaining business concern which are specific to Sirius Web from the core goals of Sirius Web. These improvements are not complete and some of them will need to be improved down the road but the structure of the project is starting to be more visible.
-
[ADR-007] Adopt stable identifiers for diagrams
-
[ADR-008] Add support for incremental layout
-
[ADR-009] Adopt a proper versioning strategy
-
[ADR-010] Reduce the coupling of our collaborative support
-
[core] The hook
useProject
will soon be removed. It’s original goal was to provide the ability to subscribe to a project related subscription but this subscription has never really been used. It was way too much used to simply fetch a project while this could be done with way less dependencies -
[core] Any usage of
projectId
in the collaborative parts or in the representation related code will be removed in the upcoming months -
[core] All frontend code using our custom React widgets such as
Button
,Text
,Spacing
,Checkbox
etc will be modified to use MaterialUI instead -
[core] All frontend code using custom made state machines instead of XState based ones will be migrated to XState
-
#241 [core] Introduce the
sirius-web-core-api
project and move some core concepts from the services API into the new core API project such asIEditingContext
,IPayload
andIInput
-
#241 [core] Introduce the
sirius-web-services
project and move some business related concepts likeDocument
,Project
andProjectService
out of the collaborative projects -
#241 [core] Remove the dependency to the persistence from the collaborative API
-
#241 [core] Remove the
Context
concept which was used to propagate the authenticated principal to the business code. It was given to more than 70 classes while used by only a couple of them. On top of that, Spring’sSecurityContextHolder
can perform the same job with a much lower coupling. This will help reduce the coupling between the collaborative parts and the services API -
#241 [core] Remove the useless
IProjectInput
and replace its usage withIInput
-
#241 [core] Remove all dependencies to
sirius-web-services-api
fromsirius-web-collaborative-api
-
#241 [core] Remove the
ProjectRenamedEventPayload
to allow us to prepare the future deletion of theuseProject
hook and the complete removal of business concerns from the collaborative layer -
#241 [core] Rename the
ProjectEventProcessor
toEditingContextEventProcessor
. This concept and its registry have been made independent ofProject
. Those concepts will stop relying on aprojectId
but aneditingContextId
instead even if in practice this variable will still contain the value ofprojectId
for now. -
#241 [core] Remove the method
IEditingContext#getDomain
. This method will now only be available on the EMF specific version of theIEditingContext
. This contraint was not useful for alternate implementations -
#241 [core] Move the
RenameRepresentationInput
to thesirius-web-collaborative-api and `IObjectService
to thesirius-web-core-api
-
#241 [explorer] Use
editingContextId
instead ofprojectId
in the explorer -
#241 [properties] Move properties related services to form related projects
-
#241 [diagram] Remove the dependency to
sirius-web-services-api
insirius-web-spring-collaborative-diagrams
thanks to the introduction of two new projectssirius-web-diagrams-services-api
andsirius-web-diagrams-services
. These two new projects are used to allow someone else to use a different persistence strategy for the diagrams. It will need to be refined but this solution allows us to isolate our dependency to the IRepresentationRepository -
#292 [workbench] Restructure the components used by the workbench to make it reusable by consumers of Sirius Components. Components such as
DiagramWebSocketContainer
andPropertiesWebSocketContainer
have thus been modified. In order to make it easier to reuse a Sirius Components workbench a component namedWorkbench
has been created and new types such asSelection
,Representation
andWorkbenchProps
have been introduced -
#303 [business] Remove the link to modelers from the project context menu. Since we will not have time to fix the modelers before the release, we will not show this feature to end users and instead remove links to the modeler related pages
-
#256 [emf] Add support for composed images for
IObjectService#getImage
-
#220 [core] Add a basic support for the creation and edition of modelers
-
#131 [diagram] Add feedback to diagrams to indicate that tools cannot be applied
-
#232 [diagram] Add first support for incremental layout
-
#153 [workbench] Add the ability to close representations by adding a MaterialUI tabbar to display representations
-
#293 [workbench] Lower the coupling between the workbench and representations by introducing the
RepresentationContext
and the typeRepresentationComponentProps
for all representation components which replaces types such asDiagramWebSocketContainerProps
. TheRepresentationContext
can be used to contribute additional representations to the Sirius Components workbench. -
#296 [core] Introduce the
ServerContext
in order to customize the URL of the server used by the frontend components. This will allow consumers of Sirius Components to specify a differenthttpOrigin
to organize their frontend and backend in a very different manner
-
#252 [diagram] Improve the TypeScript typing of the
DiagramWebSocketContainer
with the introduction ofSelection
and a dedicatedDiagramWebSocketContainerProps
-
[releng] Trigger the build on any pull requests regardless of their origin
-
#283 [graphql] Add the
EditingContext
to the GraphQL API -
#261 [emf] Improve the perform of the
DocumentService
by removing some useless loading and serializing steps of EMF resources -
#238 [diagram] Migrate the
DiagramWebSocketContainer
to XState and MaterialUI