/**
   * Get all available elements.
   *
   * @return the available elements
   */
  protected Collection<?> getAvailableElements() {
    final Collection<FilterDescription> result = new HashSet<FilterDescription>();

    if (diagram != null && diagram.getDescription() != null) {
      final DiagramDescription desc = diagram.getDescription();
      result.addAll(desc.getFilters());
    }
    result.removeAll(getAppliedElements());
    return result;
  }
 /**
  * Overridden to checks that a {@link DiagramElementMapping} is owned by a {@link
  * DiagramDescription}.
  *
  * <p>{@inheritDoc}
  */
 public boolean apply(DiagramElementMapping diagramElementMapping) {
   return diagramDescription.getAllEdgeMappings().contains(diagramElementMapping)
       || diagramDescription.getAllNodeMappings().contains(diagramElementMapping)
       || diagramDescription.getAllContainerMappings().contains(diagramElementMapping);
 }