PEXA Clientについて

チュートリアル

定義パターン

定義ファイル

リファレンス

目次

  1. はじめに
  2. PanelLayout
  3. TabbedPaneLayout
  4. MenuBarLayout
  5. SplitPaneLayout
  6. BorderLayout


はじめに

このドキュメントは、PEXAクライアントフレームワークで使用できる標準のエリアレイアウトについて解説するものです。

エリアレイアウトは、Area定義ファイルのlayoutセクションで指定するもので、Areaに対する画面フォームの割り当てを主に指定します。 また、画面フォーム内の要素とAreaにぶら下がる子Areaとのマッピングなども行います。

以下で、標準で用意されるレイアウトについて解説していきます。


PanelLayout

画面イメージ1 : 子エリア無しの場合



画面イメージ2 : 子エリア有りの場合



定義例1 : 子エリア無しの場合

<layout name="PanelLayout">
    <gui implement="xxxx.client.view.rich.area.wkfl.UnssuedApplicationSearchPanel"/>
</layout>
定義例2 : 子エリア有りの場合
<layout ref="PanelLayout">
    <gui implement="xxxx.client.view.rich.area.wkfl.ReimbursementPaymentApplicationEditPanel"/>
    <area-mapping>
        <area location="SUB_PANEL[申請情報共有パネル]" ref="CA_COMM_001_01_ApplicantInfoInput"/>
    </area-mapping>
</layout>

リッチクライアントで、一つのエリアに対して一枚の画面パネルを割り当てる場合に使用するエリアレイアウトです。
また、画面パネル中に含まれるサブパネルを子エリアに割り当てることもできます。

子エリアが無い場合はguiタグでエリアに対応する画面パネルを指定するだけとなります。
子エリアがある場合はguiタグで画面パネルを指定した上で、そのパネル内に含まれるサブパネル部分の名称をarea-mappingセクションで子エリアのIDと関連づけます。
areaタグのlocation属性で指定する書式は、"SUB_PANEL[サブパネルのname属性値]"となります。


TabbedPaneLayout

画面イメージ :



定義例 :

<layout ref="TabbedPaneLayout">
    <area-mapping>
        <area location="TAB[操作ログ(選択中の患者)]" ref="CA_LOG_001"/>
        <area location="TAB[操作ログ(全担当患者)]" ref="CA_LOG_002"/>
    </area-mapping>
</layout>

リッチクライアントで、複数の子エリアをタブとしてまとめるコンテナとなる親エリアに使用するエリアレイアウトです。

areaタグのlocation属性で"TAB[タブタイトル]"と指定すると、そのタブタイトルを持つタブが作成されて、ref属性で指定されたAreaがそこにはめ込まれます。 areaタグの数だけ、記述された順番でタブが作成されます。

各location名はこのエリア内でユニークになる必要があります。
同じ名前のlocationを後から追加しようとすると、追加する代わりに指定のタブが選択状態になります。

CombinedTabbedPaneLayout

定義例 :

<layout ref="CombinedTabbedPaneLayout">
    <area-mapping>
        <area location="TAB[操作ログ(選択中の患者)]" ref="CA_LOG_001"/>
        <area location="TAB[操作ログ(全担当患者)]" ref="CA_LOG_002"/>
    </area-mapping>
</layout>

動作自体はTabbedPaneLayoutとほぼ同一ですが、タブに展開された各Areaの実行コンテキストが同一の物となります。
このレイアウトは、タブに展開された各Area間でContentItem値をgroupスコープで共有したい場合に利用して下さい。

TabbedPaneLayoutの場合は、タブに展開された各Areaの実行コンテキストが別々になるのでgroupスコープのContentItemの共有が発生しません。


タブの状態制御

TabbedPaneLayoutで展開された各タブに対して、閉じるボタンを直接付与することが可能です。
そのようにしたい場合は、guiタグを記述して閉じるボタンを有効にする必要があります。

定義例 :

<layout ref="TabbedPaneLayout">
    <gui closer="on"/>
    <area-mapping>
        <area location="TAB[物品取り合わせ]" ref="CA_MAMT_001"/>
    </area-mapping>
</layout>
上記のようにすると、初期状態で展開されたタブ及び、その後に追加されたタブ全てに対して閉じるボタンが付与されます。
また、各タブに右クリックで開くメニューが追加されて、そこから個別のタブを閉じたり、全タブを閉じることができます。

