Search in sources :

Example 1 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class ValidatorView method selectObjects.

void selectObjects(IStructuredSelection selection) {
    if (selection != null) {
        List<IArchimateConcept> treeList = new ArrayList<IArchimateConcept>();
        List<IDiagramModel> viewList = new ArrayList<IDiagramModel>();
        List<IDiagramModelComponent> viewComponentList = new ArrayList<IDiagramModelComponent>();
        for (Object o : selection.toArray()) {
            if (o instanceof IIssue) {
                IIssue issue = (IIssue) o;
                if (issue.getObject() instanceof IArchimateConcept) {
                    treeList.add((IArchimateConcept) issue.getObject());
                } else if (issue.getObject() instanceof IDiagramModel) {
                    viewList.add((IDiagramModel) issue.getObject());
                } else if (issue.getObject() instanceof IDiagramModelComponent) {
                    viewList.add(((IDiagramModelComponent) issue.getObject()).getDiagramModel());
                    viewComponentList.add(((IDiagramModelComponent) issue.getObject()));
                }
            }
        }
        if (!treeList.isEmpty()) {
            ITreeModelView view = (ITreeModelView) ViewManager.showViewPart(ITreeModelView.ID, false);
            if (view != null) {
                view.getViewer().setSelection(new StructuredSelection(treeList), true);
            }
        }
        if (!viewList.isEmpty()) {
            for (IDiagramModel dm : viewList) {
                IDiagramModelEditor editor = EditorManager.openDiagramEditor(dm, false);
                if (editor != null) {
                    // Needs to be asyncExec to allow EditorPart to open if it is currently closed
                    getSite().getShell().getDisplay().asyncExec(() -> {
                        editor.selectObjects(viewComponentList.toArray());
                    });
                }
            }
        }
    }
}
Also used : ITreeModelView(com.archimatetool.editor.views.tree.ITreeModelView) IDiagramModelComponent(com.archimatetool.model.IDiagramModelComponent) IDiagramModel(com.archimatetool.model.IDiagramModel) ArrayList(java.util.ArrayList) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) IArchimateConcept(com.archimatetool.model.IArchimateConcept) IIssue(com.archimatetool.hammer.validation.issues.IIssue) IDiagramModelEditor(com.archimatetool.editor.diagram.IDiagramModelEditor)

Example 2 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class UnusedElementsChecker method findUnusedElements.

List<IIssue> findUnusedElements() {
    List<IIssue> issues = new ArrayList<IIssue>();
    for (IArchimateElement element : fArchimateElements) {
        if (!DiagramModelUtils.isArchimateConceptReferencedInDiagrams(element)) {
            String name = ArchiLabelProvider.INSTANCE.getLabel(element);
            String description = NLS.bind(DESCRIPTION, name);
            String explanation = NLS.bind(EXPLANATION, name);
            IIssue issue = new WarningType(NAME, description, explanation, element);
            issues.add(issue);
        }
    }
    return issues;
}
Also used : ArrayList(java.util.ArrayList) WarningType(com.archimatetool.hammer.validation.issues.WarningType) IArchimateElement(com.archimatetool.model.IArchimateElement) IIssue(com.archimatetool.hammer.validation.issues.IIssue)

Example 3 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class ViewpointChecker method findComponentsInWrongViewpoints.

List<IIssue> findComponentsInWrongViewpoints() {
    List<IIssue> issues = new ArrayList<IIssue>();
    for (IArchimateDiagramModel dm : fViews) {
        String id = dm.getViewpoint();
        IViewpoint viewPoint = ViewpointManager.INSTANCE.getViewpoint(id);
        for (Iterator<EObject> iter = dm.eAllContents(); iter.hasNext(); ) {
            EObject eObject = iter.next();
            if (eObject instanceof IDiagramModelArchimateObject) {
                IDiagramModelArchimateObject dmo = (IDiagramModelArchimateObject) eObject;
                IArchimateElement element = dmo.getArchimateElement();
                if (!viewPoint.isAllowedConcept(element.eClass())) {
                    IIssue issue = createIssue(dmo, dm.getName(), viewPoint.getName());
                    issues.add(issue);
                }
            }
        }
    }
    return issues;
}
Also used : EObject(org.eclipse.emf.ecore.EObject) ArrayList(java.util.ArrayList) IArchimateElement(com.archimatetool.model.IArchimateElement) IDiagramModelArchimateObject(com.archimatetool.model.IDiagramModelArchimateObject) IIssue(com.archimatetool.hammer.validation.issues.IIssue) IViewpoint(com.archimatetool.model.viewpoints.IViewpoint) IArchimateDiagramModel(com.archimatetool.model.IArchimateDiagramModel)

