Beispiel #1
0
  boolean needsRefresh(
      Class<? extends IEntity> entityClass,
      Set<? extends ModelEvent> events,
      boolean searchResultsChanged) {

    /* In case the Filter is not active at all */
    if (fMatcher == null && fType == Type.SHOW_ALL) return false;

    /* News Event */
    if (entityClass.equals(INews.class)) {
      if (fType == Type.SHOW_NEW) return CoreUtils.isNewStateChange(events);
      else if (fType == Type.SHOW_UNREAD) return CoreUtils.isReadStateChange(events);
      else if (fType == Type.SHOW_STICKY) return CoreUtils.isStickyStateChange(events);
    }

    /* Bookmark Event */
    else if (IBookMark.class.isAssignableFrom(entityClass)) {
      if (fMatcher != null) return true;

      if (fType == Type.SHOW_NEVER_VISITED || fType == Type.SHOW_ERRONEOUS) return true;
    }

    /* Searchmark / News Bin Event */
    else if (ISearchMark.class.isAssignableFrom(entityClass)
        || INewsBin.class.isAssignableFrom(entityClass)) {
      if (fMatcher != null && !searchResultsChanged) return true;

      if (fType == Type.SHOW_NEW || fType == Type.SHOW_UNREAD) return true;
    }

    return false;
  }