PEXA Clientについて

チュートリアル

定義パターン

定義ファイル

リファレンス

目次

  1. はじめに
  2. Loginパターンのサンプル画面イメージ
  3. loginのContent定義サンプル
  4. loginのContent定義解説
  5. Area定義サンプル
  6. Area定義解説


はじめに

このドキュメントは、定義パターン"Login"の内容について解説する物です。

Loginパターンは、基本的にシステムにログインする画面に現れるContentパターンです。
システムの入り口となる"login"のContent定義が一つ含まれます。
"login"のContent定義には、主に以下のような内容が記述されます。

  • Content(login)の基本的なitem定義
    • システムにログインするためのパラメータ
    • ログインサービスから取得するログインユーザ情報
    • その他サービスに渡すパラメータ
  • Content(login)の基本的なaction定義
    • ログインサービスの呼び出し
定義ファイルの内容としては、ステレオタイプconfigと似ていますが、システムの 入り口となるContentという意味合いを含むのでステレオタイプloginとして定義されます。

以下で、画面イメージ及び定義ファイルのサンプルを元に内容を解説していきます。


Loginパターンのサンプル画面イメージ

Loginパターンをとる画面のサンプルとなる画面イメージです。



このように、Loginパターンの画面はLoginするためのパラメータ(ユーザーID、パスワード)の入力部分とログイン実行ボタンが配置されるのが基本形となります。 これをPEXAクライアントフレームワークではステレオタイプ"login"のContentとして表現します。


loginのContent定義サンプル

<?xml version="1.0" encoding="Windows-31J"?>
<!--
 - Copyright
 -->
<!DOCTYPE client-content SYSTEM "../doctype/client-content.dtd">
<!--==============================================================
 == Current-Module:
 == Release-Date:
 == Release-Version:
 == First-Created-On: 2005/10/03
 == First-Created-By:
 == Copy-Right-Owner:
 ==============================================================-->
<client-content>
<!--==============================================================
==  コンテントの属性値の宣言
===============================================================-->
    <identity id="CC_WKFL_01_Login"
              name="ワークフロー申請ログイン"
              stereotype="login"/>
<!--==============================================================
==  コンテントの詳細説明
===============================================================-->
    <description>
        ワークフロー申請ドメインアプリケーションにログインするためのコンテントです。
    </description>
<!--==============================================================
==  リンクするSVOステートメントの宣言
===============================================================-->
    <reference-list>
    </reference-list>
<!--==============================================================
==  コンテントで参照する項目の宣言
===============================================================-->
    <item-list>
        <!--======================================================
        == データモデル
        =======================================================-->
        <item id="会社マスタ一覧" access="output" type="models">
            <description>ログイン会社一覧検索サービスから取得した会社の一覧</description>
        </item>
        <item id="ログイン利用者情報" access="hidden" type="model" scope="global">
            <description>ログインサービスから取得した利用者情報</description>
        </item>
        <!--======================================================
        == 画面上の入出力項目
        =======================================================-->
        <item id="利用者コード" access="input" type="value">
            <description>画面から入力したログインユーザID</description>
        </item>
        <item id="利用者認証情報" access="input" type="value">
            <description>画面から入力したログインパスワード</description>
        </item>
        <item id="原籍会社No" access="input" type="value">
            <description>画面から選択したログインユーザの所属会社</description>
        </item>
        <!--======================================================
        == 隠し項目
        =======================================================-->
        <item id="ログイン時刻" access="hidden" type="value" scope="global">
            <valuetype implement="java.util.Date"/>
            <description>ログインした時刻</description>
        </item>
    </item-list>
<!--==============================================================
==  コンテントアクション
===============================================================-->
    <action-list>
        <!--======================================================
        == コンテント初期化時の実行アクション
        ====================================================== -->
        <action id="INIT">
            <doService service="会社マスタ検索">
                <outputServiceSession>
                    <outputValue item="会社マスタ一覧"/>
                </outputServiceSession>
            </doService>
        </action>
        <!--======================================================
        == ログイン時の実行アクション
        ====================================================== -->
        <action id="ログイン">
            <doService service="ログイン">
                <inputServiceSession>
                    <inputValue item="利用者コード"/>
                    <inputValue item="利用者認証情報"/>
                    <inputValue item="原籍会社No"/>
                </inputServiceSession>
                <outputServiceSession>
                    <outputValue item="ログイン利用者情報"/>
                </outputServiceSession>
            </doService>
            <set item="ログイン時刻" value="calendar:NOW"/>
        </action>
    </action-list>
