diff --git a/app/filebrowser/src/main/java/org/phoebus/applications/filebrowser/FileTreeCell.java b/app/filebrowser/src/main/java/org/phoebus/applications/filebrowser/FileTreeCell.java index 004b1a870e..0ab6c7003b 100644 --- a/app/filebrowser/src/main/java/org/phoebus/applications/filebrowser/FileTreeCell.java +++ b/app/filebrowser/src/main/java/org/phoebus/applications/filebrowser/FileTreeCell.java @@ -96,6 +96,9 @@ private void enableDragDrop() // might still be present... final TreeItem deleted_item = getTableRow().getTreeItem(); deleted_item.getParent().getChildren().remove(deleted_item); + // Clear the stale selection so the tree view does not remain + // in a confused highlighted state after the item is removed. + getTreeTableView().getSelectionModel().clearSelection(); } else logger.log(Level.FINE, "Drag (COPY) completed."); @@ -188,8 +191,15 @@ private void move_or_copy(final File file, final TreeItem target_item, { // System.out.println("Add tree item for " + new_name + " to " + target_item.getValue()); final ObservableList> siblings = target_item.getChildren(); - siblings.add(new FileTreeItem(mon, new_name)); + final FileTreeItem newItem = new FileTreeItem(mon, new_name); + siblings.add(newItem); FileTreeItem.sortSiblings(siblings); + // Expand the target folder so the moved/copied file is + // immediately visible, then select it. + target_item.setExpanded(true); + final int idx = getTreeTableView().getRow(newItem); + if (idx >= 0) + getTreeTableView().getSelectionModel().select(idx); }); } catch (Exception ex)