@Override
  public Iterator<ITreeWrapper> getWrappers(final Object parent) {
    Iterator<ITreeWrapper> result = null;

    try {
      IProjectModel projectModel = null;
      IPropertyStatisticalModel sourceModel = null;

      if (parent != null) {
        if (parent.equals(ObjectUtils.NULL)) {
          projectModel = projectModelProvider.getActiveProjectModel();
        } else if (parent instanceof IUIItem) {
          sourceModel = ((IUIItem) parent).castChild(IPropertyStatisticalModel.class);
        }
      }

      Iterator<IDistributionModel> modelIterator = null;

      if (projectModel != null) {
        modelIterator = new DistributionModelIterator(getSourceModelIterator(projectModel));
      } else if (sourceModel != null) {
        modelIterator = distributionModelProvider.findAll(sourceModel);
      }

      if (modelIterator != null) {
        result = new DistributionWrapperIterator(modelIterator);
      }
    } catch (final ModelException e) {
      LOGGER.error("Error on collecting Tree Wrappers", e);
    }
    return result;
  }
 private Iterator<IDistributionModel> getDistributionModelsIterator(
     final IPropertyStatisticalModel sourceModel) {
   try {
     return distributionModelProvider.findAll(sourceModel);
   } catch (final ModelException e) {
     LOGGER.error("Error on searching for Distribution Models", e);
   }
   return null;
 }