Eclipse/プラグイン開発のTIPS集/Eclipseの検索画面を作成する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
Eclipseの検索 >> 検索 にタブ状に表示される、検索インタフ...
#ref(search.png)
検索画面
~
#ref(result.png)
結果画面
#contents
この拡張ポイントはいろんな機能やロジックが組み合わさって...
:検索ページ拡張ポイント(org.eclipse.search.searchPages)|...
:検索結果ページ拡張ポイント(org.eclipse.search.searchResu...
:検索ロジック|Eclipseフレームワークとは関係がない、いわゆ...
:検索クエリクラス(org.eclipse.search.ui.ISearchQuery)|検...
:検索結果クラス(org.eclipse.search.ui.ISearchResult)|Ecli...
このように様々なモノがあるため、結構大変です。いっこづつ...
まずどんな検索機能を作るかですが、workspace内の○○を検索す...
#ref(class.png)
ちなみに必須プラグインは
org.eclipse.search
みたいですね。でもこれ入れると、ツールバーとかに勝手にボ...
さあ、やってみましょう。
**まずは画面以外のコアロジック [#fdb57928]
***まずは検索ロジック [#m29752aa]
検索ロジックは以下の通り。GoogleのWEB Services APIを用い...
GoogleSearchResult googleResult = GoogleCorePlugin.getDe...
.search("xxxxxxxxxxxxxxxx", [入力文字列]);
ResultElement[] resultElements = googleResult.getResultE...
for (int i = 0; i < resultElements.length; i++) {
// 各ResultElementが検索結果一件に対応しています
}
本質の箇所でないんで、まあこんな感じです。
***検索クエリクラス org.eclipse.search.ui.ISearchQuery [#...
続いて検索クエリクラスです。このクラスは先の検索ロジック...
IStatus run(IProgressMonitor monitor);
ISearchResult getSearchResult();
IStatus run(IProgressMonitor monitor); で先の検索ロジック...
そして ISearchResult getSearchResult(); で検索結果を返し...
このクエリのインタフェースですが、おもしろいのは''run実行...
今回の例では、ISearchQueryを実装するTextSearchQueryを作成...
IStatus run(IProgressMonitor monitor);
では検索処理を実行し、検索結果オブジェクトを生成していま...
ISearchResult getSearchResult();
では
public ISearchResult getSearchResult() {
if (result == null) {
result = new TextSearchResult(this);
}
return result;
}
としてISearchResultを作成して返しています。このメソッドは...
***検索結果クラス org.eclipse.search.ui.ISearchResult [#a...
ではその検索結果クラスですが、このISearchResultインタフェ...
public void addMatch(Match match);
などのメソッドを使って追加していきます。このorg.eclipse.s...
/**
* Constructs a new Match object.
* @param element the element that contains the match
* @param unit the unit offset and length are based on
* @param offset the offset the match starts at
* @param length the length of the match
*/
public Match(Object element, int unit, int offset, int l...
となってますが、ようわからんですね。とりあえず引数のeleme...
public IStatus run(IProgressMonitor monitor);
メソッド内で、
ResultElement[] resultElements = googleResult.getResultE...
for (int i = 0; i < resultElements.length; i++) {
result.addMatch(new Match(resultElements[i], Match.UNI...
}
としています。resultはさっきちょこっと出てきたTextSearchR...
public class TextSearchResult extends AbstractTextSearch...
private final ISearchQuery query;
public TextSearchResult(ISearchQuery query) {
this.query = query;
}
public ISearchQuery getQuery() {
return query;
}
...省略
}
ここまでをまとめると
-org.eclipse.search.ui.ISearchQueryの実装クラスが、検索の...
-検索結果オブジェクトの型はorg.eclipse.search.ui.ISearchR...
-org.eclipse.search.ui.ISearchResultはテンプレートのorg.e...
-org.eclipse.search.ui.text.AbstractTextSearchResultを拡...
public void addMatch(Match match);
を使ってISearchQuery#run内で検索結果をaddMatchしていけば...
という感じになります。
~
さてここまでで検索結果を供給するビジネスロジックは完了し...
検索ページ拡張ポイント(org.eclipse.search.searchPages)
検索結果ページ拡張ポイント(org.eclipse.search.searchResu...
を定義して対応するクラスを実装することで実現します。
**画面の作成 [#y34778e9]
次に画面の作成を行いますが、長くなってしまったので、[[別...
**関連リンク [#o3caffd5]
-Eclipse/プラグイン開発のTIPS集/Eclipseの検索画面を作成す...
----
この記事は
#vote(おもしろかった[2],そうでもない[2])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
Eclipseの検索 >> 検索 にタブ状に表示される、検索インタフ...
#ref(search.png)
検索画面
~
#ref(result.png)
結果画面
#contents
この拡張ポイントはいろんな機能やロジックが組み合わさって...
:検索ページ拡張ポイント(org.eclipse.search.searchPages)|...
:検索結果ページ拡張ポイント(org.eclipse.search.searchResu...
:検索ロジック|Eclipseフレームワークとは関係がない、いわゆ...
:検索クエリクラス(org.eclipse.search.ui.ISearchQuery)|検...
:検索結果クラス(org.eclipse.search.ui.ISearchResult)|Ecli...
このように様々なモノがあるため、結構大変です。いっこづつ...
まずどんな検索機能を作るかですが、workspace内の○○を検索す...
#ref(class.png)
ちなみに必須プラグインは
org.eclipse.search
みたいですね。でもこれ入れると、ツールバーとかに勝手にボ...
さあ、やってみましょう。
**まずは画面以外のコアロジック [#fdb57928]
***まずは検索ロジック [#m29752aa]
検索ロジックは以下の通り。GoogleのWEB Services APIを用い...
GoogleSearchResult googleResult = GoogleCorePlugin.getDe...
.search("xxxxxxxxxxxxxxxx", [入力文字列]);
ResultElement[] resultElements = googleResult.getResultE...
for (int i = 0; i < resultElements.length; i++) {
// 各ResultElementが検索結果一件に対応しています
}
本質の箇所でないんで、まあこんな感じです。
***検索クエリクラス org.eclipse.search.ui.ISearchQuery [#...
続いて検索クエリクラスです。このクラスは先の検索ロジック...
IStatus run(IProgressMonitor monitor);
ISearchResult getSearchResult();
IStatus run(IProgressMonitor monitor); で先の検索ロジック...
そして ISearchResult getSearchResult(); で検索結果を返し...
このクエリのインタフェースですが、おもしろいのは''run実行...
今回の例では、ISearchQueryを実装するTextSearchQueryを作成...
IStatus run(IProgressMonitor monitor);
では検索処理を実行し、検索結果オブジェクトを生成していま...
ISearchResult getSearchResult();
では
public ISearchResult getSearchResult() {
if (result == null) {
result = new TextSearchResult(this);
}
return result;
}
としてISearchResultを作成して返しています。このメソッドは...
***検索結果クラス org.eclipse.search.ui.ISearchResult [#a...
ではその検索結果クラスですが、このISearchResultインタフェ...
public void addMatch(Match match);
などのメソッドを使って追加していきます。このorg.eclipse.s...
/**
* Constructs a new Match object.
* @param element the element that contains the match
* @param unit the unit offset and length are based on
* @param offset the offset the match starts at
* @param length the length of the match
*/
public Match(Object element, int unit, int offset, int l...
となってますが、ようわからんですね。とりあえず引数のeleme...
public IStatus run(IProgressMonitor monitor);
メソッド内で、
ResultElement[] resultElements = googleResult.getResultE...
for (int i = 0; i < resultElements.length; i++) {
result.addMatch(new Match(resultElements[i], Match.UNI...
}
としています。resultはさっきちょこっと出てきたTextSearchR...
public class TextSearchResult extends AbstractTextSearch...
private final ISearchQuery query;
public TextSearchResult(ISearchQuery query) {
this.query = query;
}
public ISearchQuery getQuery() {
return query;
}
...省略
}
ここまでをまとめると
-org.eclipse.search.ui.ISearchQueryの実装クラスが、検索の...
-検索結果オブジェクトの型はorg.eclipse.search.ui.ISearchR...
-org.eclipse.search.ui.ISearchResultはテンプレートのorg.e...
-org.eclipse.search.ui.text.AbstractTextSearchResultを拡...
public void addMatch(Match match);
を使ってISearchQuery#run内で検索結果をaddMatchしていけば...
という感じになります。
~
さてここまでで検索結果を供給するビジネスロジックは完了し...
検索ページ拡張ポイント(org.eclipse.search.searchPages)
検索結果ページ拡張ポイント(org.eclipse.search.searchResu...
を定義して対応するクラスを実装することで実現します。
**画面の作成 [#y34778e9]
次に画面の作成を行いますが、長くなってしまったので、[[別...
**関連リンク [#o3caffd5]
-Eclipse/プラグイン開発のTIPS集/Eclipseの検索画面を作成す...
----
この記事は
#vote(おもしろかった[2],そうでもない[2])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: