2017-02-14 3 views
0

У меня есть объект IsearchResult Мне нужно пройти через (итерацию), чтобы сравнить каждый результат.Мне нужно пройти (повторить) ISearchResult, чтобы сравнить результаты поиска затмения

e.g. I look for (ctrl+H) add method.

and then I have this results' list

Я в нужду пройти по этому списку (это был магазин ИНТ на ISearchResult объекта) и сравните каждый результат запроса.

У меня этот код.

NewSearchUI.addQueryListener(new IQueryListener() { 

      @Override 
      public void queryStarting(ISearchQuery query) { 
       System.out.println("query start " + query); 

      } 

      @Override 
      public void queryRemoved(ISearchQuery query) { 
      } 

      @Override 
      public void queryFinished(ISearchQuery query) { 
       System.out.println("query finished " + query); 
       System.out.println("result " + query.getSearchResult().getLabel()); 
       query.getSearchResult().addListener(new ISearchResultListener() { 

        @Override 
        public void searchResultChanged(SearchResultEvent e) { 
        } 
       }); 
      } 

      @Override 
      public void queryAdded(ISearchQuery query) { 
      } 

Мне нужно перебрать список результатов и сравнить или извлечь информацию по каждому результату.

+0

Где вы застряли? – nitind

+0

Мне нужно повторить ISearchResult с помощью слушателя, чтобы узнать каждый результат –

ответ

1

Вы не можете перебирать результаты.

Вы должны добавить ISearchResultListener в способе queryStarting и сохранить результаты, как им даны в сообщении searchResultChanged.

NewSearchUI.addQueryListener(new IQueryListener() { 

     @Override 
     public void queryStarting(ISearchQuery query) { 
      System.out.println("query start " + query); 

      // Starting listening to the search query 

      query.getSearchResult().addListener(new ISearchResultListener() { 

       @Override 
       public void searchResultChanged(SearchResultEvent e) { 
        // TODO save the results as they appear 
       } 
      }); 

     } 

     @Override 
     public void queryRemoved(ISearchQuery query) { 
     } 

     @Override 
     public void queryFinished(ISearchQuery query) { 
      System.out.println("query finished " + query); 
      System.out.println("result " + query.getSearchResult().getLabel()); 
     } 

     @Override 
     public void queryAdded(ISearchQuery query) { 
     } 
+0

, если я выполняю поиск методов в java, как узнать имя методов в списке результатов? –

+0

Не знаю. Вам нужно будет запустить код и посмотреть, что вы получаете. –

+0

возвращает объект класса 'org.eclipse.jdt.internal.ui.search.JavaSearchResult'. как я могу справиться с этим? –

Смежные вопросы