I have Listview with multiple checkboxes. I need to do validation that
atleast one checkbox is selected.

For this I have used Custom validator to validate checkboxes and throw
error. This validator has list having checkboxes

In Listview populateItem method I am adding the checkboxes to this validator
list. But issue is how to add validator to form. 
I used checkbox.getform().add(validator); But it is adding for every
checkbox in listview. So on running application validate method of validator
is called for each checkbox.
How to resolve ths. Kindly provide input

#########################################
new ListView<T>("repeater", listModel) {

            
            @Override
            protected void populateItem(final ListItem<T> item) {
                final T current = item.getModelObject();

                final IModel<Boolean> cbModel = new
ListChoiceCheckBoxModel<T>(current, binding) {
                    @Override
                    protected boolean isChoiceEnabled(final T choice) {
                        return
EnumCheckBoxRepeaterPanel.this.isChoiceEnabled(choice);
                    }
                };
                CheckBox chkbox = new AjaxCheckBox("checkbox", cbModel) {
                    @Override
                    protected void onConfigure() {
                        setEnabled(isChoiceEnabled(current));
                    }
                };

                item.add(chkbox);
                validator.addComponents(chkbox);
           chkbox.getForm().add(new CheckboxesSelectValidator(chkBoxList,
"Invalid"));
                item.add(new Label("label", localizedModel(labels,
current)));
            }
        }.setReuseItems(true);

#########################################
public class CheckboxesSelectValidator extends AbstractFormValidator {

    private static final long serialVersionUID = -5475763159946590330L;
    /** form components to be checked. */
    // private final CheckBox[] components;
    private final String optionsMessage;
    private final List<CheckBox> components;

    public CheckboxesSelectValidator(final List<CheckBox> components, final
String optionsMessage) {
        this.components = components;
        this.optionsMessage = optionsMessage;
    }

    public void addComponents(final CheckBox checkbox) {
        components.add(checkbox);
    }

    @Override
    public FormComponent[] getDependentFormComponents() {
        return components.toArray(new FormComponent[components.size()]);
    }

    @Override
    public void validate(final Form<?> form) {
        for (CheckBox component : components) {
            component.isEnabled();
            component.getValue();
        }

    }

}




--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Adding-Custom-validator-for-Listview-having-multiple-checkboxes-tp4658825.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to