第5回 HSQLDBプラグインを動かしてみよう
萩原 巧
リトルソフト株式会社
2006/11/18
追加した情報を反映 |
設定画面の遷移を実装した田中君。続いて、入力したHSQLDBの設定情報を編集できるようにする。
長尾君 | 「復習だけど、このプラグインで管理する項目って何だっけ?」 |
田中君 | 「[HSQLDB Database名称][HSQLDB Databaseパス][HSQLDB Databaseポート]の3つだよね」 |
長尾君 | 「そのとおりだよ。ここでは、その3つの項目を保持するクラスをまず作成しよう。作成するクラスは、ゲッターメソッドとセッターメソッドを持つだけの単純なものだよ」 |
このクラスは、HSQLDBの設定情報を1件保持できます。各設定項目にはゲッターおよびセッターメソッドが存在し、情報を取得、設定できます。
|
ソースは以下のようになります。
HSQLDBConnectDefinition クラス |
package hsqldb.util; |
フィールドの[dbName](1)はHSQLDB Database名称、[dbPath](2)はHSQLDB Databaseパス、[dbPort](3)はHSQLDB Databaseポートに対応しています。各フィールドには、それぞれゲッター、セッターメソッドが用意されています。コンストラクタ(4)では与えられた引数から値を設定しています。
長尾君 | 「[HSQLDBConnectDefinition]クラスを作成したら、HSQLDBの設定情報を編集できるように実装をしよう。まずは、先ほど作成した[HSQLDB新規追加ダイアログ]で入力した内容を、[HSQLDB設定画面]に反映させる部分から始めよう」 |
[HSQLDB新規追加ダイアログ]の[OK]ボタンがクリックされたら、入力された内容を[HSQLDB設定画面]に反映させる処理 |
addDefinitionData メソッド |
private void addDefinitionData(){ |
田中君 | 「[HSQLPreferencePageComposite]クラスの[addDefinitionData]メソッドに対して、OKボタンがクリックされたときの処理を記述しているね」 |
長尾君 | 「ローカルフィールドの[dbName,dbPath,dbPort]に対して、ダイアログにて入力した値を設定(1)して、その値から[HSQLDBConnectDefinition]クラスのインスタンス化(2)を行っているね。そして、リストボックスの[listDBList]に[HSQLDBConnectDefinition]クラスのインスタンスをセットし(3)、最後に、setupDefinitionInputTextを実行(4)しているよ」 |
コラム listDBList(org.eclipse.swt.widgets.Listクラス)のメソッドについて |
addDefinitionDataメソッド内では、org.eclipse.swt.widgets.ListクラスのsetData、add、select 3つのメソッドを使用しています。 これらメソッドの仕様については、Eclipseのオンラインヘルプの[Platformプラグイン・デベロッパー・ガイド]―[参照]―[API参照]にある、EclipseプラグインAPIドキュメントをご覧ください。 |
HSQLPreferencePageComposite クラス setupDefinitionInputText メソッド |
private void setupDefinitionInputText(int idx){ |
setupDefinitionInputTextは、引数のインデックスに設定されているHSQLDBの各種情報を取得して、その内容をtextDBPath、textDBPort.setTextに設定するメソッドです。getDBName等のゲッターメソッドは、引数のインデックスに設定されている情報をlistDBListから取得して文字列を返却できます。
長尾君 | 「ここまで実装したら、動作の確認を行おう」 |
田中君はEclipseをテスト起動して、HSQLDBの情報が登録できることを確認した。
田中君 | 「HSQLDBの情報が登録できたね」 |
コラム パス選択ダイアログについて |
[HSQLDB新規追加ダイアログ]のボタンをクリックすると、バス選択ダイアログが表示され、選択したパスを反映させるためにはHSQLDB新規追加ダイアログ(HSQLAddDefinitionDialogクラス)に以下のソースコードを記述します。この場合、あらかじめボタンに対してaddSelectionListenerを設定する必要があります。 |
setupDatabasePath メソッド |
private void setupDatabasePath(){ |
削除ボタンの処理を実装 |
HSQLDBの情報が登録できた田中君は続いて、HSQLDBの情報を削除する処理の実装を行った。
HSQLDB情報の削除 |
削除ボタンがクリックされたら、選択中のDB(この場合、[plugin_db])の情報が削除されます。初めに、削除ボタンのaddSelectionListenerを設定します。
buttonRemove.addSelectionListener( |
ボタン選択時に実行されるメソッド[widgetSelected]内でremoveDefinitionDataメソッドが実行されます。removeDefinitionDataメソッドの引数には、選択中のDBリストのインデックス(listDBList.getSelectionIndex())を設定します。
続いて、削除ボタンがクリックされたときに実行されるremoveDefinitionDataメソッドは、以下のとおり実装します。
removeDefinitionData メソッド |
private void removeDefinitionData(int idx){ |
上記処理で、選択したDBの定義情報が削除されます。
リスト選択時の処理やデータベース情報の変更については、紙幅の関係で説明を割愛します。ソースをダウンロードすることにより、処理を確認できますので、興味のある方はご覧ください。ダウンロードのリンクは記事の一番最後にあります。
これで、HSQLDB情報の入力や削除についての実装はすべて完了です。
2/3 |
Index | |
第5回 HSQLDBプラグインを動かしてみよう | |
Page1 HSQLDB情報画面の処理実装の概要 新規追加ダイアログの作成 追加ボタンのクリックイベントの実装とダイアログの表示 |
|
Page2 追加した情報を反映 削除ボタンの処理を実装 |
|
Page3 入力情報をEclipseに保存 今回の実装の動作確認と最終回予告 |
Java Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (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に関する基礎知識を解説する。
|
|