Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-3718

Introduce select-all components for all types of checkbox

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.4.18, 1.5-RC5
    • Fix Version/s: 1.5.0
    • Component/s: wicket
    • Labels:
      None

      Description

      So far, Wicket only has CheckGroupSelector as a select-all component. It has two main drawbacks:

      • it only works with CheckGroup components, not with CheckboxMultipleChoice or multiple CheckBox components.
      • it has no "auto update" feature that updates the state of the select-all when any of the associated checkboxes is checked or unchecked.

      This patch introduces two new components:

      • CheckboxMultipleChoiceSelector: This does for CheckboxMultipleChoice what CheckGroupSelector does for CheckGroup.
      • CheckBoxSelector: A select-all component for a collection of CheckBox instances.

      Both are based on a new abstract superclass called AbstractCheckSelector that does the heavy lifting. The subclasses only provide a JS function that finds the associated checkboxes. The superclass manages both the select-all and the auto-update mentioned above. The auto update feature is turned on by default, since it seems to be the most sensible behavior.

      The patch also pretty much rewrites the original CheckGroupSelector to also use the new AbstractCheckSelector. In CheckGroupSelector the auto-update feature is disabled by default to keep the behavior the same as in previous versions. It can be enabled by overriding wantAutomaticUpdate() to return true. This default should probably be changed in Wicket 1.5 or 1.6.

        Attachments

          Activity

            People

            • Assignee:
              mgrigorov Martin Grigorov
              Reporter:
              cmenzel Carl-Eric Menzel
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: