blob: e240bb0cbd4114e84a47d7f9370c27994ea5c9b5 [file] [log] [blame]
/*
* Copyright 2000-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.ui;
import com.intellij.openapi.ui.MessageType;
import com.intellij.openapi.ui.popup.Balloon;
import com.intellij.openapi.util.IconLoader;
import com.intellij.openapi.util.Ref;
import com.intellij.ui.awt.RelativePoint;
import com.intellij.ui.treeStructure.Tree;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
public class BalloonTest {
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<BalloonImpl>();
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, 0, true, false, null,
false, 500, 25, 0, 0, false, "This is the title", new Insets(2, 2, 2, 2), true, false, false, Balloon.Layer.normal));
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);
}
}