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 }