Search in sources :

Example 41 with Tree

use of com.intellij.ui.treeStructure.Tree in project intellij-community by JetBrains.

the class BalloonTest method main.

public static void main(String[] args) {
    IconLoader.activate();
    final JFrame frame = new JFrame();
    frame.getContentPane().setLayout(new BorderLayout());
    final JPanel content = new JPanel(new BorderLayout());
    frame.getContentPane().add(content, BorderLayout.CENTER);
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    final JTree tree = new Tree();
    content.add(tree);
    final Ref<BalloonImpl> balloon = new Ref<>();
    tree.addMouseListener(new MouseAdapter() {

        @Override
        public void mousePressed(final MouseEvent e) {
            if (balloon.get() != null && balloon.get().isVisible()) {
                //noinspection SSBasedInspection
                balloon.get().dispose();
            } else {
                //JLabel pane1 = new JLabel("Hello, world!");
                //JLabel pane2 = new JLabel("Hello, again");
                //JPanel pane = new JPanel(new BorderLayout());
                //pane.add(pane1, BorderLayout.CENTER);
                //pane.add(pane2, BorderLayout.SOUTH);
                //pane.setBorder(new LineBorder(Color.blue));
                balloon.set(new BalloonImpl(new JLabel("Content"), Color.black, null, MessageType.ERROR.getPopupBackground(), true, true, true, true, true, true, 0, true, false, null, false, 500, 25, 0, 0, false, "This is the title", JBUI.insets(2), true, false, false, Balloon.Layer.normal, false, null, -1));
                balloon.get().setShowPointer(true);
                if (e.isShiftDown()) {
                    balloon.get().show(new RelativePoint(e), Balloon.Position.above);
                } else if (e.isAltDown()) {
                    balloon.get().show(new RelativePoint(e), Balloon.Position.below);
                } else if (e.isMetaDown()) {
                    balloon.get().show(new RelativePoint(e), Balloon.Position.atLeft);
                } else {
                    balloon.get().show(new RelativePoint(e), Balloon.Position.atRight);
                }
            }
        }
    });
    tree.addMouseMotionListener(new MouseMotionAdapter() {

        @Override
        public void mouseMoved(MouseEvent e) {
            System.out.println(e.getPoint());
        }
    });
    frame.setBounds(300, 300, 300, 300);
    frame.setVisible(true);
}
Also used : MouseEvent(java.awt.event.MouseEvent) MouseAdapter(java.awt.event.MouseAdapter) RelativePoint(com.intellij.ui.awt.RelativePoint) Ref(com.intellij.openapi.util.Ref) MouseMotionAdapter(java.awt.event.MouseMotionAdapter) Tree(com.intellij.ui.treeStructure.Tree)

Example 42 with Tree

use of com.intellij.ui.treeStructure.Tree in project intellij-community by JetBrains.

the class AbstractTreeUi method maybeSetBusyAndScheduleWaiterForReady.

private void maybeSetBusyAndScheduleWaiterForReady(boolean forcedBusy, @Nullable Object element) {
    if (!myShowBusyIndicator.asBoolean())
        return;
    boolean canUpdateBusyState = false;
    if (forcedBusy) {
        if (canYield() || isToBuildChildrenInBackground(element)) {
            canUpdateBusyState = true;
        }
    } else {
        canUpdateBusyState = true;
    }
    if (!canUpdateBusyState)
        return;
    if (myTree instanceof Tree) {
        final Tree tree = (Tree) myTree;
        final boolean isBusy = !isReady(true) || forcedBusy;
        if (isBusy && tree.isShowing()) {
            tree.setPaintBusy(true);
            myBusyAlarm.cancelAllRequests();
            myBusyAlarm.addRequest(myWaiterForReady, myWaitForReadyTime.asInteger());
        } else {
            tree.setPaintBusy(false);
        }
    }
}
Also used : AlwaysExpandedTree(com.intellij.ui.treeStructure.AlwaysExpandedTree) Tree(com.intellij.ui.treeStructure.Tree)

Example 43 with Tree

use of com.intellij.ui.treeStructure.Tree in project intellij-community by JetBrains.

the class TargetChooserDialog method initTree.

private Tree initTree() {
    @NonNls final DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
    final Tree tree = new Tree(root);
    tree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {

        public void valueChanged(TreeSelectionEvent e) {
            final TreePath selectionPath = tree.getSelectionPath();
            if (selectionPath != null) {
                final DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath.getLastPathComponent();
                final Object userObject = node.getUserObject();
                if (userObject instanceof AntTargetNodeDescriptor) {
                    final AntTargetNodeDescriptor antBuildTarget = (AntTargetNodeDescriptor) userObject;
                    mySelectedTarget = antBuildTarget.getAntTarget();
                } else {
                    mySelectedTarget = null;
                }
            }
        }
    });
    tree.setCellRenderer(new MyTreeCellRenderer());
    tree.setRootVisible(false);
    tree.setShowsRootHandles(true);
    tree.setLineStyleAngled();
    TreeUtil.installActions(tree);
    new TreeSpeedSearch(tree, new Convertor<TreePath, String>() {

        public String convert(final TreePath path) {
            final Object userObject = ((DefaultMutableTreeNode) path.getLastPathComponent()).getUserObject();
            if (userObject instanceof AntTargetNodeDescriptor) {
                final AntBuildTarget target = ((AntTargetNodeDescriptor) userObject).getAntTarget();
                return target.getDisplayName();
            }
            return null;
        }
    });
    DefaultMutableTreeNode selectedNode = null;
    final AntConfiguration antConfiguration = AntConfigurationImpl.getInstance(myProject);
    for (AntBuildFile buildFile : antConfiguration.getBuildFileList()) {
        final DefaultMutableTreeNode buildFileNode = new DefaultMutableTreeNode(buildFile);
        DefaultMutableTreeNode selection = processFileTargets(antConfiguration.getMetaTargets(buildFile), buildFile, buildFileNode);
        if (selection != null) {
            selectedNode = selection;
        }
        selection = processFileTargets(antConfiguration.getModel(buildFile).getTargets(), buildFile, buildFileNode);
        if (selection != null) {
            selectedNode = selection;
        }
        root.add(buildFileNode);
    }
    TreeUtil.expandAll(tree);
    TreeUtil.selectInTree(selectedNode, true, tree);
    return tree;
}
Also used : NonNls(org.jetbrains.annotations.NonNls) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) TreeSelectionListener(javax.swing.event.TreeSelectionListener) AntConfiguration(com.intellij.lang.ant.config.AntConfiguration) AntBuildFile(com.intellij.lang.ant.config.AntBuildFile) TreePath(javax.swing.tree.TreePath) Tree(com.intellij.ui.treeStructure.Tree) TreeSelectionEvent(javax.swing.event.TreeSelectionEvent) AntBuildTarget(com.intellij.lang.ant.config.AntBuildTarget)

