source: josm/trunk/src/org/openstreetmap/josm/gui/widgets/PopupMenuLauncher.java@ 5884

Last change on this file since 5884 was 5884, checked in by Don-vip, 11 years ago

see #4429 - Get popup menu from PopupMenuLauncher + fix javadoc

  • Property svn:eol-style set to native
File size: 1.7 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.widgets;
3
4import java.awt.event.MouseAdapter;
5import java.awt.event.MouseEvent;
6
7import javax.swing.JPopupMenu;
8
9/**
10 * Utility class that helps to display popup menus on mouse events.
11 * @since 2688
12 */
13public class PopupMenuLauncher extends MouseAdapter {
14 private final JPopupMenu menu;
15
16 /**
17 * Creates a new {@link PopupMenuLauncher} with no defined menu.
18 * It is then needed to override the {@link #launch} method.
19 * @see #launch(MouseEvent)
20 */
21 public PopupMenuLauncher() {
22 this(null);
23 }
24
25 /**
26 * Creates a new {@link PopupMenuLauncher} with the given menu.
27 * @param menu The popup menu to display
28 */
29 public PopupMenuLauncher(JPopupMenu menu) {
30 this.menu = menu;
31 }
32
33 @Override
34 public void mousePressed(MouseEvent e) {
35 if (e.isPopupTrigger()) {
36 launch(e);
37 }
38 }
39
40 @Override
41 public void mouseClicked(MouseEvent e) {
42 if (e.isPopupTrigger()) {
43 launch(e);
44 }
45 }
46
47 @Override
48 public void mouseReleased(MouseEvent e) {
49 if (e.isPopupTrigger()) {
50 launch(e);
51 }
52 }
53
54 /**
55 * Launches the popup menu according to the given mouse event.
56 * This method needs to be overriden if the default constructor has been called.
57 * @param evt A mouse event
58 */
59 public void launch(MouseEvent evt) {
60 if (menu != null) {
61 menu.show(evt.getComponent(), evt.getX(), evt.getY());
62 }
63 }
64
65 /**
66 * @return the popup menu if defined, {@code null} otherwise.
67 * @since 5884
68 */
69 public final JPopupMenu getMenu() {
70 return menu;
71 }
72}
Note: See TracBrowser for help on using the repository browser.