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);
}
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);
}
}
}
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;
}
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;
}
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;
}
Aggregations