001 // License: GPL. For details, see LICENSE file. 002 package org.openstreetmap.josm.gui.widgets; 003 004 import javax.swing.Action; 005 import javax.swing.JList; 006 import javax.swing.JMenuItem; 007 import javax.swing.JPopupMenu; 008 import javax.swing.event.ListSelectionListener; 009 010 /** 011 * @author Vincent 012 * 013 */ 014 public class ListPopupMenu extends JPopupMenu { 015 016 private JList[] lists; 017 018 public ListPopupMenu(JList ... lists) { 019 this.lists = lists; 020 } 021 022 /* (non-Javadoc) 023 * @see javax.swing.JPopupMenu#add(javax.swing.Action) 024 */ 025 @Override 026 public JMenuItem add(Action a) { 027 if (lists != null && a instanceof ListSelectionListener) { 028 for (JList list : lists) { 029 list.addListSelectionListener((ListSelectionListener) a); 030 } 031 } 032 return super.add(a); 033 } 034 }