mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
'Detected Roots' dialog improved: support speed-search and focus table when opened (inspired by IDEA-127010)
This commit is contained in:
+16
@@ -26,6 +26,7 @@ import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.*;
|
||||
import com.intellij.ui.treeStructure.treetable.TreeColumnInfo;
|
||||
import com.intellij.util.PlatformIcons;
|
||||
import com.intellij.util.containers.Convertor;
|
||||
import com.intellij.util.ui.ColumnInfo;
|
||||
import com.intellij.util.ui.ComboBoxCellEditor;
|
||||
import com.intellij.util.ui.tree.TreeUtil;
|
||||
@@ -39,6 +40,7 @@ import javax.swing.table.DefaultTableCellRenderer;
|
||||
import javax.swing.table.TableCellEditor;
|
||||
import javax.swing.table.TableCellRenderer;
|
||||
import javax.swing.table.TableColumn;
|
||||
import javax.swing.tree.TreePath;
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
@@ -188,6 +190,14 @@ public class DetectedRootsChooserDialog extends DialogWrapper {
|
||||
column.setPreferredWidth(width);
|
||||
column.setMaxWidth(width);
|
||||
treeTable.setRootVisible(false);
|
||||
new TreeTableSpeedSearch(treeTable, new Convertor<TreePath, String>() {
|
||||
@Override
|
||||
public String convert(TreePath o) {
|
||||
Object node = o.getLastPathComponent();
|
||||
if (!(node instanceof VirtualFileCheckedTreeNode)) return "";
|
||||
return ((VirtualFileCheckedTreeNode)node).getFile().getPresentableUrl();
|
||||
}
|
||||
});
|
||||
TreeUtil.expandAll(treeTable.getTree());
|
||||
return treeTable;
|
||||
}
|
||||
@@ -237,6 +247,12 @@ public class DetectedRootsChooserDialog extends DialogWrapper {
|
||||
return "DetectedRootsChooserDialog";
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public JComponent getPreferredFocusedComponent() {
|
||||
return myTreeTable;
|
||||
}
|
||||
|
||||
private static class VirtualFileCheckedTreeNode extends CheckedTreeNode {
|
||||
private final VirtualFile myFile;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user