Apcoordinator ユーザーズガイド |
目次 |
第7部 携帯端末対応アプリケーションの開発 | > 第39章 ブラウザアプリケーションの開発 | > 39.4 ブラウザアプリケーションのカスタマイズ |
ブラウザアプリケーションは標準で入力データ長のチェック機能と数字チェック機能を持っています。ここに新たにチェック機能を追加することが可能です。チェック機能は次の手順で追加します。
ブラウザアプリケーションクラスのcheckメソッドをオーバライドします。
protected boolean check(Panel panel)
checkメソッドは、表示中の画面から別の画面へ遷移する直前とサーバへアクセスする直前に呼び出されるメソッドです。
checkメソッドのpanelパラメタを判定して、データチェック対象のパネルを識別します。
パネルのオブジェクトから名前を獲得するには、ブラウザアプリケーションクラスのnameメソッドを利用します。
protected String name(Object item)
データチェック対象のパネル上に配置されているテキストボックスから入力データを獲得し、チェック処理を実行します。
テキストボックスの名前からオブジェクトを獲得するには、ブラウザアプリケーションクラスのitemメソッドを利用します。
protected Component item(String name)
データチェックは、データチェック対象のパネル上に配置されているテキストボックスに対してのみ実行します。
データチェックでエラーと判定した場合はエラーメッセージを表示して、エラーとなったコンポーネントにフォーカスを設定します。
エラーの内容はブラウザアプリケーションクラスのerrorメソッドを利用して表示します。
protected void error(String message)
checkメソッドの復帰値として、エラーの場合はfalseを、エラーではない場合はtrueを返します。falseを返した場合、画面遷移処理やサーバアクセス処理は中断され、再び入力状態になります。
import com.nttdocomo.ui.*; public class MyBrowser extends IF { protected boolean check(Panel panel) { if( name(panel).equals("MonthEntry") ) { // 「月」の情報が入っているテキストフィールドを獲得します。 TextBox month = (TextBox)item("month"); // 「月」の情報を獲得します。 String text = month.getText(); try { int i = Integer.parseInt(text); if( i >= 1 && i <= 12 ) { // 1〜12の範囲であれば問題なしとします。 return true; } } catch(NumberFormatException e) { } // 1〜12の範囲ではないか、数字ではない場合はエラーとします。 error("1〜12の範囲で入力してください"); month.requestFocus(); return false; } else { // ブラウザアプリケーション本体の処理を呼び出します。 return super.check(panel); } } }
目次 |