1 19 20 package com.sshtools.ui.swing; 21 22 import java.awt.event.ActionEvent ; 23 24 import javax.swing.JComponent ; 25 import javax.swing.JToggleButton ; 26 import javax.swing.SwingConstants ; 27 28 public abstract class ToggledPopupAction extends AbstractToggleableAction { 29 JToggleButton toggle; 30 ToggledPopupMenu popup; 31 int edge; 32 33 public ToggledPopupAction() { 34 this(SwingConstants.NORTH); 35 } 36 37 public ToggledPopupAction(int edge) { 38 super(); 39 this.edge = edge; 40 } 41 42 public void setEdge(int edge) { 43 this.edge = edge; 44 } 45 46 public void setPopup(ToggledPopupMenu popup) { 47 this.popup = popup; 48 } 49 50 public void setToggle(JToggleButton toggle) { 51 this.toggle = toggle; 52 } 53 54 public void actionPerformed(ActionEvent evt) { 55 super.actionPerformed(evt); 56 if (evt.getSource() instanceof JComponent ) { 57 JComponent c = (JComponent ) evt.getSource(); 58 if (!toggle.isSelected()) { 60 popup.setVisible(false); 61 } else { 62 switch(edge) { 63 case SwingConstants.NORTH: 64 popup.show(c, 0, popup.getPreferredSize().height * -1); 65 break; 66 case SwingConstants.EAST: 67 popup.show(c, toggle.getSize().width, 01); 68 break; 69 } 70 } 71 } 76 } 77 } | Popular Tags |