use of com.intellij.ui.TreeSpeedSearch in project intellij-community by JetBrains.
the class BaseExecuteBeforeRunDialog method createCenterPanel.
@Override
protected JComponent createCenterPanel() {
JPanel panel = new JPanel(new BorderLayout());
myRoot = buildNodes();
final Tree tree = new Tree(myRoot);
final MyTreeCellRenderer cellRenderer = new MyTreeCellRenderer();
tree.setCellRenderer(cellRenderer);
tree.setRootVisible(false);
tree.setShowsRootHandles(true);
tree.setLineStyleAngled();
TreeUtil.installActions(tree);
new TreeSpeedSearch(tree);
tree.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
int row = tree.getRowForLocation(e.getX(), e.getY());
if (row >= 0) {
Rectangle rowBounds = tree.getRowBounds(row);
cellRenderer.setBounds(rowBounds);
Rectangle checkBounds = cellRenderer.myCheckbox.getBounds();
checkBounds.setLocation(rowBounds.getLocation());
if (checkBounds.contains(e.getPoint())) {
toggleNode(tree, (DefaultMutableTreeNode) tree.getPathForRow(row).getLastPathComponent());
e.consume();
tree.setSelectionRow(row);
}
}
}
});
tree.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
TreePath treePath = tree.getLeadSelectionPath();
DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath.getLastPathComponent();
toggleNode(tree, node);
e.consume();
}
}
});
expacndChecked(tree);
JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(tree);
scrollPane.setPreferredSize(JBUI.size(400, 400));
panel.add(scrollPane, BorderLayout.CENTER);
return panel;
}
use of com.intellij.ui.TreeSpeedSearch in project azure-tools-for-java by Microsoft.
the class ServerExplorerToolWindowFactory method createToolWindowContent.
@Override
@AzureOperation(name = "common|explorer.initialize", type = AzureOperation.Type.SERVICE)
public void createToolWindowContent(@NotNull final Project project, @NotNull final ToolWindow toolWindow) {
// initialize azure service module
AzureModule azureModule = new AzureModuleImpl(project);
HDInsightUtil.setHDInsightRootModule(azureModule);
azureModule.setSparkServerlessModule(new CosmosSparkClusterRootModuleImpl(azureModule));
azureModule.setArcadiaModule(new ArcadiaSparkClusterRootModuleImpl(azureModule));
// initialize aris service module
SqlBigDataClusterModule arisModule = new SqlBigDataClusterModule(project);
// initialize with all the service modules
DefaultTreeModel treeModel = new DefaultTreeModel(initRoot(project, ImmutableList.of(azureModule, arisModule)));
treeModelMap.put(project, treeModel);
// initialize tree
final JTree tree = new Tree(treeModel);
tree.setRootVisible(false);
tree.setCellRenderer(new NodeTreeCellRenderer());
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
new TreeSpeedSearch(tree);
final DefaultMutableTreeNode root = (DefaultMutableTreeNode) treeModel.getRoot();
final DefaultMutableTreeNode azureRoot = (DefaultMutableTreeNode) root.getChildAt(0);
final List<? extends com.microsoft.azure.toolkit.intellij.common.component.Tree.TreeNode<?>> modules = AzureExplorer.getModules().stream().map(m -> new com.microsoft.azure.toolkit.intellij.common.component.Tree.TreeNode<>(m, tree)).collect(Collectors.toList());
modules.forEach(azureRoot::add);
azureModule.setClearResourcesListener(() -> modules.forEach(m -> m.clearChildren()));
com.microsoft.azure.toolkit.intellij.common.component.Tree.installPopupMenu(tree);
treeModel.reload();
DataManager.registerDataProvider(tree, dataId -> {
if (StringUtils.equals(dataId, Action.SOURCE)) {
final DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
if (Objects.nonNull(selectedNode)) {
return selectedNode.getUserObject();
}
}
return null;
});
// add a click handler for the tree
tree.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(final MouseEvent e) {
if (e.getClickCount() == 2 && SwingUtilities.isLeftMouseButton(e)) {
treeNodeDblClicked(e, tree, project);
}
}
@Override
public void mousePressed(MouseEvent e) {
treeMousePressed(e, tree);
}
});
// add keyboard handler for the tree
tree.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
TreePath treePath = tree.getAnchorSelectionPath();
if (treePath == null) {
return;
}
final Object raw = treePath.getLastPathComponent();
if (raw instanceof com.microsoft.azure.toolkit.intellij.common.component.Tree.TreeNode || raw instanceof LoadingNode) {
return;
}
SortableTreeNode treeNode = (SortableTreeNode) raw;
Node node = (Node) treeNode.getUserObject();
Rectangle rectangle = tree.getRowBounds(tree.getRowForPath(treePath));
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
if (!node.isLoading()) {
node.getClickAction().fireNodeActionEvent();
}
} else if (e.getKeyCode() == KeyEvent.VK_CONTEXT_MENU) {
if (node.hasNodeActions()) {
JPopupMenu menu = createPopupMenuForNode(node);
menu.show(e.getComponent(), (int) rectangle.getX(), (int) rectangle.getY());
}
}
}
});
// add the tree to the window
toolWindow.getComponent().add(new JBScrollPane(tree));
// set tree and tree path to expand the node later
azureModule.setTree(tree);
azureModule.setTreePath(tree.getPathForRow(0));
// setup toolbar icons
addToolbarItems(toolWindow, project, azureModule);
}
use of com.intellij.ui.TreeSpeedSearch in project android by JetBrains.
the class ApkDiffPanel method createUIComponents.
private void createUIComponents() {
myTreeModel = new DefaultTreeModel(new LoadingNode());
myTree = new Tree(myTreeModel);
myTree.setShowsRootHandles(true);
// show root node only when showing LoadingNode
myTree.setRootVisible(true);
myTree.setPaintBusy(true);
Convertor<TreePath, String> convertor = new Convertor<TreePath, String>() {
@Override
public String convert(TreePath path) {
ApkEntry e = ApkEntry.fromNode(path.getLastPathComponent());
if (e == null) {
return null;
}
return e.getPath();
}
};
TreeSpeedSearch treeSpeedSearch = new TreeSpeedSearch(myTree, convertor, true);
ColumnTreeBuilder builder = new ColumnTreeBuilder(myTree).addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("File").setPreferredWidth(600).setHeaderAlignment(SwingConstants.LEADING).setRenderer(new NameRenderer(treeSpeedSearch))).addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("Old Size").setPreferredWidth(150).setHeaderAlignment(SwingConstants.TRAILING).setRenderer(new SizeRenderer(ApkDiffEntry::getOldSize))).addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("New Size").setPreferredWidth(150).setHeaderAlignment(SwingConstants.TRAILING).setRenderer(new SizeRenderer(ApkDiffEntry::getNewSize))).addColumn(new ColumnTreeBuilder.ColumnBuilder().setName("Diff Size").setPreferredWidth(150).setHeaderAlignment(SwingConstants.TRAILING).setRenderer(new SizeRenderer(ApkEntry::getSize)));
myColumnTreePane = (JScrollPane) builder.build();
}
use of com.intellij.ui.TreeSpeedSearch in project intellij-plugins by JetBrains.
the class FlexBCTree method installSpeedSearch.
protected void installSpeedSearch() {
new TreeSpeedSearch(this, path -> {
final CheckedTreeNode node = (CheckedTreeNode) path.getLastPathComponent();
final Object userObject = node.getUserObject();
if (userObject instanceof Project) {
return ((Project) userObject).getName();
} else if (userObject instanceof Module) {
return ((Module) userObject).getName();
} else if (userObject instanceof FlexBuildConfiguration) {
return ((FlexBuildConfiguration) userObject).getName();
}
return null;
});
}
use of com.intellij.ui.TreeSpeedSearch in project intellij-community by JetBrains.
the class ScopeChooserConfigurable method initTree.
@Override
protected void initTree() {
myTree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
final TreePath path = e.getOldLeadSelectionPath();
if (path != null) {
final MyNode node = (MyNode) path.getLastPathComponent();
final NamedConfigurable namedConfigurable = node.getConfigurable();
if (namedConfigurable instanceof ScopeConfigurable) {
((ScopeConfigurable) namedConfigurable).cancelCurrentProgress();
}
}
}
});
super.initTree();
myTree.setShowsRootHandles(false);
new TreeSpeedSearch(myTree, new Convertor<TreePath, String>() {
@Override
public String convert(final TreePath treePath) {
return ((MyNode) treePath.getLastPathComponent()).getDisplayName();
}
}, true);
myTree.getEmptyText().setText(IdeBundle.message("scopes.no.scoped"));
}
Aggregations