diff options
Diffstat (limited to 'plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/views/providers/outline/OutlineContentProvider.java')
-rw-r--r-- | plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/views/providers/outline/OutlineContentProvider.java | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/views/providers/outline/OutlineContentProvider.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/views/providers/outline/OutlineContentProvider.java index 1c9ccab90d..b22a75cb64 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/views/providers/outline/OutlineContentProvider.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/views/providers/outline/OutlineContentProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 THALES GLOBAL SERVICES. + * Copyright (c) 2007, 2021 THALES GLOBAL SERVICES. * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at @@ -42,6 +42,8 @@ import org.eclipse.sirius.diagram.business.api.query.DDiagramElementQuery; import org.eclipse.sirius.diagram.business.internal.metamodel.helper.LayerHelper; import org.eclipse.sirius.diagram.provider.DiagramItemProviderAdapterFactory; import org.eclipse.sirius.diagram.ui.business.api.provider.AbstractDDiagramElementLabelItemProvider; +import org.eclipse.sirius.diagram.ui.business.api.provider.DEdgeBeginLabelItemProvider; +import org.eclipse.sirius.diagram.ui.business.api.provider.DEdgeEndLabelItemProvider; import org.eclipse.sirius.diagram.ui.business.api.provider.DEdgeLabelItemProvider; import org.eclipse.sirius.diagram.ui.business.api.provider.DNodeLabelItemProvider; import org.eclipse.sirius.diagram.ui.tools.internal.editor.DiagramOutlinePageListener; @@ -129,6 +131,7 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl * * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) */ + @Override public Object getParent(final Object element) { Object theParent = null; @@ -157,6 +160,11 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl theParent = parent; } } + else if (element instanceof AbstractDDiagramElementLabelItemProvider) { + + AbstractDDiagramElementLabelItemProvider theElement = (AbstractDDiagramElementLabelItemProvider) element; + theParent = theElement.getTarget(); + } return theParent; } @@ -166,6 +174,7 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl * * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) */ + @Override public Object[] getChildren(final Object parentElement) { Object[] children = null; @@ -191,17 +200,15 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl List<Object> originalChildren = new ArrayList<Object>(); // if the current node should have a DEdgeLabelItem has children + if (DEdgeBeginLabelItemProvider.hasRelevantLabelItem(dEdge)) { + originalChildren.add(0, new DEdgeBeginLabelItemProvider(getAdapterFactory(), dEdge)); + } if (DEdgeLabelItemProvider.hasRelevantLabelItem(dEdge)) { originalChildren.add(0, new DEdgeLabelItemProvider(getAdapterFactory(), dEdge)); } - // if (DEdgeBeginLabelItemProvider.hasRelevantLabelItem(dEdge)) { - // originalChildren.add(0, new - // DEdgeBeginLabelItemProvider(getAdapterFactory(), dEdge)); - // } - // if (DEdgeEndLabelItemProvider.hasRelevantLabelItem(dEdge)) { - // originalChildren.add(0, new - // DEdgeEndLabelItemProvider(getAdapterFactory(), dEdge)); - // } + if (DEdgeEndLabelItemProvider.hasRelevantLabelItem(dEdge)) { + originalChildren.add(0, new DEdgeEndLabelItemProvider(getAdapterFactory(), dEdge)); + } children = clearFilteredElements(originalChildren, getDiagramContainer(dEdge)).toArray(); } @@ -218,6 +225,7 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl * * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) */ + @Override public boolean hasChildren(final Object element) { boolean hasChildren = false; @@ -234,6 +242,7 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl * * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ + @Override public Object[] getElements(final Object inputElement) { // in case of diagram return the viewpoint @@ -254,6 +263,7 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl * * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ + @Override public void dispose() { // do nothing } @@ -261,9 +271,10 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl /** * {@inheritDoc} * - * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, - * java.lang.Object, java.lang.Object) + * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, + * java.lang.Object) */ + @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { // Only remove listener of oldInput if old input is valid if (oldInput != null && (!(oldInput instanceof EObject) || ((EObject) oldInput).eResource() != null)) { @@ -303,6 +314,7 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl * * @see org.eclipse.sirius.common.ui.tools.api.outline.DiagramOutlinePageListener#activate(int) */ + @Override public void activate(int page) { this.outlineContentResourceSetListener.activate(page); } @@ -312,6 +324,7 @@ public class OutlineContentProvider implements ITreeContentProvider, DiagramOutl * * @see org.eclipse.sirius.common.ui.tools.api.outline.DiagramOutlinePageListener#deactivate(int) */ + @Override public void deactivate(int page) { this.outlineContentResourceSetListener.deactivate(page); } |