package edu.byu.cs.roots.opg.gui.tools; import java.awt.Component; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JToolBar; import javax.swing.JToggleButton; public class MenuToolBar extends JToolBar { /** * */ private static final long serialVersionUID = 3613150486272685288L; @Override public Component add(Component comp){ super.add(comp); try{ ToolBarMenu menu = (ToolBarMenu) comp; menu.addMouseListener(new MouseListener() { public void mousePressed(MouseEvent e) { // ToolBarMenu orig = (ToolBarMenu) e.getComponent(); // if(orig.menuopen == true){ // // } ShowPopup(e); } private void ShowPopup(MouseEvent e) { ToolBarMenu orig = (ToolBarMenu) e.getComponent(); orig.openMenu(getOrientation()); } public void mouseClicked(MouseEvent arg0) {} public void mouseEntered(MouseEvent arg0) { if(isSelected()){ deselectAll(); ShowPopup(arg0); } } public void mouseExited(MouseEvent arg0) { } public void mouseReleased(MouseEvent arg0) {} }); } catch(ClassCastException cce){} return comp; } public boolean isSelected(){ JToggleButton button = null; for(Component comp : this.getComponents()){ try{ button = (JToggleButton) comp; } catch(ClassCastException cce){ continue; } if(button.isSelected()) return true; } return false; } public void deselectAll(){ JToggleButton button = null; for(Component comp : this.getComponents()){ try{ button = (JToggleButton) comp; } catch(ClassCastException cce){ continue; } button.setSelected(false); } } }