1. /*
  2. * @(#)BasicCheckBoxMenuItemUI.java 1.48 01/11/29
  3. *
  4. * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package javax.swing.plaf.basic;
  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. * BasicCheckboxMenuItem implementation
  16. *
  17. * @version 1.48 11/29/01
  18. * @author Georges Saab
  19. * @author David Karlton
  20. * @author Arnaud Weber
  21. */
  22. public class BasicCheckBoxMenuItemUI extends BasicMenuItemUI {
  23. public static ComponentUI createUI(JComponent c) {
  24. return new BasicCheckBoxMenuItemUI();
  25. }
  26. protected void installDefaults() {
  27. super.installDefaults();
  28. String prefix = getPropertyPrefix();
  29. if (menuItem.getSelectedIcon() == null ||
  30. menuItem.getSelectedIcon() instanceof UIResource) {
  31. menuItem.setSelectedIcon(
  32. UIManager.getIcon(prefix + ".checkIcon"));
  33. }
  34. }
  35. protected String getPropertyPrefix() {
  36. return "CheckBoxMenuItem";
  37. }
  38. public void processMouseEvent(JMenuItem item,MouseEvent e,MenuElement path[],MenuSelectionManager manager) {
  39. Point p = e.getPoint();
  40. if(p.x >= 0 && p.x < item.getWidth() &&
  41. p.y >= 0 && p.y < item.getHeight()) {
  42. if(e.getID() == MouseEvent.MOUSE_RELEASED) {
  43. manager.clearSelectedPath();
  44. item.doClick(0);
  45. } else
  46. manager.setSelectedPath(path);
  47. } else if(item.getModel().isArmed()) {
  48. MenuElement newPath[] = new MenuElement[path.length-1];
  49. int i,c;
  50. for(i=0,c=path.length-1;i<c;i++)
  51. newPath[i] = path[i];
  52. manager.setSelectedPath(newPath);
  53. }
  54. }
  55. }