-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[3647] Add support for diagram style with background customization #3648
base: master
Are you sure you want to change the base?
Conversation
71dd68a
to
799de23
Compare
b5eb6d3
to
5f4f453
Compare
...sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/Diagram.java
Outdated
Show resolved
Hide resolved
...sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/Diagram.java
Outdated
Show resolved
Hide resolved
if (style != null) { | ||
diagramElementPropsBuilder.style(style); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to make it optional, most of our APIs are there to fail fast, we are asking for a style, we should receive one
.../backend/sirius-components-collaborative-diagrams/src/main/resources/schema/diagram.graphqls
Outdated
Show resolved
Hide resolved
...grams/src/main/java/org/eclipse/sirius/components/diagrams/elements/DiagramElementProps.java
Outdated
Show resolved
Hide resolved
...grams/frontend/sirius-components-diagrams/src/renderer/dropNode/useDropDiagramStyle.types.ts
Outdated
Show resolved
Hide resolved
...s/diagrams/frontend/sirius-components-diagrams/src/renderer/dropNode/useDropDiagramStyle.tsx
Outdated
Show resolved
Hide resolved
...ava/org/eclipse/sirius/web/application/controllers/diagrams/DiagramStyleControllerTests.java
Outdated
Show resolved
Hide resolved
...ava/org/eclipse/sirius/web/application/controllers/diagrams/DiagramStyleControllerTests.java
Outdated
Show resolved
Hide resolved
...nts-view-emf/src/main/java/org/eclipse/sirius/components/view/emf/diagram/StylesFactory.java
Outdated
Show resolved
Hide resolved
09295ae
to
d0364d5
Compare
d0364d5
to
973ec87
Compare
...g/eclipse/sirius/components/compatibility/services/diagrams/DiagramDescriptionConverter.java
Outdated
Show resolved
Hide resolved
@@ -343,7 +346,7 @@ export const DiagramRenderer = memo(({ diagramRefreshedEventPayload }: DiagramRe | |||
/> | |||
</> | |||
) : ( | |||
<Background style={{ backgroundColor }} color={backgroundColor} /> | |||
<Background style={{ background }} color={'transparent'} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
color="transparent"
...on/editingcontext/migration/participants/DiagramStyleDescriptionAddMigrationParticipant.java
Outdated
Show resolved
Hide resolved
...nts-view-emf/src/main/java/org/eclipse/sirius/components/view/emf/diagram/StylesFactory.java
Outdated
Show resolved
Hide resolved
515352f
to
da1b807
Compare
3588434
to
3394409
Compare
@@ -171,6 +172,7 @@ public void testGetConnectorTools() { | |||
.edgeDescriptions(new ArrayList<>()) | |||
.palettes(List.of(palette)) | |||
.dropHandler(variableManager -> new Failure("")) | |||
.styleProvider(variableManager -> DiagramStyle.newDiagramStyle().build()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any reason to have some of the DiagramStyle
in the tests with the default (transparent) background and others with .bkacground("#FAFAFA")
like the one below in the same file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, in fact, I started by adding a value at instantiation and then adding a default value.
I changed to use the default value in the tests
45ce690
to
7ca5f59
Compare
7ca5f59
to
1cde282
Compare
1cde282
to
0c22c94
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still have a couple of things to review but this first point is an important one because it could give a wrong impression for downstream consumers (they may believe that this code works).
@@ -109,4 +109,13 @@ public boolean isFaded(IDiagramElement diagramElement) { | |||
} | |||
return isFaded; | |||
} | |||
|
|||
@Override | |||
public boolean isDiagramEmpty(IDiagramService diagramService) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This must be new since the last time I reviewed this PR because this cannot work. I could accept that in the services of Papaya diagrams because it would work in this case but imagine that I have 1 node in my diagram which has 10 child nodes and the view deletion request is for one of its child node then this code does not work.
Imagine now that I have 3 nodes in my diagram and a tool triggers the creation of 3 view deletion request then this code would not work either. Finding out that a diagram is empty in all use case is more complex than what you algorithm suggest. Please move both the implementation of this service and its definition out of IDiagramServices for now and into something in the Java services of Papaya (since I suspect that you are only using it there).
You could also improve this algorithm to make it work all the time but it will require some testing of corner cases. Consumers of Sirius Web such as SysON would be quite interested by such service.
0c22c94
to
1920f68
Compare
Bug: #3647 Signed-off-by: Florian ROUËNÉ <[email protected]>
1920f68
to
b109d3c
Compare
Bug: #3647
Pull request template
General purpose
What is the main goal of this pull request?
Project management
priority:
andpr:
labels been added to the pull request? (In case of doubt, start with the labelspriority: low
andpr: to review later
)area:
,difficulty:
,type:
)CHANGELOG.adoc
been updated to reference the relevant issues?CHANGELOG.adoc
? (Including changes in the GraphQL API)CHANGELOG.adoc
? For example indoc/screenshots/2022.5.0-my-new-feature.png
Architectural decision records (ADR)
[doc]
?CHANGELOG.adoc
?Dependencies
CHANGELOG.adoc
?CHANGELOG.adoc
?Frontend
This section is not relevant if your contribution does not come with changes to the frontend.
General purpose
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).
useMutation<DATA_TYPE, VARIABLE_TYPE>(…)
useQuery<DATA_TYPE, VARIABLE_TYPE>(…)
useSubscription<DATA_TYPE, VARIABLE_TYPE>(…)
useMachine<CONTEXT_TYPE, EVENTS_TYPE>(…)
useState<STATE_TYPE>(…)
?.
(if the GraphQL API specifies that a field cannot benull
, do not treat it has potentiallynull
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
Architecture
Review
How to test this PR?
Please describe here the various use cases to test this pull request