メニュー画面の表示

ログインに成功すると、メニューウインドウが表示されます。ここからは、第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(再開)アイコンを押すとプログラムが再開します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30