1. /*
  2. * @(#)SynthCheckBoxMenuItemUI.java 1.7 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 java.awt.*;
  9. import java.awt.event.*;
  10. import javax.swing.*;
  11. import javax.swing.plaf.*;
  12. import javax.swing.border.*;
  13. import java.io.Serializable;
  14. /**
  15. * Synth's CheckBoxMenuItemUI.
  16. *
  17. * @version 1.7 12/19/03
  18. * @author Leif Samuelsson
  19. * @author Georges Saab
  20. * @author David Karlton
  21. * @author Arnaud Weber
  22. */
  23. class SynthCheckBoxMenuItemUI extends SynthMenuItemUI {
  24. public static ComponentUI createUI(JComponent c) {
  25. return new SynthCheckBoxMenuItemUI();
  26. }
  27. protected String getPropertyPrefix() {
  28. return "CheckBoxMenuItem";
  29. }
  30. public void processMouseEvent(JMenuItem item, MouseEvent e,
  31. MenuElement path[], MenuSelectionManager manager) {
  32. Point p = e.getPoint();
  33. if (p.x >= 0 && p.x < item.getWidth() && p.y >= 0 && p.y < item.getHeight()) {
  34. if (e.getID() == MouseEvent.MOUSE_RELEASED) {
  35. manager.clearSelectedPath();
  36. item.doClick(0);
  37. } else {
  38. manager.setSelectedPath(path);
  39. }
  40. } else if (item.getModel().isArmed()) {
  41. int c = path.length - 1;
  42. MenuElement newPath[] = new MenuElement[c];
  43. for (int i = 0; i < c; i++) {
  44. newPath[i] = path[i];
  45. }
  46. manager.setSelectedPath(newPath);
  47. }
  48. }
  49. void paintBackground(SynthContext context, Graphics g, JComponent c) {
  50. context.getPainter().paintCheckBoxMenuItemBackground(context, g, 0, 0,
  51. c.getWidth(), c.getHeight());
  52. }
  53. public void paintBorder(SynthContext context, Graphics g, int x,
  54. int y, int w, int h) {
  55. context.getPainter().paintCheckBoxMenuItemBorder(context, g, x, y, w, h);
  56. }
  57. }