I'm a developer designing a portion of a UI the allows the user to select certain configuration options.
There are 4 different sections that can be configured.
- Select countries, and then languages within that country. This is a multi-select. So you can select [{US, en-US}, {CA, fr-CA}, {CA, en-CA}]
- Select tasks to run (15 different possible tasks, inclusive so that only those tasks selected are run)
- Types of objects to run for. This is basically a set of filters for the data. You could think of it along the lines of
filter out all male fish that are alive, all female cats that are spayed, and all female dogs that are not spayed
. There are 8 different types of objects (fish, cat, dog, etc), each with 10 flags (spayed, alive, male/female, etc) although this isn't a pet store program. - Specific items to include/ignore (tasks are included/excluded for these items, regardless of whether or not they are matched by choices in section 3)
My initial idea was to have a matrix of checkboxes, but the business could require that to expand in either direction (types or flags) at any time, which could get ugly quick.
Another idea was an accordion, which then turned into an accordion of accordions, but that doesn't seem to be much better.
What other alternatives are there?
EDIT: Example of section 3
download bmml source – Wireframes created with Balsamiq Mockups