7.6. マスタ検索、バリデーションのみを使用するマスタの作成¶
7.6.2. マスタ検索、バリデーションのみを使用する場合¶
拡張設定に「jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSearchLogic」を設定します。Logicをカスタマイズする場合、「jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSearchLogicBase」を継承したクラスを作成してください。
7.6.3. Enumクラスを使用した検索部品を作成する場合¶
「jp.co.slcs.kaiden.v2.base.foundation.taglib.EnumListDataIF」を継承したEnumクラスを作成してください。Enumクラスpackage jp.co.slcs.kaiden.v2.extension_imw.foundation.conf; import java.util.Locale; import jp.co.slcs.kaiden.v2.base.foundation.exception.KaidenIllegalParametersException; import jp.co.slcs.kaiden.v2.base.foundation.extension.spring.context.ApplicationContextHolder; import jp.co.slcs.kaiden.v2.base.foundation.helper.ContextHelper; import jp.co.slcs.kaiden.v2.base.foundation.helper.PropertyHelper; import jp.co.slcs.kaiden.v2.base.foundation.taglib.EnumListDataIF; /** * 代理申請状態を表す列挙. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public enum AgentType implements EnumListDataIF { /** 本人申請. */ PRINCIPAL("0", "EIMW.AgentType.principal"), /** 代理申請. */ AGENT("1", "EIMW.AgentType.agent"); /** コード. */ private final String code; /** 名称. */ private final String surface; /** * コンストラクタ. * * @param code コード * @param name 名称 */ private AgentType(String code, String name) { this.code = code; surface = name; } /** * {@inheritDoc} */ @Override public String getCode() { return code; } /** * {@inheritDoc} */ @Override public String getName() { ContextHelper contextHelper = ApplicationContextHolder.getApplicationContext().getBean(ContextHelper.class); return getName(contextHelper.getLoginUserLocale()); } /** * コードから自身を返却. * * @param code コード値 * @return 自身 */ public static AgentType codeOf(String code) { for (AgentType that : AgentType.values()) { if (that.getCode().equals(code)) { return that; } } throw KaidenIllegalParametersException.makeInstance(); } /** * 名称から自身を返却. * * @param name 名称 * @return 自身 */ public static AgentType nameOf(String name) { for (AgentType that : AgentType.values()) { if (name.equals(that.getName())) { return that; } } throw KaidenIllegalParametersException.makeInstance(); } /** * {@inheritDoc} */ @Override public String getName(Locale locale) { PropertyHelper propertyHelper = ApplicationContextHolder.getApplicationContext().getBean(PropertyHelper.class); return propertyHelper.getSurface(locale, surface); } }Enumクラスをリスト化するために「jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSearchEnumLogicBase」を継承したクラスを作成し、拡張設定に設定してください。LimitationMasterSearchEnumLogicBaseを継承したクラスpackage jp.co.slcs.kaiden.v2.extension_imw.feature.logic.kaiden.generic; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSearchEnumLogicBase; import jp.co.slcs.kaiden.v2.base.foundation.taglib.EnumListDataIF; import jp.co.slcs.kaiden.v2.extension_imw.foundation.conf.AgentType; /** * 代理タイプ検索(Logic). * * @author Sumitomo Life Information Systems Co.,Ltd. */ @Component @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class AgentTypeLogic extends LimitationMasterSearchEnumLogicBase { /** * {@inheritDoc} */ @Override protected EnumListDataIF[] values() { return AgentType.values(); } }
7.6.4. XMLの固定値を使用した検索部品を作成する場合¶
拡張設定に「jp.co.slcs.kaiden2.base.feature.logic.kaiden.generic.LimitationMasterSelectLogic」を設定します。XMLに表示したい固定値を定義してください。設定<?xml version="1.0" encoding="UTF-8"?> <genericMasterSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterSettings"> <masterId>use_data_status</masterId> <surfaceKey>master_name</surfaceKey> <extension> <logic>jp.co.slcs.kaiden.v2.base.feature.logic.kaiden.generic.LimitationMasterSelectLogic</logic> </extension> <args> <arg key="datas" value="[ {'code':'00', 'name':'untreated'}, {'code':'10', 'name':'processing'}, {'code':'20', 'name':'processed'}, {'code':'90', 'name':'no_process_required'} ]" /> </args> <!-- 検索設定 --> <search type="SELECT"> <items> <item name="code" type="CODE" /> <item name="name" type="NAME" /> </items> </search> <!-- ラベル設定 --> <surfaces> <!-- 略 --> <surface surfaceKey="untreated" surface="未処理"> <name localeId="ja" surface="未処理" /> <name localeId="en" surface="Untreated" /> <name localeId="zh_CN" surface="未处理" /> </surface> <!-- 略 --> </surfaces> </genericMasterSettings>