第5回 HSQLDBプラグインを動かしてみよう
萩原 巧
リトルソフト株式会社
2006/11/18
入力情報をEclipseに保存 |
HSQLDBの情報入力ができるようになった田中君、このページでは、入力した情報をEclipseに保存するロジックの実装を行う。
長尾君 | 「以前(注:3回目の連載)に、プラグインで設定した内容はプリファレンスストア(PreferenceStore)と呼ばれる領域に保存されると説明したけど、覚えているかな?」 |
田中君 | 「うん、覚えているよ」 |
長尾君 | 「ここからは、入力した各種HSQLDBの情報をプリファレンスストアに保存する処理を説明するよ」 |
・プリファレンスストアの定義
長尾君 | 「まずは、HSQLPreferencePageCompositeクラスに、プリファレンスストアの定義とセッター、ゲッターメソッドを追加しよう。これはプラグインクラス(HSQLDBPluginクラス)のgetPreferenceStore()メソッドで取得したプリファレンスストアをHSQLPreferencePageCompositeクラスで使用できるようにするために必要なんだ」 |
HSQLPreferencePageCompositeクラスにプリファレンスストアを追加 |
private IPreferenceStore preferenceStore = null; |
・プリファレンスストアの受け渡しと保存
長尾君 | 「続いて、プラグインクラス(HSQLDBPluginクラス)のプリファレンスストアをHSQLPreferencePageCompositeクラスに定義したプリファレンスストアに渡す部分は以下のソースコードになるよ。HSQLPreferencePageクラスのcreateContentsメソッドに以下の2行を追加しよう」 |
HSQLPreferencePageクラスのcreateContentsメソッドに2行追加 |
protected Control createContents(Composite parent) { |
田中君 | 「HSQLPreferencePageCompositeクラスに、プリファレンスストアを設定している (1)けれど、doLoadメソッドは(2)まだ作成していないよね」 |
長尾君 | 「doLoadメソッドについては、後ほど説明するよ。説明が多くなってしまうけど次は、設定画面の[適用]ボタンや[OK]ボタンがクリックされたらプリファレンスストアに保存する処理を実装しよう。この処理はHSQLPreferencePageクラスのperformOkメソッドをオーバーライドするよ」 |
[適用]や[OK]ボタンがクリックされたら、プリファレンスストアに保存する |
HSQLPreferencePageクラスのperformOkメソッドをオーバーライド |
public boolean performOk() { |
長尾君 | 「(2)では、[HSQLDBPlugin]クラスのスタティックメソッドの[getDefault]を実行することによって、プラグインのインスタンスを取得し、[savePluginPreferences]メソッドで、プリファレンスストアの内容を保存するんだ」 |
田中君 | 「(2)の処理の前に実行するdoStoreメソッド(1)はどのような処理なの?」 |
長尾君 | 「doStoreメソッドは、HSQLDB設定画面で登録した内容をプリファレンスストアに登録する処理。さっき出てきた、doLoadメソッドはdoStoreとは逆に、プリファレンスストアの内容をHSQLDB設定画面に読み込む処理だ。実際のソースを見ながら説明しよう」 |
HSQLPreferencePageComposite クラス doStore メソッド |
public void doStore() { |
長尾君 | 「プリファレンスストアの[setValue]メソッド(1)では、第1引数に名称、第2引数には値を設定しよう。第2引数に設定した値がプリファレンスストアに設定されるんだ。このプラグインで管理を行う、データベース名称、データベースパス、データベースポート3つのセミコロン区切り文字列を登録しよう」 |
コラム プリファレンスストア登録イメージ |
HSQLPreferencePageCompositeクラスのdoStoreメソッドで設定した値は、[workspace\.metadata\plugins\org.eclipse.core.runtime\.settings]フォルダのプラグインID.prefsというファイルに、以下のようなイメージで保存されます。 <イメージ例> DBPath= C\:\\database\\plugin_db;C\:\\database\\test_db; ←セミコロン区切り文字列 DBPort=9001;9002; DBName=plugin_db;test_db; |
HSQLPreferencePageComposite クラス doLoad メソッド |
public void doLoad() { |
長尾君 | 「プリファレンスストアの[getValue]メソッド(1)では、プリファレンスストアに登録されているデータベース名称、データベースパス、データベースポートの値を取得できるんだ。その値はセミコロン区切り文字列なので、[parseString]メソッド(2)にて、文字列の配列に変換するんだ。セミコロン区切り文字列から変換した文字配列を使用して、listDBListに値を設定することによって、プリファレンスストアに登録された値が表示される仕組みになるんだ」 |
田中君 | 「プリファレンスストアを活用して、入力したHSQLDBの情報が登録される仕組みは分かったよ。これらの値は、Eclipseを再起動しても保持されているんだよね?」 |
長尾君 | 「これらの値はファイル(上記コラム:プリファレンスストア登録イメージをご覧ください)に保存されるので、Eclipseを再起動しても消えることはないよ。安心して。これでHSQLDBの情報管理部分の実装は完成したから、ここで動作の確認を行ってみよう」 |
田中君 | 「はーい」 |
今回の実装の動作確認と最終回予告 |
田中君は、プラグインの動作確認を行った。
- HSQLDB情報の登録
- HSQLDB情報の削除
- Eclipseを再起動しても登録した値が保持されている
以上のすべて正常に動作することを確認して長尾君に報告した。
田中君 | 「長尾君、すべての動作を確認したよ。すごいね。僕がここまでできちゃったよ。いよいよこの後は……」 |
長尾君 | 「HSQLDBの起動処理だ」 |
田中君 | 「そうだね。あと少し、頑張るぞー!」 |
と、いうことでHSQLDBの管理部分の実装をすべて終了した田中君、次回はいよいよ最終回。登録したHSQLDBの各種情報を基にHSQLDBを起動したり、停止させる処理やHSQLDBデータベースマネージャを起動する処理の実装を行います。
なお、今回作成したソースコードはココからダウンロードできます。このソースには、入力チェックをはじめとする今回説明し切れなかった部分も含まれています。実際のソースを俯瞰(ふかん)して、より理解を深めていっていただければ幸いです。
次回、最終回もお楽しみに!
3/3 |
Index | |
第5回 HSQLDBプラグインを動かしてみよう | |
Page1 HSQLDB情報画面の処理実装の概要 新規追加ダイアログの作成 追加ボタンのクリックイベントの実装とダイアログの表示 |
|
Page2 追加した情報を反映 削除ボタンの処理を実装 |
|
Page3 入力情報をEclipseに保存 今回の実装の動作確認と最終回予告 |
Java Solution全記事一覧 |
Java Agile フォーラム 新着記事
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|