Aipoでのxregファイルの利用方法

Aipoのメモ帳で、どのようにxregファイルを利用しているかを読んだので、利用方法のメモを残しておこうと思います。

まず、xregファイル(アプリの設定ファイル)は、次のように記述されています。(一部抜粋)

        <parameter name="p1a-memos" value="" type="style" hidden="false" cachedOnName="true" cachedOnValue="true">
            <meta-info>
                <title>初期選択メモ</title>
            </meta-info>
        </parameter>
        <parameter name="p1a-memos.style" value="MemoIdListBox" hidden="true" cachedOnName="true" cachedOnValue="true"/>
        <parameter name="p1a-memos.style.initialvalue" value="(表示するメモの選択)" hidden="true" cachedOnName="true" cachedOnValue="true"/>

        <parameter name="p1b-rows" value="20" type="style" hidden="false" cachedOnName="true" cachedOnValue="true">
            <meta-info>
                <title>メモ表示件数</title>
            </meta-info>
        </parameter>
        <parameter name="p1b-rows.style" value="ListBox" hidden="true" cachedOnName="true" cachedOnValue="true"/>
        <parameter name="p1b-rows.style.items" value="5,10,20,50" hidden="true" cachedOnName="true" cachedOnValue="true"/>
        <parameter name="p1b-rows.style.values" value="5件,10件,20件,50件" hidden="true" cachedOnName="true" cachedOnValue="true"/>

https://github.com/aipocom/aipo/blob/master/portlets/memo/src/main/webapp/WEB-INF/conf/memo.xreg

titleはアプリ設定で表示されるリストボックスの項目名、〜.values・〜.itemsはアプリ設定画面のリストボックスで選択できる語句とその値を指定しているパラメータになっています。~.initialvalueはリストボックスの初期値に使いたい値を入れておくパラメータとして使われています。

上のコードで指定されているMemoIdListBoxやListBoxは、アプリ設定(ポートレットの歯車マーク)を開いた時に表示する画面のリストボックスを実際に設定しているクラスになっていて、getParam({xregのkey},{設定値がなかった時の値}),getItem()等でxregファイルから読み出しを行っています。このクラスでthis.itemsやthis.valuesに設定した値が実際に利用される値になります。
https://github.com/aipocom/aipo/blob/master/core/src/main/java/com/aimluck/eip/modules/parameters/ListBox.java#L151-L158

xregファイルで選択した値の読み出しは〜SelectDataで

ALEipUtils
        .getPortlet(rundata, context)
        .getPortletConfig()
        .getInitParameter("p2a-sort")

のように行っています。   https://github.com/aipocom/aipo/blob/master/portlets/memo/src/main/java/com/aimluck/eip/memo/MemoSelectData.java#L78-L81

JetSpeedのTutorialやReferenceだとRegistryのこのあたりの内容になります
http://portals.apache.org/jetspeed-1/tutorial/7/registry.html
http://jetspeed-japan.osdn.jp/apidocs/org/apache/jetspeed/util/BaseConfig.html