diff options
| author | Florian Barbin | 2017-07-31 16:03:00 +0000 |
|---|---|---|
| committer | Florian Barbin | 2017-08-01 15:06:20 +0000 |
| commit | c33f68b72bfc02fb155704f2e419759436f38c58 (patch) | |
| tree | 02099ec30ab01cd4f2e561cdc0e7592d6e643712 | |
| parent | 6aeef97372b9fea424afde4ae0f7c16883b41d04 (diff) | |
| download | org.eclipse.sirius-c33f68b72bfc02fb155704f2e419759436f38c58.tar.gz org.eclipse.sirius-c33f68b72bfc02fb155704f2e419759436f38c58.tar.xz org.eclipse.sirius-c33f68b72bfc02fb155704f2e419759436f38c58.zip | |
[516669] Fixes GotoMarker issue
In the case of a go to marker with a closed session, the Diagram was
loaded without using the DRepresentationDescriptor.getRepresentation. As
a consequence, the DRepresentationDescriptor#representation feature was
not registered in the XReferencer.
Bug: 516669
Change-Id: I962b4f2f65e942738448b2f62b4116022a07c474
Signed-off-by: Florian Barbin <florian.barbin@obeo.fr>
4 files changed, 145 insertions, 114 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/quickfix/ValidationFixResolution.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/quickfix/ValidationFixResolution.java index 196556ca75..3453b14a14 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/quickfix/ValidationFixResolution.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/quickfix/ValidationFixResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2016 THALES GLOBAL SERVICES and others. + * Copyright (c) 2007, 2017 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -11,6 +11,7 @@ package org.eclipse.sirius.diagram.ui.internal.quickfix; import java.text.MessageFormat; +import java.util.Optional; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; @@ -34,6 +35,7 @@ import org.eclipse.sirius.diagram.ui.tools.internal.commands.emf.EMFCommandFacto import org.eclipse.sirius.diagram.ui.tools.internal.resource.NavigationMarkerConstants; import org.eclipse.sirius.ui.business.api.dialect.DialectEditor; import org.eclipse.sirius.ui.business.api.session.SessionEditorInput; +import org.eclipse.sirius.viewpoint.DRepresentationDescriptor; import org.eclipse.sirius.viewpoint.DSemanticDecorator; import org.eclipse.sirius.viewpoint.SiriusPlugin; import org.eclipse.sirius.viewpoint.description.validation.ValidationFix; @@ -56,8 +58,7 @@ public class ValidationFixResolution implements IMarkerResolution { private ValidationFix fix; /** - * Create a new {@link ValidationFixResolution} from a {@link ValidationFix} - * . + * Create a new {@link ValidationFixResolution} from a {@link ValidationFix} . * * @param fix * {@link ValidationFix} to execute. @@ -138,16 +139,18 @@ public class ValidationFixResolution implements IMarkerResolution { private View getMarkedView(Session session, IMarker marker) { String elementID = marker.getAttribute(org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID, null); - String diagramURI = marker.getAttribute(NavigationMarkerConstants.DIAGRAM_URI, null); + String diagramDescriptorURI = marker.getAttribute(NavigationMarkerConstants.DIAGRAM_DESCRIPTOR_URI, null); - if (diagramURI == null || elementID == null) { + if (diagramDescriptorURI == null || elementID == null) { return null; } ResourceSet set = session.getTransactionalEditingDomain().getResourceSet(); if (set != null) { - EObject markedDiagram = set.getEObject(URI.createURI(diagramURI), true); - EObject markerTarget = markedDiagram instanceof Diagram ? markedDiagram.eResource().getEObject(elementID) : null; + EObject markedDiagramDescriptor = set.getEObject(URI.createURI(diagramDescriptorURI), true); + EObject markedDiagram = Optional.ofNullable(markedDiagramDescriptor).filter(DRepresentationDescriptor.class::isInstance).map(d -> ((DRepresentationDescriptor) d).getRepresentation()) + .orElse(null); + EObject markerTarget = markedDiagram instanceof DDiagram ? markedDiagram.eResource().getEObject(elementID) : null; if (markerTarget instanceof View) { return (View) markerTarget; } diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/part/ValidateAction.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/part/ValidateAction.java index 53a983dd15..826b4c2ec2 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/part/ValidateAction.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/part/ValidateAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2015 THALES GLOBAL SERVICES and others. + * Copyright (c) 2007, 2017 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -16,6 +16,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Optional; import java.util.Set; import org.eclipse.core.resources.IFile; @@ -43,6 +44,7 @@ import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.jface.action.Action; import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.sirius.business.api.query.DRepresentationQuery; import org.eclipse.sirius.business.api.session.Session; import org.eclipse.sirius.business.api.session.SessionManager; import org.eclipse.sirius.common.ui.tools.api.util.EclipseUIUtil; @@ -59,6 +61,7 @@ import org.eclipse.sirius.diagram.ui.tools.internal.part.OffscreenEditPartFactor import org.eclipse.sirius.ext.base.Option; import org.eclipse.sirius.ext.emf.AllContents; import org.eclipse.sirius.tools.api.validation.constraint.RuleWrappingStatus; +import org.eclipse.sirius.viewpoint.DRepresentationDescriptor; import org.eclipse.sirius.viewpoint.DRepresentationElement; import org.eclipse.sirius.viewpoint.DSemanticDecorator; import org.eclipse.sirius.viewpoint.ViewpointPackage; @@ -169,9 +172,8 @@ public class ValidateAction extends Action { } /** - * @was-generated NOT it is not necessary to call the createMarkers - * operation since the markers are automatically added for - * EMF validation. <br/> + * @was-generated NOT it is not necessary to call the createMarkers operation since the markers are automatically + * added for EMF validation. <br/> * Validation is run on view elements and its children.<br/> */ private static void validate(DiagramEditPart diagramEditPart, View view) { @@ -209,10 +211,9 @@ public class ValidateAction extends Action { } /* - * The marker should reference the main aird file, to be sure to load all - * the user session when clicking on the marker if the corresponding session - * is closed (referenced analysis cases or CDO for which the main aird is - * local file with information concerning the server). + * The marker should reference the main aird file, to be sure to load all the user session when clicking on the + * marker if the corresponding session is closed (referenced analysis cases or CDO for which the main aird is local + * file with information concerning the server). * @was-generated NOT */ private static IFile getFileToMark(DiagramEditPart diagramEditPart, View view) { @@ -284,12 +285,8 @@ public class ValidateAction extends Action { } // Search diagram URI Object object = viewer.getFocusEditPart().getModel(); - String diagramUri = null; - if (object instanceof Diagram) { - final URI uri = EcoreUtil.getURI((Diagram) object); - diagramUri = uri.toString(); - } - SiriusMarkerNavigationProviderSpec.addValidationRuleMarker(nextStatus.getOriginRule(), target, elementId, diagramUri, semanticURI, location, message, statusSeverity); + String diagramDescriptorUri = getDRepresentationDescriptorURIFromDiagram(object); + SiriusMarkerNavigationProviderSpec.addValidationRuleMarker(nextStatus.getOriginRule(), target, elementId, diagramDescriptorUri, semanticURI, location, message, statusSeverity); } /** @@ -346,12 +343,23 @@ public class ValidateAction extends Action { } // Search diagram URI Object object = viewer.getFocusEditPart().getModel(); - String diagramUri = null; + String diagramDescriptorUri = getDRepresentationDescriptorURIFromDiagram(object); + SiriusMarkerNavigationProviderSpec.addMarker(target, elementId, diagramDescriptorUri, semanticURI, location, message, statusSeverity); + } + + private static String getDRepresentationDescriptorURIFromDiagram(Object object) { + String diagramDescriptorUri = null; if (object instanceof Diagram) { - final URI uri = EcoreUtil.getURI((Diagram) object); - diagramUri = uri.toString(); + Optional<DRepresentationDescriptor> optional = Optional.of((Diagram) object).map(View::getElement).filter(DDiagram.class::isInstance).map(d -> { + DRepresentationQuery query = new DRepresentationQuery((DDiagram) d); + return query.getRepresentationDescriptor(); + }); + if (optional.isPresent()) { + final URI uri = EcoreUtil.getURI(optional.get()); + diagramDescriptorUri = uri.toString(); + } } - SiriusMarkerNavigationProviderSpec.addMarker(target, elementId, diagramUri, semanticURI, location, message, statusSeverity); + return diagramDescriptorUri; } /** diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/marker/SiriusMarkerNavigationProviderSpec.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/marker/SiriusMarkerNavigationProviderSpec.java index ff20058139..ae0dde95b1 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/marker/SiriusMarkerNavigationProviderSpec.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/marker/SiriusMarkerNavigationProviderSpec.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2016 THALES GLOBAL SERVICES and others. + * Copyright (c) 2009, 2017 THALES GLOBAL SERVICES and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -12,6 +12,7 @@ package org.eclipse.sirius.diagram.ui.tools.internal.marker; import java.util.Arrays; import java.util.Map; +import java.util.Optional; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; @@ -21,6 +22,7 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.emf.common.ui.URIEditorInput; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.gef.EditPart; import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.sirius.business.api.modelingproject.AbstractRepresentationsFileJob; @@ -30,6 +32,7 @@ import org.eclipse.sirius.diagram.DDiagram; import org.eclipse.sirius.diagram.DSemanticDiagram; import org.eclipse.sirius.diagram.DiagramPlugin; import org.eclipse.sirius.diagram.business.api.query.EObjectQuery; +import org.eclipse.sirius.diagram.ui.business.api.query.DDiagramGraphicalQuery; import org.eclipse.sirius.diagram.ui.internal.providers.SiriusMarkerNavigationProvider; import org.eclipse.sirius.diagram.ui.part.SiriusDiagramEditor; import org.eclipse.sirius.diagram.ui.part.SiriusDiagramEditorUtil; @@ -40,6 +43,7 @@ import org.eclipse.sirius.ui.business.api.dialect.DialectEditor; import org.eclipse.sirius.ui.business.api.dialect.DialectUIManager; import org.eclipse.sirius.ui.business.api.session.SessionEditorInput; import org.eclipse.sirius.ui.tools.api.project.ModelingProjectManager; +import org.eclipse.sirius.viewpoint.DRepresentationDescriptor; import org.eclipse.sirius.viewpoint.description.validation.ValidationRule; import org.eclipse.ui.IEditorReference; import org.eclipse.ui.PartInitException; @@ -55,88 +59,114 @@ public class SiriusMarkerNavigationProviderSpec extends SiriusMarkerNavigationPr @Override protected void doGotoMarker(final IMarker marker) { - final String diagramURI = marker.getAttribute(NavigationMarkerConstants.DIAGRAM_URI, null); + final String diagramDescriptorURI = marker.getAttribute(NavigationMarkerConstants.DIAGRAM_DESCRIPTOR_URI, null); final String elementId = marker.getAttribute(org.eclipse.gmf.runtime.common.core.resources.IMarker.ELEMENT_ID, null); - if (diagramURI == null || elementId == null || !(getEditor() instanceof SiriusDiagramEditor)) { + if (diagramDescriptorURI == null || elementId == null || !(getEditor() instanceof SiriusDiagramEditor)) { return; } final SiriusDiagramEditor defaultEditor = (SiriusDiagramEditor) getEditor(); URI markedResource = URI.createPlatformResourceURI(marker.getResource().getFullPath().toString(), true); - URI markedDiagramURI = URI.createURI(diagramURI); - Diagram markedDiagram = (Diagram) defaultEditor.getDiagram().eResource().getEObject(markedDiagramURI.fragment()); - if (markedDiagram == null) { - markedDiagram = (Diagram) defaultEditor.getEditingDomain().getResourceSet().getEObject(markedDiagramURI, true); + URI markedDiagramDescriptorURI = URI.createURI(diagramDescriptorURI); + final SiriusDiagramEditor targetEditor = switchToTargetEditor(defaultEditor, markedResource, markedDiagramDescriptorURI); + if (targetEditor != null) { + final Map<?, ?> editPartRegistry = targetEditor.getDiagramGraphicalViewer().getEditPartRegistry(); + final EObject targetView = targetEditor.getDiagram().eResource().getEObject(elementId); + if (targetView == null) { + return; + } + final EditPart targetEditPart = (EditPart) editPartRegistry.get(targetView); + if (targetEditPart != null) { + SiriusDiagramEditorUtil.selectElementsInDiagram(targetEditor, Arrays.asList(new EditPart[] { targetEditPart })); + } + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().activate(targetEditor); } + } - if (markedDiagram != null) { - final SiriusDiagramEditor targetEditor = switchToTargetEditor(defaultEditor, markedResource, markedDiagramURI, markedDiagram); - - if (targetEditor != null) { - final Map<?, ?> editPartRegistry = targetEditor.getDiagramGraphicalViewer().getEditPartRegistry(); - final EObject targetView = targetEditor.getDiagram().eResource().getEObject(elementId); - if (targetView == null) { - return; + private SiriusDiagramEditor switchToTargetEditor(final SiriusDiagramEditor defaultEditor, final URI sessionResourceUri, URI markedDiagramDescriptorURI) { + SiriusDiagramEditor targetEditor = null; + DRepresentationDescriptor markedDiagramDescriptor = (DRepresentationDescriptor) defaultEditor.getDiagram().eResource().getEObject(markedDiagramDescriptorURI.fragment()); + if (markedDiagramDescriptor == null) { + markedDiagramDescriptor = (DRepresentationDescriptor) defaultEditor.getEditingDomain().getResourceSet().getEObject(markedDiagramDescriptorURI, true); + } + Optional<Diagram> optionalDiagram = getGMFDiagramFromDRepresentationDescriptor(markedDiagramDescriptor); + if (optionalDiagram.isPresent()) { + Diagram markerDiagram = optionalDiagram.get(); + URI markerDiagramURI = EcoreUtil.getURI(markerDiagram); + if (defaultEditor.getDiagram().equals(markerDiagram)) { + targetEditor = defaultEditor; + } else { + URIEditorInput editorInput = null; + String editorName = markedDiagramDescriptor.getName(); + Session session = new EObjectQuery(markedDiagramDescriptor).getSession(); + if (session != null) { + editorInput = new SessionEditorInput(markerDiagramURI, editorName, session); + } else { + editorInput = new URIEditorInput(markerDiagramURI, editorName); } - final EditPart targetEditPart = (EditPart) editPartRegistry.get(targetView); - if (targetEditPart != null) { - SiriusDiagramEditorUtil.selectElementsInDiagram(targetEditor, Arrays.asList(new EditPart[] { targetEditPart })); + final SiriusDiagramEditor searchEditor = searchEditor(editorInput); + if (searchEditor != null) { + targetEditor = searchEditor; + } else { + targetEditor = handleClosedEditorCase(defaultEditor, sessionResourceUri, markedDiagramDescriptorURI, markerDiagram, editorInput); } - PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().activate(targetEditor); } } + return targetEditor; } - private SiriusDiagramEditor switchToTargetEditor(final SiriusDiagramEditor defaultEditor, final URI sessionResourceUri, URI markerDiagramURI, Diagram markerDiagram) { - final SiriusDiagramEditor targetEditor; - if (defaultEditor.getDiagram().equals(markerDiagram)) { - targetEditor = defaultEditor; - } else { - URIEditorInput editorInput = null; - String editorName = SiriusMarkerNavigationProviderSpec.resolveSemanticElement(markerDiagram).getName(); - Session session = new EObjectQuery(markerDiagram).getSession(); - if (session != null) { - editorInput = new SessionEditorInput(markerDiagramURI, editorName, session); - } else { - editorInput = new URIEditorInput(markerDiagramURI, editorName); + private SiriusDiagramEditor openEditor(final SiriusDiagramEditor defaultEditor, URI markedDiagramDescriptorURI, Diagram markerDiagram, Session session) { + DRepresentationDescriptor markedDiagramDescriptor; + Diagram diagramToOpen = markerDiagram; + if (session.getTransactionalEditingDomain() != null && session.getTransactionalEditingDomain().getResourceSet() != defaultEditor.getEditingDomain().getResourceSet()) { + markedDiagramDescriptor = (DRepresentationDescriptor) session.getTransactionalEditingDomain().getResourceSet().getEObject(markedDiagramDescriptorURI, true); + Optional<Diagram> optionDiagramToOpen = getGMFDiagramFromDRepresentationDescriptor(markedDiagramDescriptor); + if (optionDiagramToOpen.isPresent()) { + diagramToOpen = optionDiagramToOpen.get(); } - final SiriusDiagramEditor searchEditor = searchEditor(editorInput); - if (searchEditor != null) { - targetEditor = searchEditor; - } else { - session = getOrOpenTargetSession(sessionResourceUri); + } - // Open the corresponding editor - SiriusDiagramEditor openedEditor = null; - if (session != null) { - Diagram diagramToOpen = markerDiagram; - if (session.getTransactionalEditingDomain() != null && session.getTransactionalEditingDomain().getResourceSet() != defaultEditor.getEditingDomain().getResourceSet()) { - diagramToOpen = (Diagram) session.getTransactionalEditingDomain().getResourceSet().getEObject(markerDiagramURI, true); - } + if (diagramToOpen != null) { + return (SiriusDiagramEditor) DialectUIManager.INSTANCE.openEditor(session, (DDiagram) diagramToOpen.getElement(), new NullProgressMonitor()); + } + return null; + } - if (diagramToOpen != null) { - openedEditor = (SiriusDiagramEditor) DialectUIManager.INSTANCE.openEditor(session, (DDiagram) diagramToOpen.getElement(), new NullProgressMonitor()); - } - } + private SiriusDiagramEditor handleClosedEditorCase(final SiriusDiagramEditor defaultEditor, final URI sessionResourceUri, URI markedDiagramDescriptorURI, Diagram markerDiagram, + URIEditorInput editorInput) { + SiriusDiagramEditor targetEditor = null; + Session session = getOrOpenTargetSession(sessionResourceUri); - if (openedEditor != null) { - targetEditor = openedEditor; - if (defaultEditor instanceof DialectEditor && ((DialectEditor) defaultEditor).getRepresentation() == null) { - // Close the error editor. - defaultEditor.close(false); - } - } else { - // Last chance try to change the input of the default - // editor. - targetEditor = defaultEditor; - targetEditor.setInput(editorInput); - } + // Open the corresponding editor + SiriusDiagramEditor openedEditor = null; + if (session != null) { + openedEditor = openEditor(defaultEditor, markedDiagramDescriptorURI, markerDiagram, session); + } + + if (openedEditor != null) { + targetEditor = openedEditor; + if (defaultEditor instanceof DialectEditor && ((DialectEditor) defaultEditor).getRepresentation() == null) { + // Close the error editor. + defaultEditor.close(false); } + } else { + // Last chance try to change the input of the default + // editor. + targetEditor = defaultEditor; + targetEditor.setInput(editorInput); } return targetEditor; } + private Optional<Diagram> getGMFDiagramFromDRepresentationDescriptor(DRepresentationDescriptor markedDiagramDescriptor) { + Optional<Diagram> optional = Optional.ofNullable(markedDiagramDescriptor).map(DRepresentationDescriptor::getRepresentation).filter(DDiagram.class::isInstance).map(dd -> { + DDiagramGraphicalQuery representationQuery = new DDiagramGraphicalQuery((DDiagram) dd); + return representationQuery.getAssociatedGMFDiagram().get(); + }); + return optional; + } + private Session getOrOpenTargetSession(final URI sessionResourceUri) { Session session = SessionManager.INSTANCE.getExistingSession(sessionResourceUri); if (session == null) { @@ -154,8 +184,7 @@ public class SiriusMarkerNavigationProviderSpec extends SiriusMarkerNavigationPr } /** - * Search a {@link SiriusDiagramEditor} with the <code>editorInput</code> in - * the opened editors. + * Search a {@link SiriusDiagramEditor} with the <code>editorInput</code> in the opened editors. * * @param editorInput * The editorInput to find. @@ -186,25 +215,23 @@ public class SiriusMarkerNavigationProviderSpec extends SiriusMarkerNavigationPr * The file to add marker * @param elementId * the element id (segment of URI) - * @param diagramURI - * the URI of the diagram where the element is + * @param diagramDescriptorURI + * the URI of the {@link DRepresentationDescriptor} where the element is * @param semanticURI * the URI of the semantic element * @param location - * A human-readable (localized) string which can be used to - * distinguish between markers on a resource + * A human-readable (localized) string which can be used to distinguish between markers on a resource * @param message * Describe the problem * @param statusSeverity - * A number from the set of high, normal and low priorities - * defined by the platform. + * A number from the set of high, normal and low priorities defined by the platform. * @return The added marker. */ - public static IMarker addMarker(final IFile file, final String elementId, final String diagramURI, final String semanticURI, final String location, final String message, + public static IMarker addMarker(final IFile file, final String elementId, final String diagramDescriptorURI, final String semanticURI, final String location, final String message, final int statusSeverity) { final IMarker marker = SiriusMarkerNavigationProvider.addMarker(file, elementId, location, message, statusSeverity); try { - marker.setAttribute(NavigationMarkerConstants.DIAGRAM_URI, diagramURI); + marker.setAttribute(NavigationMarkerConstants.DIAGRAM_DESCRIPTOR_URI, diagramDescriptorURI); marker.setAttribute(NavigationMarkerConstants.SEMANTIC_URI, semanticURI); marker.setAttribute(IDE.EDITOR_ID_ATTR, DDiagramEditor.EDITOR_ID); } catch (final CoreException e) { @@ -224,25 +251,23 @@ public class SiriusMarkerNavigationProviderSpec extends SiriusMarkerNavigationPr * The file to add marker * @param elementId * the element id (segment of URI) - * @param diagramURI - * the URI of the diagram where the element is + * @param diagramDescriptorUri + * the URI of the diagram DRepresentationDescriptor where the element is * @param semanticURI * the URI of the semantic element * @param location - * A human-readable (localized) string which can be used to - * distinguish between markers on a resource + * A human-readable (localized) string which can be used to distinguish between markers on a resource * @param message * Describe the problem * @param statusSeverity - * A number from the set of high, normal and low priorities - * defined by the platform. + * A number from the set of high, normal and low priorities defined by the platform. * @return The added marker. */ - public static IMarker addValidationRuleMarker(final ValidationRule validationRule, final IFile file, final String elementId, final String diagramURI, final String semanticURI, + public static IMarker addValidationRuleMarker(final ValidationRule validationRule, final IFile file, final String elementId, final String diagramDescriptorUri, final String semanticURI, final String location, final String message, final int statusSeverity) { final IMarker marker = SiriusMarkerNavigationProvider.addValidationRuleMarker(validationRule, file, elementId, location, message, statusSeverity); try { - marker.setAttribute(NavigationMarkerConstants.DIAGRAM_URI, diagramURI); + marker.setAttribute(NavigationMarkerConstants.DIAGRAM_DESCRIPTOR_URI, diagramDescriptorUri); marker.setAttribute(NavigationMarkerConstants.SEMANTIC_URI, semanticURI); marker.setAttribute(IDE.EDITOR_ID_ATTR, DDiagramEditor.EDITOR_ID); } catch (final CoreException e) { @@ -254,13 +279,11 @@ public class SiriusMarkerNavigationProviderSpec extends SiriusMarkerNavigationPr // CHECKSTYLE:ON /** - * Returns the target value of the {@link DSemanticDiagram} that is - * represented by the <code>diagram</code>. + * Returns the target value of the {@link DSemanticDiagram} that is represented by the <code>diagram</code>. * * @param diagram * a GMF diagram. - * @return the target value of the {@link DSemanticDiagram} that is - * represented by this diagram. + * @return the target value of the {@link DSemanticDiagram} that is represented by this diagram. */ public static EObject resolveTargetSemanticElement(final Diagram diagram) { final EObject semanticDiagram = diagram.getElement(); diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/resource/NavigationMarkerConstants.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/resource/NavigationMarkerConstants.java index ad494bc4b3..676de013e0 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/resource/NavigationMarkerConstants.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/resource/NavigationMarkerConstants.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009 THALES GLOBAL SERVICES. + * Copyright (c) 2009, 2017 THALES GLOBAL SERVICES. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -18,17 +18,14 @@ package org.eclipse.sirius.diagram.ui.tools.internal.resource; public final class NavigationMarkerConstants { /** - * The key for record the diagram info for retrieve the diagram on marker - * opening.<BR> - * The URI is like this : - * platform:/resource/projectName/folderPath/fileName#id + * The key for record the diagram descriptor info for retrieve the diagram on marker opening.<BR> + * The URI is like this : platform:/resource/projectName/folderPath/fileName#id */ - public static final String DIAGRAM_URI = "DIAGRAM_URI"; //$NON-NLS-1$ + public static final String DIAGRAM_DESCRIPTOR_URI = "DIAGRAM_DESCRIPTOR_URI"; //$NON-NLS-1$ /** * The key for record the semantic element URI.<BR> - * The URI is like this : - * platform:/resource/projectName/folderPath/fileName#id + * The URI is like this : platform:/resource/projectName/folderPath/fileName#id */ public static final String SEMANTIC_URI = "SEMANTIC_URI"; //$NON-NLS-1$ |
