2017-02-14 11 views
0

私はIsearchResultオブジェクトを持っています。各結果を比較するためにスロー(繰り返し)する必要があります。私はこのリストを反復するためにneeed私はイープル検索の結果を比較するためにISearchResultを繰り返します(

and then I have this results' list

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

(それは ISearchResultオブジェクトint型店舗だった)、クエリの各結果を比較します。

私はこのコードを持っています。

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

結果を反復処理することはできません。

queryStartingメソッドにISearchResultListenerを追加し、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'のオブジェクトを返しています。どうすればそれを処理できますか? –

関連する問題