001    // License: GPL. For details, see LICENSE file.
002    package org.openstreetmap.josm.gui.widgets;
003    
004    import java.awt.event.MouseAdapter;
005    import java.awt.event.MouseEvent;
006    
007    import javax.swing.JPopupMenu;
008    
009    public class PopupMenuLauncher extends MouseAdapter {
010        private JPopupMenu menu;
011    
012        public PopupMenuLauncher() {
013            menu = null;
014        }
015        public PopupMenuLauncher(JPopupMenu menu) {
016            this.menu = menu;
017        }
018    
019        @Override
020        public void mousePressed(MouseEvent e) {
021            if (e.isPopupTrigger()) {
022                launch(e);
023            }
024        }
025    
026        @Override
027        public void mouseClicked(MouseEvent e) {
028            if (e.isPopupTrigger()) {
029                launch(e);
030            }
031        }
032    
033        @Override
034        public void mouseReleased(MouseEvent e) {
035            if (e.isPopupTrigger()) {
036                launch(e);
037            }
038        }
039    
040        public void launch(MouseEvent evt) {
041            if (menu != null) {
042                menu.show(evt.getComponent(), evt.getX(),evt.getY());
043            }
044        }
045    }