<!--==============================================================
==  コンテントの遷移先リスト
==  (この情報はコンテントカタログ間の関連定義であり、実行時には参照されません)
===============================================================-->
    <transition-list>
        <transition next="CC_WKFL_05">
            <description>ログイン完了後の遷移先です</description>
        </transition>
    </transition-list>
<!--==============================================================
==  ファイル編集情報
===============================================================-->
    <status>
        <author>$Author: morishita $</author>
        <datetime>$Date:: 2008-08-29 22:48:31 #$</datetime>
        <version>$Revision: 2282 $</version>
    </status>
</client-content>


loginのContent定義解説

loginのContentは、基本的に以下のような機能を持ちます。

  • ログインサービスに渡すパラメータを画面から受け取り、保持する
  • ログインサービスを呼び出す
  • ログインサービスの呼び出し結果を受け取り、保持する。
上記を実現するための記述内容をitem及びactionの定義内容としてそれぞれ解説します。

item定義

ステレオタイプ"login"のContentで定義されるitemには、主に以下のような項目があります。

  • ログインするための入力パラメータ
  • ログインサービスから受け取るログインユーザ情報のデータモデル


サンプルのContent定義では、データモデルとしては、ログインサービスから受け取る"ログイン利用者情報"と、所属会社を選択するための コンボボックスの内容となる、会社マスタの検索結果である"会社マスタ一覧"が定義されています。

<!--======================================================
== データモデル
=======================================================-->
<item id="会社マスタ一覧" access="output" type="models">
    <description>ログイン会社一覧検索サービスから取得した会社の一覧</description>
</item>
<item id="ログイン利用者情報" access="hidden" type="model" scope="global">
    <description>ログインサービスから取得した利用者情報</description>
</item>


入力パラメータとしては、、ユーザーID、パスワード、所属会社(コンボボックスによる選択)を画面上で入力するようになっているので、 それぞれに対応する項目がログインするための入力パラメータとして定義されています。これらはログインサービスにパラメータとして 渡される項目になります。

<!--======================================================
== 画面上の入出力項目
=======================================================-->
<item id="利用者コード" access="input" type="value">
    <description>画面から入力したログインユーザID</description>
</item>
<item id="利用者認証情報" access="input" type="value">
    <description>画面から入力したログインパスワード</description>
</item>
<item id="原籍会社No" access="input" type="value">
    <description>画面から選択したログインユーザの所属会社</description>
</item>


また、このサンプルではログイン成功時の時刻を遷移先の画面で表示するので、globalな項目として"ログイン時刻" を定義しています。この項目に対する値の設定はactionで行われています。

<!--======================================================
== 隠し項目
=======================================================-->
<item id="ログイン時刻" access="hidden" type="value" scope="global">
    <valuetype implement="java.util.Date"/>
    <description>ログインした時刻</description>
</item>


action定義

ステレオタイプ"login"のContentで定義されるactionには、主に以下のものがあります。

  • ログインサービスを呼び出すaction


サンプルのContente定義では、Content生成時にまず最初に所属会社のコンボボックスの内容を取得しておく必要が あるので、"INIT"というIDを持つactionを定義して、そこで会社マスタの検索サービスを 呼び出しています。このIDを持つactionは、Content生成時に実行されます。

<!--======================================================
== コンテント初期化時の実行アクション
====================================================== -->
<action id="INIT">
    <doService service="会社マスタ検索">
        <outputServiceSession>
            <outputValue item="会社マスタ一覧"/>
        </outputServiceSession>
    </doService>
</action>


あとは、ログインボタンがクリックされた時に実行するactionとして、"ログイン"actionが定義されています。 このactionの中では、ログインサービスの実行及びログイン成功時の時刻をログイン時刻というitemに設定しています。
set命令のvalue属性で指定している"calendar:NOW"は、 参照記法による現在時刻の取得の例です。

<!--======================================================
== ログイン時の実行アクション
====================================================== -->
<action id="ログイン">
    <doService service="ログイン">
        <inputServiceSession>
            <inputValue item="利用者コード"/>
            <inputValue item="利用者認証情報"/>
            <inputValue item="原籍会社No"/>
        </inputServiceSession>
        <outputServiceSession>
            <outputValue item="ログイン利用者情報"/>
        </outputServiceSession>
    </doService>
    <set item="ログイン時刻" value="calendar:NOW"/>
