検索メソッドを定義する
続いてGoogleResultViewクラスに検索メソッドを定義します。メソッド名は、
public void search(String text);
としました。ただ、中身については後ほど実装しますので、とりあえず以下のようなテスト実装としておきました。
public void search(String text) { logger.debug("search(String) - start"); try { String key = GooglePlugin.getDefault().getPreferenceStore() .getString(PreferenceConstants.GOOGLE_KEY); GoogleSearchResult result = GoogleCorePlugin.getDefault().search(key, text); ResultElement[] resultElements = result.getResultElements(); logger.debug("search(String)の検索結果件数は " + resultElements.length + " 件でした。"); viewer.setInput(resultElements); } catch (CoreException e) { logger.error("search(String)", e); } logger.debug("search(String) - end"); }
ここまでをまとめますと、
- ビューにはTableViewerが配置されている
- そのTableViewerにはTitle、Summary、URLという3つのカラムがある
- 検索メソッドがテスト実装されている
ということになりますね。
スクリーンショット
実際にビューを表示してみると、こんな感じです。
まだTitleのカラムにオブジェクトのハッシュコードが表示されるのみですが、これは後に修正していきます。
JUnitを使ってビューを生成する
さて実際にビューを生成して検索メソッドを呼び出してみようと思うのですが、例によってJUnitを用いることができます。テスト用のプロジェクトは前回の「nu.mine.kino.plugin.google.ui.test」を用います。今回も外部のテストプラグインからクラスを呼び出すので、「nu.mine.kino.plugin.google.ui」プラグインの「外部に公開するパッケージ」に、
- nu.mine.kino.plugin.google.ui.views
を追加しました。

前回と同様、nu.mine.kino.plugin.google.ui.views.GoogleResultViewクラスを選択してJUnitのテストクラスを「nu.mine.kino.plugin.google.ui.test」プロジェクトに生成します。JUnitのテストクラスはnu.mine.kino.plugin.google.ui.views.GoogleResultViewTestです。テストクラスには以下のメソッドを実装しました。
public void testGoogleResultView() { try { GooglePlugin.getDefault().getPreferenceStore().setValue( PreferenceConstants.GOOGLE_KEY, "xxxxxxxxxx"); IWorkbenchPage page = PlatformUI.getWorkbench() .getActiveWorkbenchWindow().getActivePage(); GoogleResultView view = (GoogleResultView) page .showView(GoogleResultView.ID); view.search("eclipse"); } catch (PartInitException e) { e.printStackTrace(); } }
"xxxxxxxxxxxx"の箇所は、あらかじめGoogle SOAP Search APIのサイトで取得しておいたキーコードを設定してください。
パッケージ・エクスプローラで[GoogleResultViewTest]を選択し、Eclipseのツールバーから[実行]-[JUnitプラグイン・テスト]を選択します。Eclipseが起動して上のメソッドが実行され、一瞬で消えてしまうのですがビュー現れ、検索結果一覧が表示されます。

