Skip to content

[6240] Ability to call arrangeAll on diagrams from outside the component#6244

Open
OrlannC wants to merge 1 commit intoeclipse-sirius:masterfrom
OrlannC:orc/enh/arrange-all-handle
Open

[6240] Ability to call arrangeAll on diagrams from outside the component#6244
OrlannC wants to merge 1 commit intoeclipse-sirius:masterfrom
OrlannC:orc/enh/arrange-all-handle

Conversation

@OrlannC
Copy link

@OrlannC OrlannC commented Mar 3, 2026

Bug: #6240

Pull request template

General purpose

What is the main goal of this pull request?

  • Bug fixes
  • New features
  • Documentation
  • Cleanup
  • Tests
  • Build / releng

Project management

  • Has the pull request been added to the relevant project and milestone? (Only if you know that your work is part of a specific iteration such as the current one)
  • Have the priority: and pr: labels been added to the pull request? (In case of doubt, start with the labels priority: low and pr: to review later)
  • Have the relevant issues been added to the pull request?
  • Have the relevant labels been added to the issues? (area:, difficulty:, type:)
  • Have the relevant issues been added to the same project and milestone as the pull request?
  • Has the CHANGELOG.adoc been updated to reference the relevant issues?
  • Have the relevant API breaks been described in the CHANGELOG.adoc? (Including changes in the GraphQL API)
  • In case of a change with a visual impact, are there any screenshots in the CHANGELOG.adoc? For example in doc/screenshots/2022.5.0-my-new-feature.png

Architectural decision records (ADR)

  • Does the title of the commit contributing the ADR start with [doc]?
  • Are the ADRs mentioned in the relevant section of the CHANGELOG.adoc?

Dependencies

  • Are the new / upgraded dependencies mentioned in the relevant section of the CHANGELOG.adoc?
  • Are the new dependencies justified in the CHANGELOG.adoc?

Frontend

This section is not relevant if your contribution does not come with changes to the frontend.

General purpose

  • Is the code properly tested? (Plain old JavaScript tests for business code and tests based on React Testing Library for the components)

Typing

We need to improve the typing of our code, as such, we require every contribution to come with proper TypeScript typing for both changes contributing new files and those modifying existing files.
Please ensure that the following statements are true for each file created or modified (this may require you to improve code outside of your contribution).

  • Variables have a proper type
  • Functions’ arguments have a proper type
  • Functions’ return type are specified
  • Hooks are properly typed:
    • useMutation<DATA_TYPE, VARIABLE_TYPE>(…)
    • useQuery<DATA_TYPE, VARIABLE_TYPE>(…)
    • useSubscription<DATA_TYPE, VARIABLE_TYPE>(…)
    • useMachine<CONTEXT_TYPE, EVENTS_TYPE>(…)
    • useState<STATE_TYPE>(…)
  • All components have a proper typing for their props
  • No useless optional chaining with ?. (if the GraphQL API specifies that a field cannot be null, do not treat it has potentially null for example)
  • Nullable values have a proper type (for example let diagram: Diagram | null = null;)

Backend

This section is not relevant if your contribution does not come with changes to the backend.

General purpose

  • Are all the event handlers tested?
  • Are the event processor tested?
  • Is the business code (services) tested?
  • Are diagram layout changes tested?

Architecture

  • Are data structure classes properly separated from behavioral classes?
  • Are all the relevant fields final?
  • Is any data structure mutable? If so, please write a comment indicating why
  • Are behavioral classes either stateless or side effect free?

Review

How to test this PR?

It can be tested by calling the new applyLayout method on a diagram workbench handle. For example by obtaining the handle from another view with workbench.getDisplayedRepresentationHandle() and calling the applyLayout method.

  • Has the Kiwi TCMS test suite been updated with tests for this contribution?

@OrlannC OrlannC force-pushed the orc/enh/arrange-all-handle branch from 66ba370 to 60cb3f7 Compare March 3, 2026 16:23
export interface WorkbenchMainRepresentationHandle {
id: string;
applySelection: ((selection: Selection) => void) | null;
applyLayout: ((layoutOptions: Record<string, string>) => Promise<void>) | null;
Copy link
Member

@sbegaudeau sbegaudeau Mar 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is only necessary for diagrams, it has no reason to exist for other representations. None of this should impact other representations or the workbench itself.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed the impacts on the other representations

@sbegaudeau sbegaudeau linked an issue Mar 4, 2026 that may be closed by this pull request
1 task
@sbegaudeau sbegaudeau added this to the 2026.5.0 milestone Mar 4, 2026
@OrlannC OrlannC force-pushed the orc/enh/arrange-all-handle branch from ec1e9cd to 00ba5d2 Compare March 4, 2026 14:26
@OrlannC OrlannC force-pushed the orc/enh/arrange-all-handle branch from 00ba5d2 to 7056c1f Compare March 4, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ability to call arrangeAll on diagrams from outside the component

2 participants