/** @generated */ private static int findElementsInDiagramByID( DiagramEditPart diagramPart, EObject element, List<EditPart> editPartCollector) { IDiagramGraphicalViewer viewer = (IDiagramGraphicalViewer) diagramPart.getViewer(); final int intialNumOfEditParts = editPartCollector.size(); if (element instanceof View) { // support notation element lookup EditPart editPart = (EditPart) viewer.getEditPartRegistry().get(element); if (editPart != null) { editPartCollector.add(editPart); return 1; } } String elementID = EMFCoreUtil.getProxyID(element); @SuppressWarnings("unchecked") List<EditPart> associatedParts = viewer.findEditPartsForElement(elementID, IGraphicalEditPart.class); // perform the possible hierarchy disjoint -> take the top-most parts only for (EditPart nextPart : associatedParts) { EditPart parentPart = nextPart.getParent(); while (parentPart != null && !associatedParts.contains(parentPart)) { parentPart = parentPart.getParent(); } if (parentPart == null) { editPartCollector.add(nextPart); } } if (intialNumOfEditParts == editPartCollector.size()) { if (!associatedParts.isEmpty()) { editPartCollector.add(associatedParts.get(0)); } else { if (element.eContainer() != null) { return findElementsInDiagramByID(diagramPart, element.eContainer(), editPartCollector); } } } return editPartCollector.size() - intialNumOfEditParts; }