'Detected Roots' dialog improved: support speed-search and focus table when opened (inspired by IDEA-127010)

This commit is contained in:
nik
2014-08-02 17:48:46 +04:00
parent ca929d6463
commit 9f895abdf7
@@ -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;