-
Notifications
You must be signed in to change notification settings - Fork 61
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
[4286] Make default explorer DnD work only for the default explorer #4288
[4286] Make default explorer DnD work only for the default explorer #4288
Conversation
* @author gdaniel | ||
*/ | ||
@Service | ||
public class DomainDropTreeItemHandler extends ExplorerDropTreeItemHandler implements IDropTreeItemHandler { |
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 added this class to keep the existing behavior in the domain explorer. This may be a wrong idea, because it adds an IDropTreeItemHandler
in all the downstream applications (even if it won't work in these applications).
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 you want to share some behavior between DomainDropTreeItemHandler
and ExplorerDropTreeItemHandler
, you will need to do it thanks to composition not inheritance.
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.
Done
@@ -24,7 +24,7 @@ | |||
*/ | |||
public interface IDropTreeItemHandler { | |||
|
|||
boolean canHandle(Tree tree); | |||
boolean canHandle(IEditingContext editingContext, Tree tree); |
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.
Added the editingContext
parameter for handlers that need to access it (e.g. to retrieve the view description of the explorer tree)
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.
Just a small remark, but otherwise it is ok on my side.
@sbegaudeau if it is ok for you I will merge it as soon as possible.
@@ -24,7 +24,7 @@ | |||
*/ | |||
public interface IDropTreeItemHandler { | |||
|
|||
boolean canHandle(Tree tree); | |||
boolean canHandle(IEditingContext editingContext, Tree tree); |
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.
It's an API break, you should update the CHANGELOG accordingly
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.
done
2aab1f7
to
578bb28
Compare
* @author gdaniel | ||
*/ | ||
@Service | ||
public class DomainDropTreeItemHandler extends ExplorerDropTreeItemHandler implements IDropTreeItemHandler { |
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 you want to share some behavior between DomainDropTreeItemHandler
and ExplorerDropTreeItemHandler
, you will need to do it thanks to composition not inheritance.
|
||
public DomainDropTreeItemHandler(IObjectService objectService, IMessageService messageService, IViewRepresentationDescriptionSearchService viewRepresentationDescriptionSearchService) { | ||
super(objectService, messageService); | ||
this.viewRepresentationDescriptionSearchService = viewRepresentationDescriptionSearchService; |
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.
Is there a reason why it needs to be nullable?
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, I fixed it
578bb28
to
2056b01
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'll just perform a quick check, rebase and merge it if no issue appears.
@Service | ||
public class DomainDropTreeItemHandler implements IDropTreeItemHandler { | ||
|
||
private final ExplorerDropTreeItemHandler explorerDropTreeItemHandler; |
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 somehow missed that you are using a dependency without an interface here. We are using interfaces on purpose, here we would need to extract the common behavior in a dedicated service instead. I'll update the PR and ensure that it gets merged.
31cda80
to
163f05c
Compare
7114599
to
5135b5f
Compare
Bug: eclipse-sirius#4286 Signed-off-by: Gwendal Daniel <gwendal.daniel@obeosoft.com>
5135b5f
to
365c652
Compare
Bug: #4286
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