home *** CD-ROM | disk | FTP | other *** search
/ CD/PC Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / 1HGRRNA (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  2.1 KB  |  51 lines

  1. package com.sun.java.swing.plaf.basic;
  2.  
  3. import com.sun.java.swing.AbstractAction;
  4. import com.sun.java.swing.JMenu;
  5. import com.sun.java.swing.JMenuBar;
  6. import com.sun.java.swing.MenuElement;
  7. import com.sun.java.swing.MenuSelectionManager;
  8. import java.awt.Container;
  9. import java.awt.event.ActionEvent;
  10.  
  11. class BasicMenuUI$PostAction extends AbstractAction {
  12.    JMenu menu;
  13.    boolean force = false;
  14.  
  15.    BasicMenuUI$PostAction(JMenu menu, boolean shouldForce) {
  16.       super("postAction");
  17.       this.menu = menu;
  18.       this.force = shouldForce;
  19.    }
  20.  
  21.    public void actionPerformed(ActionEvent e) {
  22.       MenuSelectionManager defaultManager = MenuSelectionManager.defaultManager();
  23.       if (this.force) {
  24.          Container cnt = this.menu.getParent();
  25.          if (cnt != null && cnt instanceof JMenuBar) {
  26.             MenuElement[] subElements = this.menu.getPopupMenu().getSubElements();
  27.             if (subElements.length > 0) {
  28.                MenuElement[] me = new MenuElement[]{(MenuElement)cnt, (MenuElement)this.menu, (MenuElement)this.menu.getPopupMenu(), subElements[0]};
  29.                defaultManager.setSelectedPath(me);
  30.             } else {
  31.                MenuElement[] newPath = new MenuElement[]{(MenuElement)cnt, this.menu};
  32.                defaultManager.setSelectedPath(newPath);
  33.             }
  34.          }
  35.       } else {
  36.          MenuElement[] path = defaultManager.getSelectedPath();
  37.          if (path.length > 0 && path[path.length - 1] == this.menu) {
  38.             MenuElement[] newPath = new MenuElement[path.length + 1];
  39.             System.arraycopy(path, 0, newPath, 0, path.length);
  40.             newPath[path.length] = this.menu.getPopupMenu();
  41.             MenuSelectionManager.defaultManager().setSelectedPath(newPath);
  42.          }
  43.       }
  44.  
  45.    }
  46.  
  47.    public boolean isEnabled() {
  48.       return this.menu.getModel().isEnabled();
  49.    }
  50. }
  51.