また、この各タブの状態をCommandのchangeTabStatus命令で操作することができます。
このCommand命令はタブの有効化、無効化、閉じるといった制御を全タブ、特定タブのみ、特定タブ以外の全タブに対して行うことができます。
特定タブの指定は子エリアのエリアIDで指定します。


選択中タブの背景色設定

現在選択中のタブの背景色を、プロパティのエリアレイアウトに対する個別設定セクションで設定することができます。
設定キーは以下になります。

	AreaLayout.TabbedPaneLayout.SelectedBackground
色はcolor参照の形式で指定して下さい。

記述例:選択中タブを白にする場合
AreaLayout.TabbedPaneLayout.SelectedBackground=color:WHITE



MenuBarLayout

画面イメージ :



定義例1 : Area定義(CA_WKFL_MenuBar)のlayoutセクションの記述

<layout ref="MenuBarLayout" />
定義例2 : Page定義のlayoutセクションの記述
<layout ref="BorderLayout">
    <gui width="1024" height="733"/>
    <menubar ref="CA_WKFL_MenuBar"/>
    <area-mapping>
        <area location="NORTH" ref="CA_COMM_000_01_Header"/>
        <area location="CENTER" ref="CA_WKFL_000_01_Login"/>
        <area location="SOUTH" ref="CA_COMM_000_02_Footer"/>
    </area-mapping>
</layout>

リッチクライアントで、ウィンドウに張り付くメニューバーとなるエリアに対して指定するエリアレイアウトです。(定義例1)
このレイアウトを持つエリアはcomponent-mappingセクションで、必ずMenuBarタグを使用してメニューの内容を定義する必要があります。
このレイアウトを持つエリアは、Page定義の/layout/menubarタグのref属性で指定されることになります。(定義例2)


SplitPaneLayout

画面イメージ :



定義例 : 上下に分割する場合

<layout ref="SplitPaneLayout">
    <gui>
        <location ref="TOP" preferredSize="440,375"/>
        <location ref="BOTTOM" preferredSize="440,375"/>
    </gui>
    <area-mapping>
        <area location="TOP" ref="CA_PPRF_004"/>
        <area location="BOTTOM" ref="CA_PSRF_001"/>
    </area-mapping>
</layout>
定義例 : 左右に分割する場合
<layout ref="SplitPaneLayout">
    <gui>
        <location ref="LEFT" preferredSize="440,375"/>
        <location ref="RIGHT" preferredSize="440,375"/>
    </gui>
    <area-mapping>
        <area location="LEFT" ref="CA_PPRF_004"/>
        <area location="RIGHT" ref="CA_PSRF_001"/>
    </area-mapping>
</layout>

エリア内を上下もしくは左右に2分割して、それぞれにサブエリアを配置したい場合に使用するエリアレイアウトです。
基本的に分割領域はPage定義側でデザインするのが推奨されますが、例えば画面イメージのようにTabbedPaneLayout内を更に上下に分割させたい場合にはこのレイアウトを使用することになります。

このレイアウトでは、指定できるlocationは分割方向によって決まります。

  • 上下分割の場合:TOPおよびBOTTOM
  • 左右分割の場合:LEFTおよびRIGHT
上記の組み合わせでのみ指定できます。


BorderLayout

定義例 :

<layout ref="BorderLayout">
    <area-mapping>
        <area name="NORTH" ref="CA_XXXX_001"/>
        <area name="SOUTH" ref="CA_XXXX_002"/>
        <area name="EAST" ref="CA_XXXX_003"/>
        <area name="WEST" ref="CA_XXXX_004"/>
        <area name="CENTER" ref="CA_XXXX_005"/>
    </area-mapping>
</layout>

SwingのBorderLayoutを利用するエリアレイアウトです。
ベースパネルの東西南北および中央に対して子Areaを配置することができる汎用的なレイアウトとして使用できます。
以下の領域に対して子Areaを配置することが出来ます。

  • NORTH : ベースパネルの上部領域です。
  • SOUTH : ベースパネルの下部領域です。
  • EAST : ベースパネルの左側領域です。
  • WEST : ベースパネルの右側領域です。
  • CENTER : ベースパネルの中央領域です。
全ての領域が省略可能です。



Copyright © 2006, Atrris Corporation