1 17 package org.columba.core.gui.base; 18 import java.awt.event.ActionEvent ; 19 import java.awt.event.ActionListener ; 20 21 import javax.swing.JPopupMenu ; 22 import javax.swing.MenuSelectionManager ; 23 import javax.swing.Timer ; 24 import javax.swing.event.ChangeEvent ; 25 import javax.swing.event.ChangeListener ; 26 27 32 public class SelfClosingPopupMenu implements ActionListener , ChangeListener { 33 34 protected Timer timer; 35 private JPopupMenu popupMenu; 36 37 public SelfClosingPopupMenu(JPopupMenu popupMenu) { 38 super(); 39 40 this.popupMenu = popupMenu; 41 42 timer = new Timer (1000, this); 43 timer.setRepeats(false); 44 45 MenuSelectionManager.defaultManager().addChangeListener(this); 46 47 } 48 49 52 56 59 public void actionPerformed(ActionEvent e) { 60 popupMenu.setVisible(false); 61 } 62 63 66 public void stateChanged(ChangeEvent e) { 67 if( MenuSelectionManager.defaultManager().getSelectedPath().length==1 ) { 69 timer.start(); 70 } else { 71 timer.stop(); 72 } 73 } 74 } 75 | Popular Tags |