home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 144 / DPCS0200.iso / Internet / Supanet / system / swing.jar / javax / swing / plaf / basic / BasicMenuUI$ChangeHandler.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-05  |  3.6 KB  |  135 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Window;
  6. import javax.swing.JComponent;
  7. import javax.swing.JMenu;
  8. import javax.swing.KeyStroke;
  9. import javax.swing.MenuElement;
  10. import javax.swing.event.ChangeEvent;
  11. import javax.swing.event.ChangeListener;
  12.  
  13. public class BasicMenuUI$ChangeHandler implements ChangeListener {
  14.    // $FF: synthetic field
  15.    private final BasicMenuUI this$0;
  16.    public JMenu menu;
  17.    // $FF: renamed from: ui javax.swing.plaf.basic.BasicMenuUI
  18.    public BasicMenuUI field_0;
  19.    public boolean isSelected;
  20.    public Component wasFocused;
  21.  
  22.    public BasicMenuUI$ChangeHandler(BasicMenuUI var1, JMenu var2, BasicMenuUI var3) {
  23.       this.this$0 = var1;
  24.       this.isSelected = false;
  25.       this.menu = var2;
  26.       this.field_0 = var3;
  27.       this.validateKeyboardActions(this.menu.isSelected());
  28.    }
  29.  
  30.    // $FF: synthetic method
  31.    static MenuElement access$0(BasicMenuUI$ChangeHandler var0, MenuElement[] var1, int var2) {
  32.       return var0.nextEnabledChild(var1, var2);
  33.    }
  34.  
  35.    // $FF: synthetic method
  36.    static MenuElement access$1(BasicMenuUI$ChangeHandler var0, MenuElement[] var1, int var2) {
  37.       return var0.previousEnabledChild(var1, var2);
  38.    }
  39.  
  40.    private Component findFocusedComponent(Component var1) {
  41.       for(Container var2 = var1.getParent(); var2 != null; var2 = ((Component)var2).getParent()) {
  42.          if (var2 instanceof Window) {
  43.             return ((Window)var2).getFocusOwner();
  44.          }
  45.       }
  46.  
  47.       return null;
  48.    }
  49.  
  50.    private MenuElement nextEnabledChild(MenuElement[] var1, int var2) {
  51.       int var3 = var2;
  52.  
  53.       for(int var4 = var1.length; var3 < var4; ++var3) {
  54.          if (var1[var3] != null) {
  55.             Component var5 = var1[var3].getComponent();
  56.             if (var5 != null && var5.isEnabled()) {
  57.                return var1[var3];
  58.             }
  59.          }
  60.       }
  61.  
  62.       return null;
  63.    }
  64.  
  65.    private MenuElement previousEnabledChild(MenuElement[] var1, int var2) {
  66.       for(int var3 = var2; var3 >= 0; --var3) {
  67.          if (var1[var3] != null) {
  68.             Component var4 = var1[var3].getComponent();
  69.             if (var4 != null && var4.isEnabled()) {
  70.                return var1[var3];
  71.             }
  72.          }
  73.       }
  74.  
  75.       return null;
  76.    }
  77.  
  78.    public void stateChanged(ChangeEvent var1) {
  79.       this.validateKeyboardActions(this.menu.isSelected());
  80.    }
  81.  
  82.    private void validateKeyboardActions(boolean var1) {
  83.       if (var1 != this.isSelected) {
  84.          this.isSelected = var1;
  85.          if (this.isSelected) {
  86.             boolean var2 = this.menu.isRequestFocusEnabled();
  87.             this.wasFocused = this.findFocusedComponent(this.menu);
  88.             if (!var2) {
  89.                this.menu.setRequestFocusEnabled(true);
  90.             }
  91.  
  92.             this.menu.requestFocus();
  93.             if (!var2) {
  94.                this.menu.setRequestFocusEnabled(false);
  95.             }
  96.  
  97.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.CancelAction(this), KeyStroke.getKeyStroke(27, 0, false), 2);
  98.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectNextItemAction(this), KeyStroke.getKeyStroke(40, 0, false), 2);
  99.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectPreviousItemAction(this), KeyStroke.getKeyStroke(38, 0, false), 2);
  100.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectParentItemAction(this), KeyStroke.getKeyStroke(37, 0, false), 2);
  101.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.SelectChildItemAction(this), KeyStroke.getKeyStroke(39, 0, false), 2);
  102.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.ReturnAction(this), KeyStroke.getKeyStroke(10, 0, false), 2);
  103.             this.menu.registerKeyboardAction(new BasicMenuUI.ChangeHandler.ReturnAction(this), KeyStroke.getKeyStroke(32, 0, false), 2);
  104.          } else {
  105.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(27, 0, false));
  106.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(40, 0, false));
  107.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(38, 0, false));
  108.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(37, 0, false));
  109.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(39, 0, false));
  110.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(10, 0, false));
  111.             this.menu.unregisterKeyboardAction(KeyStroke.getKeyStroke(32, 0, false));
  112.             if (this.wasFocused != null) {
  113.                if (this.wasFocused instanceof JComponent) {
  114.                   JComponent var4 = (JComponent)this.wasFocused;
  115.                   boolean var3 = var4.isRequestFocusEnabled();
  116.                   if (!var3) {
  117.                      var4.setRequestFocusEnabled(true);
  118.                   }
  119.  
  120.                   this.wasFocused.requestFocus();
  121.                   if (!var3) {
  122.                      var4.setRequestFocusEnabled(false);
  123.                   }
  124.                } else {
  125.                   this.wasFocused.requestFocus();
  126.                }
  127.  
  128.                this.wasFocused = null;
  129.             }
  130.          }
  131.       }
  132.  
  133.    }
  134. }
  135.