diff options
Diffstat (limited to 'plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/part/ValidateAction.java')
-rw-r--r-- | plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/part/ValidateAction.java | 95 |
1 files changed, 55 insertions, 40 deletions
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/part/ValidateAction.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/part/ValidateAction.java index 1edc8277200..09e559c673f 100644 --- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/part/ValidateAction.java +++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/src/org/eclipse/papyrus/uml/diagram/clazz/part/ValidateAction.java @@ -74,8 +74,8 @@ public class ValidateAction extends Action { @Override public void run() { IWorkbenchPart workbenchPart = page.getActivePart(); - if(workbenchPart instanceof IDiagramWorkbenchPart) { - final IDiagramWorkbenchPart part = (IDiagramWorkbenchPart)workbenchPart; + if (workbenchPart instanceof IDiagramWorkbenchPart) { + final IDiagramWorkbenchPart part = (IDiagramWorkbenchPart) workbenchPart; try { new WorkspaceModifyDelegatingOperation(new IRunnableWithProgress() { @@ -95,10 +95,11 @@ public class ValidateAction extends Action { */ public static void runValidation(View view) { try { - if(UMLDiagramEditorUtil.openDiagram(view.eResource())) { - IEditorPart editorPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); - if(editorPart instanceof IDiagramWorkbenchPart) { - runValidation(((IDiagramWorkbenchPart)editorPart).getDiagramEditPart(), view); + if (UMLDiagramEditorUtil.openDiagram(view.eResource())) { + IEditorPart editorPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() + .getActiveEditor(); + if (editorPart instanceof IDiagramWorkbenchPart) { + runValidation(((IDiagramWorkbenchPart) editorPart).getDiagramEditPart(), view); } else { runNonUIValidation(view); } @@ -113,10 +114,12 @@ public class ValidateAction extends Action { */ public static void runNonUIValidation(View view) { Shell shell = Display.getCurrent().getActiveShell(); - if(shell == null) { + if (shell == null) { shell = new Shell(); } - DiagramEditPart diagramEditPart = OffscreenEditPartFactory.getInstance().createDiagramEditPart(view.getDiagram(), shell); + + DiagramEditPart diagramEditPart = OffscreenEditPartFactory.getInstance() + .createDiagramEditPart(view.getDiagram(), shell); runValidation(diagramEditPart, view); } @@ -140,7 +143,7 @@ public class ValidateAction extends Action { * @generated */ private static Diagnostic runEMFValidator(View target) { - if(target.isSetElement() && target.getElement() != null) { + if (target.isSetElement() && target.getElement() != null) { return new Diagnostician() { @Override @@ -157,14 +160,15 @@ public class ValidateAction extends Action { */ private static void validate(DiagramEditPart diagramEditPart, View view) { IFile target = view.eResource() != null ? WorkspaceSynchronizer.getFile(view.eResource()) : null; - if(target != null) { + if (target != null) { UMLMarkerNavigationProvider.deleteMarkers(target); } Diagnostic diagnostic = runEMFValidator(view); createMarkers(target, diagnostic, diagramEditPart); - IBatchValidator validator = (IBatchValidator)ModelValidationService.getInstance().newValidator(EvaluationMode.BATCH); + IBatchValidator validator = (IBatchValidator) ModelValidationService.getInstance() + .newValidator(EvaluationMode.BATCH); validator.setIncludeLiveConstraints(true); - if(view.isSetElement() && view.getElement() != null) { + if (view.isSetElement() && view.getElement() != null) { IStatus status = validator.validate(view.getElement()); createMarkers(target, status, diagramEditPart); } @@ -174,16 +178,20 @@ public class ValidateAction extends Action { * @generated */ private static void createMarkers(IFile target, IStatus validationStatus, DiagramEditPart diagramEditPart) { - if(validationStatus.isOK()) { + if (validationStatus.isOK()) { return; } final IStatus rootStatus = validationStatus; List allStatuses = new ArrayList(); - UMLDiagramEditorUtil.LazyElement2ViewMap element2ViewMap = new UMLDiagramEditorUtil.LazyElement2ViewMap(diagramEditPart.getDiagramView(), collectTargetElements(rootStatus, new HashSet<EObject>(), allStatuses)); - for(Iterator it = allStatuses.iterator(); it.hasNext();) { - IConstraintStatus nextStatus = (IConstraintStatus)it.next(); + UMLDiagramEditorUtil.LazyElement2ViewMap element2ViewMap = new UMLDiagramEditorUtil.LazyElement2ViewMap( + diagramEditPart.getDiagramView(), + collectTargetElements(rootStatus, new HashSet<EObject>(), allStatuses)); + for (Iterator it = allStatuses.iterator(); it.hasNext();) { + IConstraintStatus nextStatus = (IConstraintStatus) it.next(); View view = UMLDiagramEditorUtil.findView(diagramEditPart, nextStatus.getTarget(), element2ViewMap); - addMarker(diagramEditPart.getViewer(), target, view.eResource().getURIFragment(view), EMFCoreUtil.getQualifiedName(nextStatus.getTarget(), true), nextStatus.getMessage(), nextStatus.getSeverity()); + addMarker(diagramEditPart.getViewer(), target, view.eResource().getURIFragment(view), + EMFCoreUtil.getQualifiedName(nextStatus.getTarget(), true), nextStatus.getMessage(), + nextStatus.getSeverity()); } } @@ -191,19 +199,23 @@ public class ValidateAction extends Action { * @generated */ private static void createMarkers(IFile target, Diagnostic emfValidationStatus, DiagramEditPart diagramEditPart) { - if(emfValidationStatus.getSeverity() == Diagnostic.OK) { + if (emfValidationStatus.getSeverity() == Diagnostic.OK) { return; } final Diagnostic rootStatus = emfValidationStatus; List<Diagnostic> allDiagnostics = new ArrayList<Diagnostic>(); - UMLDiagramEditorUtil.LazyElement2ViewMap element2ViewMap = new UMLDiagramEditorUtil.LazyElement2ViewMap(diagramEditPart.getDiagramView(), collectTargetElements(rootStatus, new HashSet<EObject>(), allDiagnostics)); - for(Iterator<Diagnostic> it = emfValidationStatus.getChildren().iterator(); it.hasNext();) { + UMLDiagramEditorUtil.LazyElement2ViewMap element2ViewMap = new UMLDiagramEditorUtil.LazyElement2ViewMap( + diagramEditPart.getDiagramView(), + collectTargetElements(rootStatus, new HashSet<EObject>(), allDiagnostics)); + for (Iterator<Diagnostic> it = emfValidationStatus.getChildren().iterator(); it.hasNext();) { Diagnostic nextDiagnostic = it.next(); List<?> data = nextDiagnostic.getData(); - if(data != null && !data.isEmpty() && data.get(0) instanceof EObject) { - EObject element = (EObject)data.get(0); + if (data != null && !data.isEmpty() && data.get(0) instanceof EObject) { + EObject element = (EObject) data.get(0); View view = UMLDiagramEditorUtil.findView(diagramEditPart, element, element2ViewMap); - addMarker(diagramEditPart.getViewer(), target, view.eResource().getURIFragment(view), EMFCoreUtil.getQualifiedName(element, true), nextDiagnostic.getMessage(), diagnosticToStatusSeverity(nextDiagnostic.getSeverity())); + addMarker(diagramEditPart.getViewer(), target, view.eResource().getURIFragment(view), + EMFCoreUtil.getQualifiedName(element, true), nextDiagnostic.getMessage(), + diagnosticToStatusSeverity(nextDiagnostic.getSeverity())); } } } @@ -211,8 +223,9 @@ public class ValidateAction extends Action { /** * @generated */ - private static void addMarker(EditPartViewer viewer, IFile target, String elementId, String location, String message, int statusSeverity) { - if(target == null) { + private static void addMarker(EditPartViewer viewer, IFile target, String elementId, String location, + String message, int statusSeverity) { + if (target == null) { return; } UMLMarkerNavigationProvider.addMarker(target, elementId, location, message, statusSeverity); @@ -222,13 +235,13 @@ public class ValidateAction extends Action { * @generated */ private static int diagnosticToStatusSeverity(int diagnosticSeverity) { - if(diagnosticSeverity == Diagnostic.OK) { + if (diagnosticSeverity == Diagnostic.OK) { return IStatus.OK; - } else if(diagnosticSeverity == Diagnostic.INFO) { + } else if (diagnosticSeverity == Diagnostic.INFO) { return IStatus.INFO; - } else if(diagnosticSeverity == Diagnostic.WARNING) { + } else if (diagnosticSeverity == Diagnostic.WARNING) { return IStatus.WARNING; - } else if(diagnosticSeverity == Diagnostic.ERROR || diagnosticSeverity == Diagnostic.CANCEL) { + } else if (diagnosticSeverity == Diagnostic.ERROR || diagnosticSeverity == Diagnostic.CANCEL) { return IStatus.ERROR; } return IStatus.INFO; @@ -237,14 +250,15 @@ public class ValidateAction extends Action { /** * @generated */ - private static Set<EObject> collectTargetElements(IStatus status, Set<EObject> targetElementCollector, List<IConstraintStatus> allConstraintStatuses) { - if(status instanceof IConstraintStatus) { - targetElementCollector.add(((IConstraintStatus)status).getTarget()); - allConstraintStatuses.add((IConstraintStatus)status); + private static Set<EObject> collectTargetElements(IStatus status, Set<EObject> targetElementCollector, + List<IConstraintStatus> allConstraintStatuses) { + if (status instanceof IConstraintStatus) { + targetElementCollector.add(((IConstraintStatus) status).getTarget()); + allConstraintStatuses.add((IConstraintStatus) status); } - if(status.isMultiStatus()) { + if (status.isMultiStatus()) { IStatus[] children = status.getChildren(); - for(int i = 0; i < children.length; i++) { + for (int i = 0; i < children.length; i++) { collectTargetElements(children[i], targetElementCollector, allConstraintStatuses); } } @@ -254,16 +268,17 @@ public class ValidateAction extends Action { /** * @generated */ - private static Set<EObject> collectTargetElements(Diagnostic diagnostic, Set<EObject> targetElementCollector, List<Diagnostic> allDiagnostics) { + private static Set<EObject> collectTargetElements(Diagnostic diagnostic, Set<EObject> targetElementCollector, + List<Diagnostic> allDiagnostics) { List<?> data = diagnostic.getData(); EObject target = null; - if(data != null && !data.isEmpty() && data.get(0) instanceof EObject) { - target = (EObject)data.get(0); + if (data != null && !data.isEmpty() && data.get(0) instanceof EObject) { + target = (EObject) data.get(0); targetElementCollector.add(target); allDiagnostics.add(diagnostic); } - if(diagnostic.getChildren() != null && !diagnostic.getChildren().isEmpty()) { - for(Iterator<Diagnostic> it = diagnostic.getChildren().iterator(); it.hasNext();) { + if (diagnostic.getChildren() != null && !diagnostic.getChildren().isEmpty()) { + for (Iterator<Diagnostic> it = diagnostic.getChildren().iterator(); it.hasNext();) { collectTargetElements(it.next(), targetElementCollector, allDiagnostics); } } |