Fwd: Custom Form Definition

0 views
Skip to first unread message

Pedro Viegas

unread,
Sep 16, 2020, 5:45:52 AM9/16/20
to DIF2 Mailing list
No Âmbito da "Custom Form Definition" que permite personalizar os forms, controlando a visibilidade ou obrigatoriedade dos mesmos, foi necessário proceder a algumas alterações com vista a acouplar com o negócio específico aplicacional.
Criei desta forma uma propriedade "formManager" que permite verificar as personalizações na jsp. Podendo assim verificar por exemplo se existe algum campo excluído. 

Exemplo aplicado no caso prático do CSSNet na jsp wizard_percurso_academico:

 <c:if test="${empty formManager.customFormDefinition.excludedParametersMap.cdinstituicaohabant}">
            <dif:ajaxRequest id="actualizarTipoInst" ajaxEvent="tipoinstituicaohabant">
                <dif:success executeJavaScript="true">
                    Ext.get('tipoInstituicaoHabAnt').dom.value = response.result+'';
                    parameterTipoinstituicaohabantDependentRuleTrigger0(response.result+'');
            </dif:success>
            </dif:ajaxRequest>
            <dif:contribution type="<%=DocumentContributionType.JS_SCRIPTLET.toString()%>"
                scope="<%=ScriptletScope.ON_LOAD.toString()%>">
                Ext.getCmp('cdInstituicaoHabAntcomp').on('select', function(obj) {
                    if (obj.getValue)
                        actualizarTipoInstfunc({cdInstituicaoHabAnt: obj.getValue()});
                })
        </dif:contribution>
        </c:if>

No exemplo acima existia código de trigger de parâmetros. No caso do campo  Tipoinstituicaohabant ter sido ocultado, iria dar erro de javascrip. 

Adicionei também à API um método para verificar se um dado campo é obrigatório de ser preenchido. Isto porque por vezes nas aplicações tempos validações de alguns campos que têm de estar preenchido. No entanto se eles forem ocultados ou tornada inativa a sua obrigatoriedade de preenchimento, o código de negócio aplicacional precisa de saber para que o possa descartar também.

 Exemplo prático de como usar no CSSnet na validação do percurso académico para que seja possível transitar para a etapa seguite:

   ICustomFormDefinition customFormDefinition = this.getCustomFormDefinition("wizard_percurso_academico",
                "wizCandidaturasOnline", this.getRegimeCandidatura().getCodeRegCand().toString());

        Boolean recandidaturaRequired = customFormDefinition.isFieldRequired("recandidatura");

 if (recandidaturaRequired)
            { ....




--
-- 
João Carlos Galaio da Silva
Developer Web


Com os melhores cumprimentos,
Reply all
Reply to author
Forward
0 new messages