/**
   * Check if a diagram is empty.
   *
   * @param diagram diagram to check
   * @return true if no element is present in diagram
   */
  public boolean isDiagramEmpty(DDiagram diagram) {
    final List<EObject> elements = new ArrayList<EObject>();
    for (final EObject object : diagram.getDiagramElements()) {
      if (!(object instanceof DSemanticDiagram)) {
        if (object instanceof DNodeSpec) {
          // ignore empty diagram image
          if (!((DNodeSpec) object)
              .getActualMapping()
              .getName()
              .equals("Empty Diagram")) { // $NON-NLS-1$
            elements.add(object);
          }
        } else {
          elements.add(object);
        }
      }
    }

    if (elements.size() == 0) {
      return true;
    }
    return false;
  }