</action>



Area定義サンプル
<?xml version="1.0" encoding="Windows-31J"?>
<!--
 - Copyright
 -->
<!DOCTYPE client-area SYSTEM "../doctype/client-area.dtd">
<!--==============================================================
 == Current-Module:
 == Release-Date:
 == Release-Version:
 == First-Created-On: 2005/10/03
 == First-Created-By:
 == Copy-Right-Owner:
 ==============================================================-->
<client-area>
    <!-- エリア属性値 -->
    <identity id="CA_WKFL_000_01_Login"
              name="ワークフローログインエリア"/>

    <!-- 詳細説明 -->
    <description>ワークフローログイン用の認証情報入力エリア</description>
<!--==============================================================
  ==  参照するコンテンツの宣言
  ==============================================================-->
    <reference-list>
        <content ref="CC_WKFL_01_Login"/>
    </reference-list>
<!--==============================================================
  ==  表示レイアウト情報
  ==============================================================-->
    <layout ref="PanelLayout">
        <gui implement="imeg.client.view.rich.area.share.LoginPanel"/>
    </layout>
<!--==============================================================
  ==  コンポーネントマッピング
  ==============================================================-->
    <component-mapping>
        <TextField id="ユーザ名テキストフィールド"
               text="content:CC_WKFL_01_Login/利用者コード"/>
        <TextField id="パスワードテキストフィールド"
               text="content:CC_WKFL_01_Login/利用者認証情報"/>
        <ComboBox id="会社コンボボックス"
               selectedItem="content:CC_WKFL_01_Login/原籍会社No">
            <ComboBoxModel>
                <ObservableComboValue
                      items="content:CC_WKFL_01_Login/会社マスタ一覧"
                      value="会社No" text="会社名"/>
            </ComboBoxModel>
        </ComboBox>
        <Button id="ログインボタン" text="OK" onClick="COMMAND[ログイン]"/>
        <Button id="閉じるボタン" text="キャンセル" onClick="終了"/>
    </component-mapping>
<!--==============================================================
  ==  コマンド定義
  ==============================================================-->
    <command-list>
        <!-- =====================================================
        == ログイン実行command
        ========================================================-->
        <command id="ログイン">
            <doAction content="CC_WKFL_01_Login" action="ログイン"/>
            <doTransition transit="ドメインポータルメニューへ遷移"/>
        </command>
    </command-list>
<!--==============================================================
  ==  ファイル編集情報
  ==============================================================-->
    <status>
        <author>$Author: morishita $</author>
        <datetime>$Date:: 2008-08-29 22:48:31 #$</datetime>
        <version>$Revision: 2282 $</version>
    </status>
</client-area>


Area定義解説

ログイン画面のArea定義では、loginのContentで定義したログインパラメータのitemと各コンポーネントとの マッピング及びログインactionの呼び出しをcommandに記述する必要があります。

component-mapping定義

サンプルのArea定義では、各コンポーネントとContentは以下のようにマッピングされています。

  • login Content : ログインパラメータのTextField及びComboBoxと、ログインの実行ボタン
このうち、コンボボックスについてはloginのContentで定義されている原籍会社Noが ユーザによる選択操作の結果が格納され、会社マスタ一覧はコンボボックスの選択リストとリンク している点に注意してください。これはコンボボックスの内容及び選択操作をContentとマッピングする例となります。
<ComboBox id="会社コンボボックス"
       selectedItem="content:CC_WKFL_01_Login/原籍会社No">
    <ComboBoxModel>
        <ObservableComboValue
              items="content:CC_WKFL_01_Login/会社マスタ一覧"
              value="会社No" text="会社名"/>
    </ComboBoxModel>
</ComboBox>


command定義

Loginパターンの画面では、基本的に以下の場合の処理をcommandで定義します。

  • ログイン実行ボタンが押された際の処理
サンプルのArea定義では、ログイン実行ボタンが押された際の処理として"ログイン"commandが定義されています。 その中でlogin Contentの"ログイン"actionを実行して成功したら画面遷移するように、実行命令が定義されています。
<!--=======================================================
== ログイン実行command
=========================================================-->
<command id="ログイン">
    <doAction content="CC_WKFL_01_Login" action="ログイン"/>
    <doTransition transit="ドメインポータルメニューへ遷移"/>
</command>



更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2008-08-29 22:48:31 #$
  • バージョン : $Revision: 2282 $



Copyright © 2006, Atrris Corporation