Eclipseを使ってデータ登録画面を確認する
メニュー画面の表示
ログインに成功すると、メニューウインドウが表示されます。ここからは、第4回記事で作成したサンプルウインドウが表示される流れを説明します。
ウインドウをキャッシュしない設定
Adempiereのウインドウを表示する流れをデバッグモードで調べるにあたって、ウインドウの表示をキャッシュする設定を解除します。
Adempiereのメニューから ツール > 設定 で設定ウインドウを開き、「ウインドウをキャッシュ」のチェックボックスを外して、ログアウトした後、再びログインしてください。ツリーにある項目をクリックするたびにデータベースにアクセスしてデータを取得するようになります。
DB内のデータの確認方法(pgAdmin3の起動)
これから説明するAdempiereのメニューツリー、ウインドウ、ウインドウ内のタブ、フィールドはどのような項目があるのかという情報が、データベースに保存されていて、画面の描画にはデータベース内の情報を使います。
Adempiereのデータベースに保存されているデータを確認するためにpgAdmin3を使用します。pgAdmin3を起動して、データベースに接続してください。
図6:pgAdmin3を起動して、データベースに接続する |
「オブジェクトブラウザ」と表示されているツリーで、 データベース > adempiere > スキーマ > adempiere > テーブル の順にツリーを開くと、Adempiereで使っているテーブルの一覧が表示できます。
pgAdmin3のツールバーにある、「任意のSQLクエリーを実行」というアイコンをクリックするとSQLを実行するためのウインドウを開くことができます。
図7:「任意のSQLクエリーを実行」アイコンをクリック |
pgAdmin3に"postgres"ユーザーで接続するとSQL文を発行する時に、テーブル名の前に「adempiere.」というスキーマ名を追加しないとエラーになってしまいます。
これを回避するには、以下のコマンドを「任意のSQLクエリーを実行」で実行してください。
set search_path to "$user",adempiere,public;
ad_windowテーブルが、Adempiereの各ウインドウの情報、ad_tabテーブルがウインドウの内のタブの情報、ad_fieldテーブルがタブ内のフィールドの情報を持っています。
ウインドウ、タブ、フィールドの情報については、AdempiereにSystem Administratorの役割(ロール)でログインして、メニュー > アプリケーション構成 > ウインドウ、タブ & フィールド から確認することもできます。
ウインドウが表示されるまでの流れ
それでは、実際にデバッグモードでコードを確認しつつ処理の流れを説明します。まずは、以下の7箇所にブレークポイントを設定してください。
- client\src\org\compiere\grid\tree\VTreePanel.java
576行目(mouseClickedメソッド) - client\src\org\compiere\apps\AMenuStartItem.java
147行目(runメソッド) - client\src\org\compiere\apps\APanel.java
646行目(initPanelメソッド) - base\src\org\compiere\model\GridWindowVO.java
67行目(createメソッド) - base\src\org\compiere\model\GridWindowVO.java
201行目(createTabsメソッド) - base\src\org\compiere\model\GridTabVO.java
53行目(createメソッド) - base\src\org\compiere\model\GridFieldVO.java
78行目(createメソッド)
ブレークポイントを設置したら、EclipseのデバッグモードでAdempiereを起動します。
メニューツリーのパネル上でマウスのボタンをクリックすると、マウスイベントが発生して、
client\src\org\compiere\grid\tree\VTreePanel.java
576行目(mouseClickedメソッド)で停止します。
この時、ツリーのノードをクリックしていなくてもイベントが発生しますが、 mouseClickedメソッド内でクリックされた座標を見ているので、何もない場所でマウスボタンをクリックしても何も起きません。
Eclipse上のResume(再開)アイコンを押すとプログラムが再開します。