Eclipse/プラグイン開発のTIPS集/GooglePlugin/UI部のロジックをつくる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
----
//ここにコンテンツを記述します。
#contents
次はUI部のビジネスロジックを作成します。プラグインクラス...
-プログレスバー上で、coreプラグインのスペルミスチェックク...
-スペルミスがあった場合は正しいスペルに変更して検索するか...
などを作成します。ひとつめのメソッドgetSplellingSuggestio...
***スクリーンショット [#u8208d0b]
#ref(thread.png)
***プラグインクラス [[nu.mine.kino.plugin.google.ui.Googl...
public class GooglePlugin extends AbstractUIPlugin {
いろいろ省略
/**
* 引数の文字列でGoogleにリクエストし、単語の誤りを...
* 候補があった場合、候補が返ります。候補がなかった...
*
* @param text
* @param monitor
* @return
*/
public String getSplellingSuggestion(final String te...
IProgressMonitor monitor) {
String searchText;
String suggestionText = null;
// 設定画面より、Google Keyを取得
String myGoogleKey = GooglePlugin.getDefault().g...
.getString(PreferenceConstants.GOOGLE_KE...
// Googleにリクエスト
suggestionText = GoogleCorePlugin.getDefault().g...
myGoogleKey, text);
// nullでない場合は候補が返ってきた
if (suggestionText != null) {
CheckThread dialog = new CheckThread(text, s...
// ユーザに変更するかを選ばせる
checkSyncExec(dialog);
// dialogより結果を取得する
if (dialog.isOK()) {
// 変更する
searchText = suggestionText;
logger.debug("スペルミスの候補に変更しま...
monitor.setTaskName("「" + suggestionText
+ "」に変更してGoogleを検索中......
} else {
// 変更しない
searchText = text;
logger.debug("スペルミスの候補に変更しま...
}
} else {
logger.debug("スペルミスの候補がありませんで...
// 例外が発生した場合もこのケース
searchText = text;
}
return searchText;
}
/**
* プログレスバー上でダイアログを出す際に使用するス...
*
* @author Masatomi KINO
* @see GoogleResultView#checkSyncExec(Runnable)
*/
private class CheckThread implements Runnable {
/**
* Logger for this class
*/
private final Logger logger = Logger.getLogger(C...
// ダイアログでユーザがどちらを押したかを判定す...
// 0 : する
// 1 : しない
private int returnCode;
private String text;
private String suggestionText;
/**
* @param text
* @param suggestionText
*/
public CheckThread(String text, String suggestio...
this.text = text;
this.suggestionText = suggestionText;
}
public void run() {
StringBuffer message = new StringBuffer();
message.append("補正しますか? ");
message.append(text);
message.append(" -> ");
message.append(suggestionText);
IWorkbench workbench = PlatformUI.getWorkben...
IWorkbenchWindow window = workbench.getActiv...
MessageDialog dialog = new MessageDialog(win...
"スペルミスしていませんか?", null, ...
MessageDialog.QUESTION, new String[]...
returnCode = dialog.open();
}
/**
* ダイアログでユーザがどちらを押したかを判定し...
*
* @return 0 : する 1 : しない
*/
public boolean isOK() {
if (returnCode == 0) {
return true;
}
return false;
}
}
private boolean checkSyncExec(Runnable thread) {
if (!Display.getDefault().isDisposed()) {
Display.getDefault().syncExec(thread);
return true;
} else {
return false;
}
}
}
*** 設定を保持するIPreferenceStoreについて[#p6eba7b0]
さて、うえのソースコード上で
String myGoogleKey = GooglePlugin.getDefault().getPrefer...
.getString(PreferenceConstants.GOOGLE_KEY);
とやってGoogleのキー値を設定画面から取得していますが、こ...
次は上のビジネスロジックを利用する、[[検索結果一覧を表示...
----
この記事は
#vote(おもしろかった[2],そうでもない[0])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
#topicpath
----
//ここにコンテンツを記述します。
#contents
次はUI部のビジネスロジックを作成します。プラグインクラス...
-プログレスバー上で、coreプラグインのスペルミスチェックク...
-スペルミスがあった場合は正しいスペルに変更して検索するか...
などを作成します。ひとつめのメソッドgetSplellingSuggestio...
***スクリーンショット [#u8208d0b]
#ref(thread.png)
***プラグインクラス [[nu.mine.kino.plugin.google.ui.Googl...
public class GooglePlugin extends AbstractUIPlugin {
いろいろ省略
/**
* 引数の文字列でGoogleにリクエストし、単語の誤りを...
* 候補があった場合、候補が返ります。候補がなかった...
*
* @param text
* @param monitor
* @return
*/
public String getSplellingSuggestion(final String te...
IProgressMonitor monitor) {
String searchText;
String suggestionText = null;
// 設定画面より、Google Keyを取得
String myGoogleKey = GooglePlugin.getDefault().g...
.getString(PreferenceConstants.GOOGLE_KE...
// Googleにリクエスト
suggestionText = GoogleCorePlugin.getDefault().g...
myGoogleKey, text);
// nullでない場合は候補が返ってきた
if (suggestionText != null) {
CheckThread dialog = new CheckThread(text, s...
// ユーザに変更するかを選ばせる
checkSyncExec(dialog);
// dialogより結果を取得する
if (dialog.isOK()) {
// 変更する
searchText = suggestionText;
logger.debug("スペルミスの候補に変更しま...
monitor.setTaskName("「" + suggestionText
+ "」に変更してGoogleを検索中......
} else {
// 変更しない
searchText = text;
logger.debug("スペルミスの候補に変更しま...
}
} else {
logger.debug("スペルミスの候補がありませんで...
// 例外が発生した場合もこのケース
searchText = text;
}
return searchText;
}
/**
* プログレスバー上でダイアログを出す際に使用するス...
*
* @author Masatomi KINO
* @see GoogleResultView#checkSyncExec(Runnable)
*/
private class CheckThread implements Runnable {
/**
* Logger for this class
*/
private final Logger logger = Logger.getLogger(C...
// ダイアログでユーザがどちらを押したかを判定す...
// 0 : する
// 1 : しない
private int returnCode;
private String text;
private String suggestionText;
/**
* @param text
* @param suggestionText
*/
public CheckThread(String text, String suggestio...
this.text = text;
this.suggestionText = suggestionText;
}
public void run() {
StringBuffer message = new StringBuffer();
message.append("補正しますか? ");
message.append(text);
message.append(" -> ");
message.append(suggestionText);
IWorkbench workbench = PlatformUI.getWorkben...
IWorkbenchWindow window = workbench.getActiv...
MessageDialog dialog = new MessageDialog(win...
"スペルミスしていませんか?", null, ...
MessageDialog.QUESTION, new String[]...
returnCode = dialog.open();
}
/**
* ダイアログでユーザがどちらを押したかを判定し...
*
* @return 0 : する 1 : しない
*/
public boolean isOK() {
if (returnCode == 0) {
return true;
}
return false;
}
}
private boolean checkSyncExec(Runnable thread) {
if (!Display.getDefault().isDisposed()) {
Display.getDefault().syncExec(thread);
return true;
} else {
return false;
}
}
}
*** 設定を保持するIPreferenceStoreについて[#p6eba7b0]
さて、うえのソースコード上で
String myGoogleKey = GooglePlugin.getDefault().getPrefer...
.getString(PreferenceConstants.GOOGLE_KEY);
とやってGoogleのキー値を設定画面から取得していますが、こ...
次は上のビジネスロジックを利用する、[[検索結果一覧を表示...
----
この記事は
#vote(おもしろかった[2],そうでもない[0])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: