/**
   * Registers item within the group.
   *
   * @param item item.
   * @return index within the group.
   */
  public int register(ResultItemPanel item) {
    int visibleItemsCount = getVisibleItemsCount();

    boolean priority = item.getItem().isPriority();
    int index = priority ? 0 : items.size();
    items.add(index, item);

    boolean filtered = isFiltered(item);
    item.setFiltered(filtered);

    if (!filtered) recalcView();
    if (visibleItemsCount == 0) setVisible(true);

    return index;
  }
  /**
   * Sets filtering time. If the time is set to <code>-1</code> then filtering is off. Otherwise it
   * shows the time after which all items are allowed.
   *
   * @param aLimitTime the time used for limiting.
   */
  public void setLimitTime(long aLimitTime) {
    limitTime = aLimitTime;

    int shown = 0;
    int hidden = 0;
    for (ResultItemPanel item : items) {
      item.setFiltered(isFiltered(item));
      item.setVisibility(!item.isFiltered() && shown < itemLimit);

      if (item.isVisible()) shown++;
      else if (!item.isFiltered()) hidden++;
    }

    setVisible(shown > 0);
    moreItem.setCount(hidden);
  }