bamaer commented on PR #8622:
URL: https://github.com/apache/hop/pull/8622#issuecomment-5846508614
**Blockers**
**1. `revealFoundCell()` reuses `edit()`, so a hit performs a click.**
`editText` returns early to fire the column's selection adapter
(`TableView.java:3279`) or open the multi-line pop-out (`TableView.java:3290`).
Six dialogs put an adapter on their `COLUMN_TYPE_TEXT` value column — Formula,
Janino, Calculator, Random value, System data, Neo4j Get logging info — so
every hit there opens a sub-dialog over the modal find dialog. And the
pop-out's queued `asyncExec` (`TableView.java:2337`) steals focus back out of
the search field after `showHit` set it, so Enter closes the pop-out instead of
finding next.
```java
ColumnInfo colinfo = columns[dataColumn];
if (!readonly
&& !colinfo.isReadOnly()
&& colinfo.getSelectionAdapter() == null
&& indexOfLineBreak(getCellValue(item, tableColumnIndex)) < 0) {
edit(row, tableColumnIndex);
}
```
`setPosition` already ran, so the skipped case still leaves the active cell
right.
**2. `lastHit` is never reset.** Change the search text, press Enter (Find
next is the default button) and the scan resumes from the previous query's hit
— earlier rows are never looked at, and `continued` makes the status say "No
more matches". Reset it from a `ModifyListener` on `wFind` and selection
listeners on the two checkboxes.
**Should fix**
**3. Dead reuse path.** `open()` runs its own event loop
(`BaseDialog.java:929`) and the `finally` nulls `findDialog`, and
`APPLICATION_MODAL` stops the table's Ctrl-F handlers firing, so `findDialog` /
`isOpen()` are unreachable. Drop them, or make the shell modeless — which is
what "stays open" implies, and would let the user type in the cell the search
revealed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]