- UI should be 3-boxes layout. Left: selection of schema and table, bottom: columns with constraints, right: spatial/temporal/wavelength constraints if the columns with the corresponding UCDs are present.
- We need a widget for TableItemListField, (similar to but hopefully more generic than IRSA's CatalogTableListField, which would map table rows into the selectable display items. This widget will be used to display schema and table lists. (Both of them can have long descriptions with links.)
- We need to upgrade CatalogConstraintsPanel to take table model (rather than giving it processor id and parameters), so that we can pre-sort table model by column_index, if it is available, and use columns UCD information to display spatial/temporal/wavelength constraints. Also, as Loi pointed out, CatalogConstraintsPanel is buggy: tab should be moving the focus to the next input box, filters and selections should clear when different table is used. (There are some hard-to-reproduce edge cases, when they don't.)
- Should we allow user to view and modify ADQL query? As shown by the prototype implementation, keeping ADQL and ADQL-building UI on the same page is tricky, because they have to be in sync, and while UI-to-ADQL is not hard, ADQL-to-UI is non-trivial. Should we allow free-form ADQL with tree-like schema browser on the side as an alternative to the table driven UI above?
Each of the items above can be a separate ticket.
Other comments from prototype implementation https://github.com/Caltech-IPAC/firefly/pull/713:
- ADQL query is what get submitted, but it's not obvious that you need to click on Set ADQL from Constraints before Search.
- When new schema and table are selected, ADQL query remained the previous value. Very confusing when you've gone through the selection/inputs process then click Search to get the same previous search results.
- Having fixed boxes with spiny during loading may improve look and feel. As is, UI is resizing without feedback.
- At some point, I assume there would not be both Additional constraints and ADQL Query in this dialog.
- The native drop-down list box is not the best widget for displaying schema and table lists. We'll need one with multi-line formatting, similar to CatalogTableListField.