Live matrix selection search result update (the yellow selection box) as a search is typed

Issue #309 duplicate
Robert Leach created an issue

USE CASE: WHAT DO YOU WANT TO DO?

Watch the selection(s) in the matrix (IMV) update as I type a search.

STEPS TO REPRODUCE AN ISSUE (OR TRIGGER A NEW FEATURE)

  1. Type a search that matches a result into either the row or column search boxes

CURRENT BEHAVIOR

The user must hit return to initiate the search as see results highlighted in the main image.

EXPECTED BEHAVIOR

With each character change in the search box, the search should be performed and the results displayed as highlighted. If there is no match, the search text should be colored red (to indicate no search results). It changes back to black when there is a matching result. The search should include the autocompleted text (unless the user deletes it). Searches should continue to perform a substring search with wildcards as it currently does.

DEVELOPERS ONLY SECTION

SUGGESTED CHANGE (Pseudocode optional)

Not sure. I experimented with calling seekAll in other places, but this changed the text field. We probably need to implement a new seekAll method which takes the search string and doesn't affect the search box text.

FILES AFFECTED (where the changes will be implemented) - developers only

HeaderFinderBox

LEVEL OF EFFORT - developers only

medium

COMMENTS

Since we removed the button that initiates the search and shows the results highlighted in the matrix, the problem this change request solves is to alleviate confusion of those who expect there to be a button to update the highlight in IMV. Since ultimately the search feature functions correctly, this has been identified as a minor enhancement. There is no bug - only an improvement in terms of addressing ambiguity in how one updates the search results in IMV.

Comments (11)

  1. Christopher Keil repo owner

    What changes in the text field? Now I don't know how the HeaderFinderBox class has changed, but normally the search action should simply be called as a statement in every keyType() call that is always called. Not much more should be required to do since every functionality is already in place.

  2. Robert Leach reporter

    Right, no, I'm not talking about changes in the text field. I'm talking about a live update in the selection in IMV, which only occurs upon hitting enter. Since we removed the magnifying glass button, having the selection in IMV live-update might serve to overcome confusion of those who don't associate the enter key with performing the search. I'll edit the change request to make that clearer. Thanks for pointing out the ambiguity.

  3. Christopher Keil repo owner

    This is what I meant. Is there an issue that prevents the search function to be called in keyTyped()? That should just be the exact same method that used to be bound to the button and is currently bound to the enter key. I was curious about the text field issue you mentioned.

  4. Robert Leach reporter

    Everything functions as designed, so not there's not a problem per se. I had tried an experiment, placing seekAll in the keyTyped method to see if it would work, but it definitely didn't work for whatever reason. I didn't look into it further because my goal was in resolving issue 234 before implementing a new feature that's very likely lower priority than 234.

  5. Robert Leach reporter

    BTW, I deleted a previous comment I made because I think I misinterpreted your last comment.

  6. Robert Leach reporter

    Now I think I understand your first comment. When I put seekAll() in keyTyped (or wherever it was I put it), the field kept getting blanked after the initial typed character. Perhaps at that point, the selection had not been made by combobox, so it's very possible I put seekAll in the wrong place or something or did not anticipate a side-effect of some sort. I agree with you that there should not be a side-effect of doing it. I intend to take this issue if people feel like it's one that is worth implementing. Theoretically, it should not be difficult to implement, as you point out. My failed attempt when I experimented may not necessarily indicate that there's a design issue with a previous change of mine, but it's possible.

  7. Log in to comment