/[classpath]/classpath/javax/swing/JMenuItem.java
ViewVC logotype

Diff of /classpath/javax/swing/JMenuItem.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.7 by mark, Sat Jun 26 16:07:01 2004 UTC revision 1.8 by mark, Thu Jul 22 19:45:39 2004 UTC
# Line 150  public class JMenuItem extends AbstractB Line 150  public class JMenuItem extends AbstractB
150      setMnemonic(mnemonic);      setMnemonic(mnemonic);
151    }    }
152    
   /**  
    * DOCUMENT ME!  
    *  
    * @param stream DOCUMENT ME!  
    *  
    * @throws IOException DOCUMENT ME!  
    * @throws ClassNotFoundException DOCUMENT ME!  
    */  
153    private void readObject(ObjectInputStream stream)    private void readObject(ObjectInputStream stream)
154                     throws IOException, ClassNotFoundException                     throws IOException, ClassNotFoundException
155    {    {
156    }    }
157    
   /**  
    * DOCUMENT ME!  
    *  
    * @param stream DOCUMENT ME!  
    *  
    * @throws IOException DOCUMENT ME!  
    */  
158    private void writeObject(ObjectOutputStream stream) throws IOException    private void writeObject(ObjectOutputStream stream) throws IOException
159    {    {
160    }    }
# Line 186  public class JMenuItem extends AbstractB Line 171  public class JMenuItem extends AbstractB
171    
172      // Initializes properties for this menu item, that are different      // Initializes properties for this menu item, that are different
173      // from Abstract button properties.      // from Abstract button properties.
174      paint_border = false;      /* NOTE: According to java specifications paint_border should be set to false,
175      paint_focus = false;        since menu item should not have a border. However running few java programs
176      hori_align = JButton.LEFT;        it seems that menu items and menues can have a border. Commenting
177      hori_text_pos = JButton.LEFT;        out statement below for now. */
178        //borderPainted = false;
179        focusPainted = false;
180        horizontalAlignment = JButton.LEFT;
181        horizontalTextPosition = JButton.LEFT;
182    }    }
183    
184    /**    /**
# Line 288  public class JMenuItem extends AbstractB Line 277  public class JMenuItem extends AbstractB
277    {    {
278      super.configurePropertiesFromAction(action);      super.configurePropertiesFromAction(action);
279    
280      if (action == null)      if (! (this instanceof JMenu) && action != null)
       setAccelerator(null);  
     else  
281        setAccelerator((KeyStroke) (action.getValue(Action.ACCELERATOR_KEY)));        setAccelerator((KeyStroke) (action.getValue(Action.ACCELERATOR_KEY)));
282    }    }
283    
# Line 325  public class JMenuItem extends AbstractB Line 312  public class JMenuItem extends AbstractB
312    public void processMouseEvent(MouseEvent event, MenuElement[] path,    public void processMouseEvent(MouseEvent event, MenuElement[] path,
313                                  MenuSelectionManager manager)                                  MenuSelectionManager manager)
314    {    {
315        // Fire MenuDragMouseEvents if mouse is being dragged.
316        boolean dragged = (event.getModifiers() & InputEvent.BUTTON1_MASK) != 0;
317        if (dragged)
318          processMenuDragMouseEvent(createMenuDragMouseEvent(event, path, manager));
319    
320      switch (event.getID())      switch (event.getID())
321        {        {
322        case MouseEvent.MOUSE_CLICKED:        case MouseEvent.MOUSE_CLICKED:
323          break;          break;
324        case MouseEvent.MOUSE_ENTERED:        case MouseEvent.MOUSE_ENTERED:
325          if (event.getSource() instanceof JMenuItem)          if (isRolloverEnabled())
           {  
             JMenuItem item = (JMenuItem) event.getSource();  
   
             ButtonModel model = item.getModel();  
             if (item.isRolloverEnabled())  
326                model.setRollover(true);                model.setRollover(true);
           }  
327          break;          break;
328        case MouseEvent.MOUSE_EXITED:        case MouseEvent.MOUSE_EXITED:
329          if (event.getSource() instanceof JMenuItem)          if (isRolloverEnabled())
           {  
             JMenuItem item = (JMenuItem) event.getSource();  
             ButtonModel model = item.getModel();  
             if (item.isRolloverEnabled())  
330                model.setRollover(false);                model.setRollover(false);
331            }  
332            // for JMenu last element on the path is its popupMenu.
333            // JMenu shouldn't me disarmed.
334            if (! (path[path.length - 1] instanceof JPopupMenu) && ! dragged)
335              setArmed(false);
336          break;          break;
337        case MouseEvent.MOUSE_PRESSED:        case MouseEvent.MOUSE_PRESSED:
         if (event.getSource() instanceof JMenuItem)  
           {  
338              if ((event.getModifiers() & InputEvent.BUTTON1_MASK) != 0)              if ((event.getModifiers() & InputEvent.BUTTON1_MASK) != 0)
339                {                {
340                  model.setArmed(true);                  model.setArmed(true);
341                  model.setPressed(true);                  model.setPressed(true);
342                }                }
           }  
343          break;          break;
344        case MouseEvent.MOUSE_RELEASED:        case MouseEvent.MOUSE_RELEASED:
345          break;          break;
346        case MouseEvent.MOUSE_MOVED:        case MouseEvent.MOUSE_MOVED:
347          break;          break;
348        case MouseEvent.MOUSE_DRAGGED:        case MouseEvent.MOUSE_DRAGGED:
         MenuDragMouseEvent e = new MenuDragMouseEvent((Component) event  
                                                       .getSource(),  
                                                       event.getID(),  
                                                       event.getWhen(),  
                                                       event.getModifiers(),  
                                                       event.getX(),  
                                                       event.getY(),  
                                                       event.getClickCount(),  
                                                       event.isPopupTrigger(),  
                                                       path, manager);  
         processMenuDragMouseEvent(e);  
349          break;          break;
350        }        }
351    }    }
352    
353    /**    /**
354     * DOCUMENT ME!     * Creates MenuDragMouseEvent.
355     *     *
356     * @param event DOCUMENT ME!     * @param event MouseEvent that occured while mouse was pressed.
357     * @param path DOCUMENT ME!     * @param path Path the the menu element where the dragging event was
358     * @param manager DOCUMENT ME!     *        originated
359       * @param manager MenuSelectionManager for the current menu hierarchy.
360       *
361       * @return new MenuDragMouseEvent
362       */
363      private MenuDragMouseEvent createMenuDragMouseEvent(MouseEvent event,
364                                                          MenuElement[] path,
365                                                          MenuSelectionManager manager)
366      {
367        return new MenuDragMouseEvent((Component) event.getSource(),
368                                      event.getID(), event.getWhen(),
369                                      event.getModifiers(), event.getX(),
370                                      event.getY(), event.getClickCount(),
371                                      event.isPopupTrigger(), path, manager);
372      }
373    
374      /**
375       * Process key events forwarded from MenuSelectionManager.
376       *
377       * @param event event forwarded from MenuSelectionManager
378       * @param path path to the menu element from which event was generated
379       * @param manager MenuSelectionManager for the current menu hierarchy
380     */     */
381    public void processKeyEvent(KeyEvent event, MenuElement[] path,    public void processKeyEvent(KeyEvent event, MenuElement[] path,
382                                MenuSelectionManager manager)                                MenuSelectionManager manager)
383    {    {
384      // TODO      // Need to implement.
385    }    }
386    
387    /**    /**
# Line 426  public class JMenuItem extends AbstractB Line 419  public class JMenuItem extends AbstractB
419     */     */
420    public void processMenuKeyEvent(MenuKeyEvent event)    public void processMenuKeyEvent(MenuKeyEvent event)
421    {    {
422      // TODO      // Need to implement.
423    }    }
424    
425    /**    /**
# Line 535  public class JMenuItem extends AbstractB Line 528  public class JMenuItem extends AbstractB
528    public void menuSelectionChanged(boolean changed)    public void menuSelectionChanged(boolean changed)
529    {    {
530      if (changed)      if (changed)
531          {
532        model.setArmed(true);        model.setArmed(true);
533    
534            if (this.getParent() instanceof JPopupMenu)
535              ((JPopupMenu) this.getParent()).setSelected(this);
536          }
537      else      else
538          {
539        model.setArmed(false);        model.setArmed(false);
540    
541            if (this.getParent() instanceof JPopupMenu)
542              ((JPopupMenu) this.getParent()).getSelectionModel().clearSelection();
543          }
544    }    }
545    
546    /**    /**
# Line 617  public class JMenuItem extends AbstractB Line 620  public class JMenuItem extends AbstractB
620      return "JMenuItem";      return "JMenuItem";
621    }    }
622    
   /**  
    * DOCUMENT ME!  
    *  
    * @return DOCUMENT ME!  
    */  
623    public AccessibleContext getAccessibleContext()    public AccessibleContext getAccessibleContext()
624    {    {
625      if (accessibleContext == null)      if (accessibleContext == null)

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26