/******************************************************************************* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Tiny Look and Feel * * (C) Copyright 2003 - 2007 Hans Bickel * * For * licensing information and credits, please refer to the * comment in file * de.muntjak.tinylookandfeel.TinyLookAndFeel * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ package de.muntjak.tinylookandfeel; import java.awt.Point; import java.awt.event.MouseEvent; import javax.swing.JComponent; import javax.swing.JMenuItem; import javax.swing.MenuElement; import javax.swing.MenuSelectionManager; import javax.swing.plaf.ComponentUI; /** * TinyRadioButtonMenuItemUI * * @version 1.0 * @author Hans Bickel */ @SuppressWarnings ( { "all" } ) public class TinyRadioButtonMenuItemUI extends TinyMenuItemUI { public static ComponentUI createUI ( JComponent b ) { return new TinyRadioButtonMenuItemUI (); } protected String getPropertyPrefix () { return "RadioButtonMenuItem"; } public void processMouseEvent ( JMenuItem item, MouseEvent e, MenuElement path[], MenuSelectionManager manager ) { Point p = e.getPoint (); if ( p.x >= 0 && p.x < item.getWidth () && p.y >= 0 && p.y < item.getHeight () ) { if ( e.getID () == MouseEvent.MOUSE_RELEASED ) { manager.clearSelectedPath (); item.doClick ( 0 ); item.setArmed ( false ); } else manager.setSelectedPath ( path ); } else if ( item.getModel ().isArmed () ) { MenuElement newPath[] = new MenuElement [ path.length - 1 ]; int i, c; for ( i = 0, c = path.length - 1 ; i < c ; i++ ) newPath [ i ] = path [ i ]; manager.setSelectedPath ( newPath ); } } }