手順 6 : カスタム コントロールを作成する
この手順では、新しいカスタム コントロールを作成します。 そのコントロールに、前にインポートしたいずれかのコントロールのメソッドを呼び出すメソッドを追加します。
- [パッケージ・エクスプローラー] ビューで、ServicesWeb/src/controls フォルダを右クリックします。
- [新規|カスタム コントロール] をクリックします。
- [新しいコントロール] ダイアログ ボックスが表示されます。
[コントロール名] テキスト ボックスに MailingListControl.java と入力して、[終了] をクリックします。
- 上記の手順では、controls フォルダの中に 2 つの新しい Java ファイルを作成するように Workshop に指示しました。
- MailingListControl.java - コントロール インタフェース ファイル
- MailingListControlImpl.java - MailingListControl.java を実装するコントロール実装ファイル
この時点で、これらのファイルにはデフォルトのフレームワークのみが含まれています。 以下の手順でメソッドを追加します。
- [パッケージ・エクスプローラー] ビューで MailingListControlImpl.java をダブルクリックします。
- ソース エディタで、MailingListControlImpl.java のソース コード内の任意の場所を右クリックして、[挿入|コントロール] をクリックします。
- [コントロールの選択] ダイアログで、[CustomerControl - controls] を選択し、[OK] をクリックします。
- これで新しいメソッドを追加する準備が整いました。
customerControl の変数宣言の後に、メソッドを追加します。
public Customer[] getLocalCustomers()
{
return customerControl.getCustomersByState("CA");
}
- 未定義の型 Customer があるため、エラーが表示されます。 クラスのインポート セクションに次のコード行を追加します。
import model.Customer;
- このクラスで新しいメソッドを作成しましたが、このクラスが実装しているインタフェース クラス MailingListControl.java には、対応する抽象メソッド定義がまだ存在していません。
この状態を修正するには、メソッド (getLocalCustomers) の名前のどこかにエディタのカーソルを置いて、〔Ctrl〕+〔1〕を押します。 [スーパータイプ'CustomerControl'で作成します。] を選択して〔Enter〕を押します。
エディタに MailingListControl.java が表示されます。新しい抽象メソッド定義が配置されています。
- 〔Ctrl〕+〔Shift〕+〔S〕を押して作業を保存します。
このコントロールの getLocalCustomers メソッドは、インポートされたコントロールを使用して、指定された州のすべての顧客をサンプル データベースに問い合わせます。 この例では、州をカリフォルニア州にハードコード化しています。 データベースから返されたデータは、Customer オブジェクトの配列として呼び出し側メソッドに返されます。