Example 44 with Tree

use of com.intellij.ui.treeStructure.Tree in project intellij-community by JetBrains.

the class CallerChooserBase method createTree.

private Tree createTree() {
    final Runnable cancelCallback = () -> {
        if (myInitDone) {
            close(CANCEL_EXIT_CODE);
        } else {
            throw new ProcessCanceledException();
        }
    };
    final CheckedTreeNode root = createTreeNode(null, new HashSet<>(), cancelCallback);
    myRoot = createTreeNode(myMethod, new HashSet<>(), cancelCallback);
    root.add(myRoot);
    final CheckboxTree.CheckboxTreeCellRenderer cellRenderer = new CheckboxTree.CheckboxTreeCellRenderer(true, false) {

        @Override
        public void customizeRenderer(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
            if (value instanceof MethodNodeBase) {
                ((MethodNodeBase) value).customizeRenderer(getTextRenderer());
            }
        }
    };
    Tree tree = new CheckboxTree(cellRenderer, root, new CheckboxTreeBase.CheckPolicy(false, true, true, false));
    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.getSelectionModel().setSelectionPath(new TreePath(myRoot.getPath()));
    return tree;
}
Also used : TreePath(javax.swing.tree.TreePath) Tree(com.intellij.ui.treeStructure.Tree) ProcessCanceledException(com.intellij.openapi.progress.ProcessCanceledException) HashSet(com.intellij.util.containers.HashSet)

Example 45 with Tree

use of com.intellij.ui.treeStructure.Tree in project intellij-community by JetBrains.

the class SelectSdkDialogFixture method selectPathToSdk.

public SelectSdkDialogFixture selectPathToSdk(@NotNull File pathToSdk) {
    final JTextField textField = myRobot.finder().findByType(JTextField.class);
    execute(new GuiTask() {

        @Override
        protected void executeInEDT() throws Throwable {
            textField.setText(pathToSdk.getPath());
        }
    });
    final Tree tree = myRobot.finder().findByType(myDialog, Tree.class);
    final AbstractTreeBuilder builder = AbstractTreeBuilder.getBuilderFor(tree);
    pause(new Condition("Wait until path is updated") {

        @Override
        public boolean test() {
            //noinspection ConstantConditions
            return execute(new GuiQuery<Boolean>() {

                @Override
                protected Boolean executeInEDT() throws Throwable {
                    return (textField.getText().equals(pathToSdk.getPath()) && !builder.getUi().getUpdater().hasNodesToUpdate());
                }
            });
        }
    }, SHORT_TIMEOUT);
    return this;
}
Also used : GuiTask(org.fest.swing.edt.GuiTask) Condition(org.fest.swing.timing.Condition) AbstractTreeBuilder(com.intellij.ide.util.treeView.AbstractTreeBuilder) GuiQuery(org.fest.swing.edt.GuiQuery) Tree(com.intellij.ui.treeStructure.Tree)

Aggregations

Tree (com.intellij.ui.treeStructure.Tree)63 DefaultMutableTreeNode (javax.swing.tree.DefaultMutableTreeNode)23 DefaultTreeModel (javax.swing.tree.DefaultTreeModel)22 TreePath (javax.swing.tree.TreePath)21 JBScrollPane (com.intellij.ui.components.JBScrollPane)11 MouseEvent (java.awt.event.MouseEvent)11 KeyEvent (java.awt.event.KeyEvent)10 TreeSelectionListener (javax.swing.event.TreeSelectionListener)10 TreeSpeedSearch (com.intellij.ui.TreeSpeedSearch)9 KeyAdapter (java.awt.event.KeyAdapter)9 TreeSelectionEvent (javax.swing.event.TreeSelectionEvent)9 NotNull (org.jetbrains.annotations.NotNull)9 List (java.util.List)7 TreeNode (javax.swing.tree.TreeNode)7 Nullable (org.jetbrains.annotations.Nullable)7 ColumnTreeBuilder (com.android.tools.adtui.common.ColumnTreeBuilder)6 ActionEvent (java.awt.event.ActionEvent)5 ActionListener (java.awt.event.ActionListener)5 NodeRenderer (com.intellij.ide.util.treeView.NodeRenderer)4 ComboBox (com.intellij.openapi.ui.ComboBox)4