예제 #1
0
  /**
   * Carrega todas as categorias (nome do projecto) que utilizaram o ponto de extensão
   * "SearchProvider". Além disso, para cada objecto presente na lista de resultados de cada
   * categoria, atribuí o provider correspondente e faz um mapeamento dessa ligação entre objecto e
   * provider num hashmap.
   *
   * @param text
   */
  private void loadCategories(String text) {

    providersCategories.clear();

    for (Map.Entry<SearchProvider, ExternalImage> entry : providerAndImageMap.entrySet()) {

      ProviderCategory category =
          new ProviderCategory(
              entry.getKey().getClass().getSimpleName(),
              pidescoServices.getImageFromPlugin(
                  entry.getValue().getPlugin(), entry.getValue().getImageName()));
      category.hits = entry.getKey().getResults(text);

      for (Object o : category.hits) {
        providerAndObjectMap.put(o, entry.getKey());
      }
      if (!category.hits.isEmpty()) providersCategories.add(category);
    }

    if (providersCategories.isEmpty())
      providersCategories.add(new ProviderCategory(NO_RESULTS_FOUND, null));

    tree.setInput(providersCategories);
    tree.expandAll();
  }