I've been in this world for 4 months, so sorry if my question is a bit basic.
I'll try to describe it as briefly as I can: I'm working on some filters for a Window in Vision. All my data comes from a DB. One of these filters is a filter by items (it needs to be multi-selectable by operators, not single-target). Right now we have 7/8 items, but I don't know if that number could grow in the future. Anyway, I'm handling the other filters using Vision Client Tags.
My question is: what's a good method for multi-selecting items (touch-friendly) that I can then read from my query once the selection is made? I searched the forum and saw that the "List" component seems perfect for this kind of thing, but the issue I think I'd run into is that multi-row selection only works on PC (via Ctrl + mouse click), and wouldn't be possible in situations where operators only have touch screen access.
I'd prefer a component-based/binding solution over custom scripting, if possible.
It's been a long time since I made that, but I'm pretty sure it uses a JTable under the hood. If there's enough room in your UI, a standard table or power table with the Selection Mode set to multiple interval would be a good choice for this sort of thing.
This will have the same problem as the list - without ctrl/shift held down, Swing's default behavior is to move the selection, not add to it.
It's technically possible to work around this with the standard list, but distinctly annoying, and probably not worth doing given the OP's other constraints.
If it’s less than a dozen or so items I would consider a pop-up window with some simple labels and check boxes.
If it grows much larger than that I would use a table tied to a dataset tag with a selectable Boolean column to utilize available table filtering techniques.
It's trivial to add an editable boolean column to a table, so that would be a viable solution even if there are many rows.
You could modify the query to include an arbitrary boolean column, or you could put the raw data from the query on a custom property, and add the column and data to the table on a property change event. The user could then select the rows using the checkboxes without having to do anything funky.