Search in sources :

Example 1 with EObjectQuery

use of org.eclipse.sirius.diagram.business.api.query.EObjectQuery in project Palladio-Editors-Sirius by PalladioSimulator.

the class SemanticElementsValidateAction method getDSemanticDecorator.

private static DSemanticDecorator getDSemanticDecorator(EObject element, DiagramEditPart diagramEditPart) {
    DSemanticDecorator dSemanticDecorator = null;
    if (!(element instanceof DSemanticDecorator)) {
        Collection<EObject> xrefs = new EObjectQuery(element).getInverseReferences(ViewpointPackage.Literals.DSEMANTIC_DECORATOR__TARGET);
        if (xrefs.isEmpty() && element.eContainer() != null) {
            xrefs = new EObjectQuery(element.eContainer()).getInverseReferences(ViewpointPackage.Literals.DSEMANTIC_DECORATOR__TARGET);
        }
        DDiagram dDiagram = (DDiagram) diagramEditPart.getDiagramView().getElement();
        for (EObject eObject : xrefs) {
            if (eObject == dDiagram || eObject instanceof DSemanticDecorator && EcoreUtil.isAncestor(dDiagram, eObject)) {
                dSemanticDecorator = (DSemanticDecorator) eObject;
                break;
            }
        }
    } else {
        dSemanticDecorator = (DSemanticDecorator) element;
    }
    return dSemanticDecorator;
}
Also used : DSemanticDecorator(org.eclipse.sirius.viewpoint.DSemanticDecorator) EObjectQuery(org.eclipse.sirius.diagram.business.api.query.EObjectQuery) DDiagram(org.eclipse.sirius.diagram.DDiagram) EObject(org.eclipse.emf.ecore.EObject)

Example 2 with EObjectQuery

use of org.eclipse.sirius.diagram.business.api.query.EObjectQuery in project InformationSystem by ObeoNetwork.

the class RequirementsServices method isBorderedNode.

/**
 * Checks whether a DNode is a bordered node
 * @param semanticDecorator
 * @return
 */
private boolean isBorderedNode(DSemanticDecorator semanticDecorator) {
    if (semanticDecorator instanceof DNode) {
        Collection<EObject> inverseReferences = new EObjectQuery((DNode) semanticDecorator).getInverseReferences(org.eclipse.gmf.runtime.notation.NotationPackage.Literals.VIEW__ELEMENT);
        Iterator<EObject> iterator = inverseReferences.iterator();
        if (iterator.hasNext()) {
            EObject next = iterator.next();
            if (next instanceof Node) {
                return new NodeQuery((Node) next).isBorderedNode();
            }
        }
    }
    return false;
}
Also used : EObjectQuery(org.eclipse.sirius.diagram.business.api.query.EObjectQuery) DNode(org.eclipse.sirius.diagram.DNode) EObject(org.eclipse.emf.ecore.EObject) Node(org.eclipse.gmf.runtime.notation.Node) DNode(org.eclipse.sirius.diagram.DNode) NodeQuery(org.eclipse.sirius.diagram.ui.business.api.query.NodeQuery)

Aggregations

EObject (org.eclipse.emf.ecore.EObject)2 EObjectQuery (org.eclipse.sirius.diagram.business.api.query.EObjectQuery)2 Node (org.eclipse.gmf.runtime.notation.Node)1 DDiagram (org.eclipse.sirius.diagram.DDiagram)1 DNode (org.eclipse.sirius.diagram.DNode)1 NodeQuery (org.eclipse.sirius.diagram.ui.business.api.query.NodeQuery)1 DSemanticDecorator (org.eclipse.sirius.viewpoint.DSemanticDecorator)1