Example 4 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class JunctionsChecker method findBogusJunctions.

List<IIssue> findBogusJunctions() {
    List<IIssue> issues = new ArrayList<IIssue>();
    for (IArchimateElement element : fArchimateElements) {
        if (element instanceof IJunction) {
            IArchimateRelationship rel = null;
            for (IArchimateRelationship relation : ArchimateModelUtils.getAllRelationshipsForConcept(element)) {
                if (rel != null && rel.eClass() != relation.eClass()) {
                    String name = ArchiLabelProvider.INSTANCE.getLabel(element);
                    String description = NLS.bind(DESCRIPTION, name);
                    String explanation = NLS.bind(EXPLANATION, name);
                    IIssue issue = new ErrorType(NAME, description, explanation, element);
                    issues.add(issue);
                    break;
                }
                rel = relation;
            }
        }
    }
    return issues;
}
Also used : ErrorType(com.archimatetool.hammer.validation.issues.ErrorType) ArrayList(java.util.ArrayList) IArchimateElement(com.archimatetool.model.IArchimateElement) IArchimateRelationship(com.archimatetool.model.IArchimateRelationship) IIssue(com.archimatetool.hammer.validation.issues.IIssue) IJunction(com.archimatetool.model.IJunction)

Example 5 with IIssue

use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.

the class UnusedRelationsChecker method findUnusedRelations.

List<IIssue> findUnusedRelations() {
    List<IIssue> issues = new ArrayList<IIssue>();
    for (IArchimateRelationship relation : fRelations) {
        if (!DiagramModelUtils.isArchimateConceptReferencedInDiagrams(relation)) {
            String name = ArchiLabelProvider.INSTANCE.getLabel(relation);
            String description = NLS.bind(DESCRIPTION, name);
            String explanation = NLS.bind(EXPLANATION, name);
            IIssue issue = new WarningType(NAME, description, explanation, relation);
            issues.add(issue);
        }
    }
    return issues;
}
Also used : ArrayList(java.util.ArrayList) WarningType(com.archimatetool.hammer.validation.issues.WarningType) IArchimateRelationship(com.archimatetool.model.IArchimateRelationship) IIssue(com.archimatetool.hammer.validation.issues.IIssue)

Aggregations

IIssue (com.archimatetool.hammer.validation.issues.IIssue)18 ArrayList (java.util.ArrayList)18 IArchimateElement (com.archimatetool.model.IArchimateElement)9 Test (org.junit.Test)9 IArchimateRelationship (com.archimatetool.model.IArchimateRelationship)7 IArchimateDiagramModel (com.archimatetool.model.IArchimateDiagramModel)6 IDiagramModelArchimateObject (com.archimatetool.model.IDiagramModelArchimateObject)6 WarningType (com.archimatetool.hammer.validation.issues.WarningType)4 AdviceType (com.archimatetool.hammer.validation.issues.AdviceType)3 ErrorType (com.archimatetool.hammer.validation.issues.ErrorType)3 IArchimateModel (com.archimatetool.model.IArchimateModel)2 ArchimateTestModel (com.archimatetool.testingtools.ArchimateTestModel)2 EObject (org.eclipse.emf.ecore.EObject)2 IDiagramModelEditor (com.archimatetool.editor.diagram.IDiagramModelEditor)1 ITreeModelView (com.archimatetool.editor.views.tree.ITreeModelView)1 IArchimateConcept (com.archimatetool.model.IArchimateConcept)1 ICompositionRelationship (com.archimatetool.model.ICompositionRelationship)1 IDiagramModel (com.archimatetool.model.IDiagramModel)1 IDiagramModelArchimateConnection (com.archimatetool.model.IDiagramModelArchimateConnection)1 IDiagramModelComponent (com.archimatetool.model.IDiagramModelComponent)1