文字列、数値、モデル参照といった Wagby の項目の型を考慮したリポジトリキーの設定方法を説明します。

文字列は内部で "string" で表現します。

// フィルタは "文字列(一般)" とする。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@filter", item), "commonFilter");
// 型は "string" となる。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@type", item), "string");
// "文字列の部分一致" を有効にする。
modelitemInfoMap.put(new ModelitemInfo("action/condition/@cond", item), "partial");
// 拡張検索機能を有効にする。@see manual8/condition-AND_OR.html
modelitemInfoMap.put(new ModelitemInfo("action/condition/@andorsearch", item), "true");
// テキストエリアにする場合は以下の行を有効にする
// modelitemInfoMap.put(new ModelitemInfo("presentation/displayitem/@type", item), "textarea");
// 入力サイズを指定する場合は以下の行を有効にする
// modelitemInfoMap.put(new ModelitemInfo("presentation/displayitem/@inputmaxlength", item), 10);
// modelitemInfoMap.put(new ModelitemInfo("presentation/displayitem/@size", item), 10);

整数は "number" で表現します。浮動小数点数は "double" で表現します。

// フィルタは "数字型" とする。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@filter", item), "intFilter");
// 整数の場合は "number" となる。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@type", item), "number");
// フォーマットを指定することもできる。
modelitemInfoMap.put(new ModelitemInfo("presentation/displayitem/@numberformatCombo", item), "###,###,###");
// 検索条件が有効な場合の範囲検索の設定。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@rangeCondition", item), "true");
// 入力欄を数字扱いとする。
modelitemInfoMap.put(new ModelitemInfo("presentation/displayitem/@type", item), "numberformat");
// 入力サイズを指定する場合は以下の行を有効にする
// modelitemInfoMap.put(new ModelitemInfo("presentation/displayitem/@size", item), 10);

日付は "date" で表現します。時間は "time" で表現します。日付時間は "dateTime" で表現します。

// フィルタは "日付型" とする。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@filter", item), "dateFilter");
// 日付の場合は "date" となる。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@type", item), "date");
// カレンダによる入力を有効にする場合。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@calendarinput", item), "datePicker");
// 検索条件が有効な場合の範囲検索の設定。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@rangeCondition", item), "true");
// フォーマットの指定
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/format", item), "yyyy-MM-dd");
// 初期値の指定(登録画面の初期値)
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/defaultValue[@action=init]", item), "calc";
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/defaultValue[@action=init]_2", item), "TODAY()");

"reference_listbox" で表現します。

// 型の設定
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@type", item), "reference_listbox");
// 参照先モデルIDを設定する。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/relation/@idref", item), /*参照先モデルID*/);
// 参照元トレースを有効にする。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/relation/@navigation", item), "true");
// 参照先モデルの項目を設定する。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/relation_storeref/@rolecontent", item), /*項目ID*/);
// roleid は "pkeyOfRefmodel" で固定。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/relation_storeref/@roleid", item), "pkeyOfRefmodel");
// roleid_2 は空白で固定。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/relation_storeref/@roleid_2", item), "");
// 範囲検索は無効にする。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@rangeCondition", item), null);
// 入力フィルタは空白設定とする。
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@filter", item),  "");
// "すべて" を検索条件に用意する
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@alloption", item), "true");

主キーとなる項目には次の設定を追加で行います。

modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@primaryKey", item), "true");
modelitemInfoMap.put(new ModelitemInfo("model/modelitem/notnull", item), "true");
// 順序を利用する場合
// modelitemInfoMap.put(new ModelitemInfo("model/primaryKey/@autoid", item), "true");

検索条件とする場合は次の設定を追加で行います。

modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@hasConditionModel", item), "true");

一覧表示項目とする場合は次の設定を追加で行います。

modelitemInfoMap.put(new ModelitemInfo("model/modelitem/@hasListModel", item), "true");