ブログ

AipoにはスケジュールやToDo等様々な機能があります。
それらの機能がどのように呼ばれているのか、ToDoをもとに見てみましょう。

ToDo

第1回は動作の起点となるAction・Screenについてです。

ToDoのActionはこちら

https://github.com/aipocom/aipo/blob/master/portlets/todo/src/main/java/com/aimluck/eip/modules/actions/todo/ToDoAction.java

この中には大きく2つのメソッドがあります。

  • buildNormalContext
  • buildMaximizedContext

buildNormalContext

AipoでToDoアプリを配置した状態でトップ画面を表示した時に呼ばれるActionになります。

buildMaximizedContext

AipoでToDoアプリの最大化画面を表示した時に呼ばれるActionになります。

つぎにScreenについて見てみましょう。

詳細画面

例えば詳細画面を表示する際にはこのScreenが呼ばれています。

https://github.com/aipocom/aipo/blob/master/portlets/todo/src/main/java/com/aimluck/eip/modules/screens/ToDoDetailScreen.java

Screenの中のdoOutputのメソッドが呼ばれるようになっています。

登録画面

Screenには他にも、登録画面を表示するFormScreen

https://github.com/aipocom/aipo/blob/master/portlets/todo/src/main/java/com/aimluck/eip/modules/screens/ToDoFormScreen.java

登録処理

データ登録を行う(登録画面からのPOST先)FormJSONScreen

https://github.com/aipocom/aipo/blob/master/portlets/todo/src/main/java/com/aimluck/eip/modules/screens/ToDoFormJSONScreen.java

一覧画面

ページャークリックによる2ページ目の一覧表示を行うListScreen

https://github.com/aipocom/aipo/blob/master/portlets/todo/src/main/java/com/aimluck/eip/modules/screens/ToDoListScreen.java

などがあります。

ActionとScreenの違い

さて、ActionとScreenの違いですが、大きく分けるとこんな感じになっています。

  • Action:htmlリクエスト
  • Screen:Ajaxリクエスト

Actionが呼ばれるのはトップ画面、最大化画面を表示した時のみです。

ページャーをクリックした2ページ目以降の表示などの際にはScreenが呼ばれるようになります。

どのScreenが呼ばれているか確認する方法

Javaでのデバッグ方法といえば、ブレークポイントを置いてのデバッグになるかと思いますが、その際もActionやScreenから始めれば処理を正確に追っていけるようになります。

じゃあ、どこでどのScreenが呼ばれているのか、ということが気になるかと思います。

その際にはブラウザのコンソールを開いて、リクエストを確認してみて下さい。

http://XXX.XXX.XXX.XXX/portal/media-type/html/user/XXX/page/default.psml/js_peid/XXX?template=ToDoFormScreen&entityid=new

のようになっているかと思います。リクエストの中にtemplateとしてScreenを送っていますので、それを確認して該当するScreenにブレークポイントを置いてデバッグしていくと効率がいいかと思います。

まとめ

  • トップ画面はActionbuildNormalContextを見る。
  • 最大化画面はActionbuildMaximizedContextを見る。
  • それ以外の画面はリクエストパラメータに含まれるScreenを見る。

現在私たちの仲間を募集しています!

2013/08/20 09:55:17
岩崎