Skip to content

Commit

Permalink
[2135] Allow TreeItemContextMenuContributions to only apply to specif…
Browse files Browse the repository at this point in the history
…ic trees

Bug: #2135
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
  • Loading branch information
pcdavid committed Jun 30, 2023
1 parent 3083626 commit 6a807c3
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 11 deletions.
7 changes: 4 additions & 3 deletions CHANGELOG.adoc
Expand Up @@ -83,7 +83,8 @@ image:doc/images/Diagram_closed_arrow_with_vertical_bar.png[closed arrow with ve
+
image:doc/images/Diagram_closed_arrow_with_dots.png[closed arrow with dots]
+

- https://github.com/eclipse-sirius/sirius-components/issues/2135[#2135] [tree] Allow `TreeItemContextMenuContribution`s to only apply to specific trees (based on the tree id).
In Sirius Web, all the existing context menu contributions are now only enabled for the _Explorer_ view.

== v2023.6.0

Expand Down Expand Up @@ -755,8 +756,8 @@ When closed, clicking on any of the views' icon will re-open the panel to make t
=== Bug fixes

- https://github.com/eclipse-sirius/sirius-components/issues/992[#992] [view] Let the `ViewValidator` consider statically contributed `EPackages` when validating domain types
- https://github.com/eclipse-sirius/sirius-components/issues/991[#991] [diagram] Restore edge creation tools feedback
- https://github.com/eclipse-sirius/sirius-components/issues/1056[#1056] [core] Fix an invalid usage of `forwardRef` in `DiagramTreeItemContextMenuContribution`
- https://github.com/eclipse-sirius/sirius-components/issues/991[#991] [diagram] Restore edge creation tools feedbackDiagramTreeItemContextMenuContribution
- https://github.com/eclipse-sirius/sirius-components/issues/1056[#1056] [core] Fix an invalid usage of `forwardRef` in ``
- https://github.com/eclipse-sirius/sirius-components/issues/962[#962] [layout] Fix an issue preventing nodes from being properly resized when a child node is created
- https://github.com/eclipse-sirius/sirius-components/issues/1051[#1051] [layout] Fix an issue resizing nodes when a child node was created even if it was not necessary
- https://github.com/eclipse-sirius/sirius-components/issues/1073[#1073] [core] Add missing ErrorCallback on the canBeDisposed subscriber of the EditingContextEventProcessor
Expand Down
Expand Up @@ -21,8 +21,8 @@ import {
} from '@eclipse-sirius/sirius-components-trees';
import { ValidationView } from '@eclipse-sirius/sirius-components-validation';
import Grid from '@material-ui/core/Grid';
import { makeStyles } from '@material-ui/core/styles';
import Typography from '@material-ui/core/Typography';
import { makeStyles } from '@material-ui/core/styles';
import AccountTreeIcon from '@material-ui/icons/AccountTree';
import Filter from '@material-ui/icons/Filter';
import LinkIcon from '@material-ui/icons/Link';
Expand All @@ -40,12 +40,12 @@ import { EditProjectViewParams, GQLGetProjectQueryData, GQLGetProjectQueryVariab
import {
EditProjectViewContext,
EditProjectViewEvent,
editProjectViewMachine,
HandleFetchedProjectEvent,
HideToastEvent,
SchemaValue,
SelectRepresentationEvent,
ShowToastEvent,
editProjectViewMachine,
} from './EditProjectViewMachine';
import { ObjectTreeItemContextMenuContribution } from './ObjectTreeItemContextMenuContribution';

Expand Down Expand Up @@ -134,15 +134,21 @@ export const EditProjectView = () => {

const treeItemContextMenuContributions = [
<TreeItemContextMenuContribution
canHandle={(item: GQLTreeItem) => item.kind.startsWith('siriusWeb://document')}
canHandle={(treeId: string, item: GQLTreeItem) =>
treeId?.startsWith('explorer://') && item.kind.startsWith('siriusWeb://document')
}
component={DocumentTreeItemContextMenuContribution}
/>,
<TreeItemContextMenuContribution
canHandle={(item: GQLTreeItem) => item.kind.startsWith('siriusComponents://semantic')}
canHandle={(treeId: string, item: GQLTreeItem) =>
treeId?.startsWith('explorer://') && item.kind.startsWith('siriusComponents://semantic')
}
component={ObjectTreeItemContextMenuContribution}
/>,
<TreeItemContextMenuContribution
canHandle={(item: GQLTreeItem) => item.kind === 'siriusComponents://representation?type=Diagram'}
canHandle={(treeId: string, item: GQLTreeItem) =>
treeId?.startsWith('explorer://') && item.kind === 'siriusComponents://representation?type=Diagram'
}
component={DiagramTreeItemContextMenuContribution}
/>,
];
Expand Down
Expand Up @@ -128,7 +128,7 @@ export const TreeItem = ({
const { httpOrigin } = useContext(ServerContext);

const treeItemMenuContributionComponents = useContext(TreeItemContextMenuContext)
.filter((contribution) => contribution.props.canHandle(item))
.filter((contribution) => contribution.props.canHandle(treeId, item))
.map((contribution) => contribution.props.component);

const initialState = {
Expand Down
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2021, 2022 Obeo.
* Copyright (c) 2021, 2023 Obeo.
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
Expand All @@ -14,7 +14,7 @@ import { Selection } from '@eclipse-sirius/sirius-components-core';
import { GQLTreeItem } from '../views/ExplorerView.types';

export interface TreeItemContextMenuContributionProps {
canHandle: (item: GQLTreeItem) => boolean;
canHandle: (treeId: string, item: GQLTreeItem) => boolean;
component: (props: TreeItemContextMenuComponentProps) => JSX.Element | null;
}

Expand Down

0 comments on commit 6a807c3

Please sign in to comment.