1. /*
  2. * @(#)SynthRadioButtonMenuItemUI.java 1.5 03/12/19
  3. *
  4. * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package javax.swing.plaf.synth;
  8. import javax.swing.*;
  9. import java.awt.*;
  10. import java.awt.event.*;
  11. import javax.swing.plaf.*;
  12. import javax.swing.border.*;
  13. /**
  14. * Synth's RadioButtonMenuItemUI.
  15. *
  16. * @version 1.5, 12/19/03
  17. * @author Georges Saab
  18. * @author David Karlton
  19. */
  20. class SynthRadioButtonMenuItemUI extends SynthMenuItemUI {
  21. public static ComponentUI createUI(JComponent b) {
  22. return new SynthRadioButtonMenuItemUI();
  23. }
  24. protected String getPropertyPrefix() {
  25. return "RadioButtonMenuItem";
  26. }
  27. public void processMouseEvent(JMenuItem item,MouseEvent e,MenuElement path[],MenuSelectionManager manager) {
  28. Point p = e.getPoint();
  29. if(p.x >= 0 && p.x < item.getWidth() &&
  30. p.y >= 0 && p.y < item.getHeight()) {
  31. if(e.getID() == MouseEvent.MOUSE_RELEASED) {
  32. manager.clearSelectedPath();
  33. item.doClick(0);
  34. item.setArmed(false);
  35. } else
  36. manager.setSelectedPath(path);
  37. } else if(item.getModel().isArmed()) {
  38. MenuElement newPath[] = new MenuElement[path.length-1];
  39. int i,c;
  40. for(i=0,c=path.length-1;i<c;i++)
  41. newPath[i] = path[i];
  42. manager.setSelectedPath(newPath);
  43. }
  44. }
  45. void paintBackground(SynthContext context, Graphics g, JComponent c) {
  46. context.getPainter().paintRadioButtonMenuItemBackground(context, g, 0,
  47. 0, c.getWidth(), c.getHeight());
  48. }
  49. public void paintBorder(SynthContext context, Graphics g, int x,
  50. int y, int w, int h) {
  51. context.getPainter().paintRadioButtonMenuItemBorder(context, g, x,
  52. y, w, h);
  53. }
  54. }