[forge-users] Default value not working on dynamic inputs

Rafael Pestano rmpestano at gmail.com
Thu Mar 7 16:23:57 EST 2019


Hi guys,

I'm trying to set a default value of a previous disabled input and it is
not working, let me show some code:

hidden = componentFactory.createInput("Hidden", Boolean.class)
    .setEnabled(false);

length = componentFactory.createInput("Length", Integer.class)
    .setEnabled(false);

required = componentFactory.createInput("Required", Boolean.class)
    .setEnabled(false);

type = componentFactory.createSelectOne("Type", ComponentTypeEnum.class)
    .setValueChoices(Arrays.stream(ComponentTypeEnum.values()).collect(Collectors.toList()))
    .setEnabled(false);


those fields are enabled on a valueChangeLIstener:

fieldConfigList.addValueChangeListener((ValueChangeEvent event) -> {
    fieldConfig = (FieldConfig) event.getNewValue();
    if (fieldConfig != null) {
        hidden.setEnabled(true)
            .setDescription(String.format("When true the field '%s'
will be ignored on AdminFaces scaffold.", fieldConfig.getName()))
            .setValue(fieldConfig.getHidden());

        hidden.addValueChangeListener((ValueChangeEvent evt) -> {
            fieldConfig.setHidden((Boolean) evt.getNewValue());
        });
        required.setEnabled(true)
            .setDescription(String.format("When true the field '%s'
will be required on AdminFaces scaffold generated pages.",
fieldConfig.getName()))
            .setValue(fieldConfig.getRequired());

        required.addValueChangeListener((ValueChangeEvent evt) -> {
            fieldConfig.setRequired((Boolean) evt.getNewValue());
        });
        length.setEnabled(true)
            .setDescription(String.format("Set field '%s' length to be
used on AdminFaces scaffold generated pages.", fieldConfig.getName()))
            .setValue(fieldConfig.getLength());

        length.addValueChangeListener((ValueChangeEvent evt) -> {
            fieldConfig.setLength((Integer) evt.getNewValue());
        });
        type.setEnabled(true)
            .setDescription(String.format("Set field '%s' component
type to be used on AdminFaces scaffold generated pages.",
fieldConfig.getName()))
            .setValue(fieldConfig.getType());

        type.addValueChangeListener((ValueChangeEvent evt) -> {
            fieldConfig.setType((ComponentTypeEnum) evt.getNewValue());
        });
    } else {
        hidden.setEnabled(false)
            .setNote("");
        length.setEnabled(false)
            .setNote("");
        required.setEnabled(false)
            .setNote("");
        type.setEnabled(false)
            .setNote("");
    }
});


Whenever I change "fieldConfigList" I want to change "type", "length",
"required" and "hidden" defaultValues. It only works for "type" field which
is a selectOne or if I go back and forth on the wizard as shown on the
video below:
 https://youtu.be/hKbGGJZCOjE

Also it is working for the "description" attribute because it is changing
accordingly with selected fieldConfig as you can see on the video.

Code is available here:
https://github.com/adminfaces/admin-addon/blob/55da7431d0f64170855cbc1f681642a18e912cf5/src/main/java/com/github/adminfaces/addon/ui/AdminFacesScaffoldConfigStep.java#L241-L307

Any hints? (I also tried to use "setValue"instead of defaultValue but also
did not worked)

Thanks in advance!
-- 
Att,

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
http://rpestano.wordpress.com/
@realpestano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-users/attachments/20190307/23e90a01/attachment.html 


More information about the forge-users mailing list