KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jgoodies > looks > common > ExtBasicRadioButtonMenuItemUI


1 /*
2  * Copyright (c) 2001-2005 JGoodies Karsten Lentzsch. All Rights Reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * o Redistributions of source code must retain the above copyright notice,
8  * this list of conditions and the following disclaimer.
9  *
10  * o Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  *
14  * o Neither the name of JGoodies Karsten Lentzsch nor the names of
15  * its contributors may be used to endorse or promote products derived
16  * from this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
20  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
22  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30
31 package com.jgoodies.looks.common;
32
33 import java.awt.Point JavaDoc;
34 import java.awt.event.MouseEvent JavaDoc;
35
36 import javax.swing.JComponent JavaDoc;
37 import javax.swing.JMenuItem JavaDoc;
38 import javax.swing.MenuElement JavaDoc;
39 import javax.swing.MenuSelectionManager JavaDoc;
40 import javax.swing.plaf.ComponentUI JavaDoc;
41
42
43 /**
44  * Renders aligned <code>JRadioButtonMenuItem</code>s.
45  *
46  * @author Karsten Lentzsch
47  * @version $Revision: 1.2 $
48  */

49 public class ExtBasicRadioButtonMenuItemUI extends ExtBasicMenuItemUI {
50     
51     protected String JavaDoc getPropertyPrefix() { return "RadioButtonMenuItem"; }
52     
53     
54     public static ComponentUI JavaDoc createUI(JComponent JavaDoc b) {
55         return new ExtBasicRadioButtonMenuItemUI();
56     }
57     
58     
59     // RadioButtonMenuItems and CheckBoxMenuItems will override
60
protected boolean iconBorderEnabled() { return true; }
61
62
63     public void processMouseEvent(JMenuItem JavaDoc item, MouseEvent JavaDoc e,
64                                    MenuElement JavaDoc path[], MenuSelectionManager JavaDoc manager) {
65         Point JavaDoc p = e.getPoint();
66         if (p.x >= 0 && p.x < item.getWidth() &&
67             p.y >= 0 && p.y < item.getHeight()) {
68             if (e.getID() == MouseEvent.MOUSE_RELEASED) {
69                 manager.clearSelectedPath();
70                 item.doClick(0);
71                 item.setArmed(false);
72             } else
73                 manager.setSelectedPath(path);
74         } else if (item.getModel().isArmed()) {
75             MenuElement JavaDoc newPath[] = new MenuElement JavaDoc[path.length - 1];
76             int i, c;
77             for (i = 0, c = path.length - 1; i < c; i++)
78                 newPath[i] = path[i];
79             manager.setSelectedPath(newPath);
80         }
81     }
82
83 }
Popular Tags