home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing;
-
- import com.sun.java.accessibility.Accessible;
- import com.sun.java.accessibility.AccessibleContext;
- import com.sun.java.accessibility.AccessibleState;
- import com.sun.java.swing.event.ChangeListener;
- import com.sun.java.swing.event.MenuEvent;
- import com.sun.java.swing.event.MenuListener;
- import com.sun.java.swing.plaf.MenuUI;
- import com.sun.java.swing.plaf.PopupMenuUI;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Point;
- import java.awt.event.InputEvent;
- import java.awt.event.KeyEvent;
- import java.awt.event.MouseEvent;
- import java.beans.PropertyChangeListener;
-
- public class JMenu extends JMenuItem implements Accessible, MenuElement {
- private JPopupMenu popupMenu;
- private ChangeListener menuChangeListener;
- private MenuEvent menuEvent;
- private int delay;
- protected WinListener popupListener;
- // $FF: synthetic field
- static Class class$com$sun$java$swing$event$MenuListener;
-
- public JMenu() {
- this("");
- }
-
- public JMenu(String var1) {
- ((JMenuItem)this).init(var1, (Icon)null);
- this.updateUI();
- }
-
- public JMenu(String var1, boolean var2) {
- this(var1);
- }
-
- public void setUI(MenuUI var1) {
- super.setUI(var1);
- }
-
- public void updateUI() {
- this.setUI((MenuUI)UIManager.getUI(this));
- if (this.popupMenu != null) {
- this.popupMenu.setUI((PopupMenuUI)UIManager.getUI(this.popupMenu));
- }
-
- }
-
- public String getUIClassID() {
- return "MenuUI";
- }
-
- public void setModel(ButtonModel var1) {
- ButtonModel var2 = ((AbstractButton)this).getModel();
- super.setModel(var1);
- if (var2 != null) {
- var2.removeChangeListener(this.menuChangeListener);
- this.menuChangeListener = null;
- }
-
- super.model = var1;
- if (var1 != null) {
- this.menuChangeListener = this.createMenuChangeListener();
- var1.addChangeListener(this.menuChangeListener);
- }
-
- }
-
- public boolean isSelected() {
- return ((AbstractButton)this).getModel().isSelected();
- }
-
- public void setSelected(boolean var1) {
- ButtonModel var2 = ((AbstractButton)this).getModel();
- boolean var3 = var2.isSelected();
- if (super.accessibleContext != null && var3 != var1) {
- if (var1) {
- super.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.SELECTED);
- } else {
- super.accessibleContext.firePropertyChange("AccessibleState", AccessibleState.SELECTED, (Object)null);
- }
- }
-
- if (var1 != var2.isSelected()) {
- ((AbstractButton)this).getModel().setSelected(var1);
- }
-
- }
-
- public boolean isPopupMenuVisible() {
- this.ensurePopupMenuCreated();
- return this.popupMenu.isVisible();
- }
-
- public void setPopupMenuVisible(boolean var1) {
- boolean var2 = this.isPopupMenuVisible();
- if (var1 != var2) {
- this.ensurePopupMenuCreated();
- int var3 = 0;
- int var4 = 0;
- if (var1 && ((Component)this).isShowing()) {
- Container var5 = ((Component)this).getParent();
- Dimension var6 = ((Component)this).getSize();
- if (var5 instanceof JPopupMenu) {
- var3 = var6.width;
- var4 = 0;
- } else {
- var3 = 0;
- var4 = var6.height;
- }
-
- this.popupMenu.show(this, var3, var4);
- return;
- }
-
- this.popupMenu.setVisible(false);
- }
-
- }
-
- public int getDelay() {
- return this.delay;
- }
-
- public void setDelay(int var1) {
- if (var1 < 0) {
- throw new IllegalArgumentException("Delay must be a positive integer");
- } else {
- this.delay = var1;
- }
- }
-
- private void ensurePopupMenuCreated() {
- if (this.popupMenu == null) {
- this.popupMenu = new JPopupMenu();
- this.popupMenu.setInvoker(this);
- this.popupListener = this.createWinListener(this.popupMenu);
- this.popupMenu.addPopupMenuListener(new 1(this, this));
- }
-
- }
-
- public void setMenuLocation(int var1, int var2) {
- this.popupMenu.setLocation(var1, var2);
- }
-
- public JMenuItem add(JMenuItem var1) {
- AccessibleContext var2 = var1.getAccessibleContext();
- var2.setAccessibleParent(this);
- this.ensurePopupMenuCreated();
- return this.popupMenu.add(var1);
- }
-
- public Component add(Component var1) {
- AccessibleContext var2 = ((JComponent)var1).getAccessibleContext();
- var2.setAccessibleParent(this);
- this.ensurePopupMenuCreated();
- this.popupMenu.add(var1);
- return var1;
- }
-
- public void add(String var1) {
- this.add(new JMenuItem(var1));
- }
-
- public JMenuItem add(Action var1) {
- JMenuItem var2 = new JMenuItem((String)var1.getValue("Name"), (Icon)var1.getValue("SmallIcon"));
- ((AbstractButton)var2).setHorizontalTextPosition(4);
- ((AbstractButton)var2).setVerticalTextPosition(0);
- var2.setEnabled(var1.isEnabled());
- ((AbstractButton)var2).addActionListener(var1);
- this.add(var2);
- PropertyChangeListener var3 = this.createActionChangeListener(var2);
- var1.addPropertyChangeListener(var3);
- return var2;
- }
-
- protected PropertyChangeListener createActionChangeListener(JMenuItem var1) {
- return new ActionChangedListener(this, var1);
- }
-
- public void addSeparator() {
- this.ensurePopupMenuCreated();
- this.popupMenu.addSeparator();
- }
-
- public void insert(String var1, int var2) {
- if (var2 < 0) {
- throw new IllegalArgumentException("index less than zero.");
- } else {
- this.ensurePopupMenuCreated();
- this.popupMenu.insert(new JMenuItem(var1), var2);
- }
- }
-
- public JMenuItem insert(JMenuItem var1, int var2) {
- if (var2 < 0) {
- throw new IllegalArgumentException("index less than zero.");
- } else {
- AccessibleContext var3 = var1.getAccessibleContext();
- var3.setAccessibleParent(this);
- this.ensurePopupMenuCreated();
- this.popupMenu.insert(var1, var2);
- return var1;
- }
- }
-
- public JMenuItem insert(Action var1, int var2) {
- if (var2 < 0) {
- throw new IllegalArgumentException("index less than zero.");
- } else {
- this.ensurePopupMenuCreated();
- JMenuItem var3 = new JMenuItem((String)var1.getValue("Name"));
- ((AbstractButton)var3).addActionListener(var1);
- this.popupMenu.insert(var3, var2);
- var1.addPropertyChangeListener(new ActionChangedListener(this, var3));
- return var3;
- }
- }
-
- public void insertSeparator(int var1) {
- if (var1 < 0) {
- throw new IllegalArgumentException("index less than zero.");
- } else {
- this.ensurePopupMenuCreated();
- this.popupMenu.insert(new JSeparator(), var1);
- }
- }
-
- public JMenuItem getItem(int var1) {
- if (var1 < 0) {
- throw new IllegalArgumentException("index less than zero.");
- } else {
- Component var2 = this.getMenuComponent(var1);
- if (var2 instanceof JMenuItem) {
- JMenuItem var3 = (JMenuItem)var2;
- return var3;
- } else {
- return this;
- }
- }
- }
-
- public int getItemCount() {
- return this.getMenuComponentCount();
- }
-
- public boolean isTearOff() {
- throw new Error("boolean isTearOff() {} not yet implemented");
- }
-
- public void remove(JMenuItem var1) {
- this.popupMenu.remove(var1);
- }
-
- public void remove(int var1) {
- if (var1 < 0) {
- throw new IllegalArgumentException("index less than zero.");
- } else {
- this.popupMenu.remove(var1);
- }
- }
-
- public void removeAll() {
- int var1 = this.getMenuComponentCount();
-
- for(int var2 = 0; var2 < var1; ++var2) {
- this.remove(0);
- }
-
- }
-
- public int getMenuComponentCount() {
- int var1 = 0;
- if (this.popupMenu != null) {
- var1 = this.popupMenu.getComponentCount();
- }
-
- return var1;
- }
-
- public Component getMenuComponent(int var1) {
- return this.popupMenu != null ? this.popupMenu.getComponent(var1) : null;
- }
-
- public Component[] getMenuComponents() {
- return this.popupMenu != null ? this.popupMenu.getComponents() : null;
- }
-
- public String paramString() {
- String var1 = ", JMenu";
- return super.paramString() + var1;
- }
-
- public boolean isTopLevelMenu() {
- return ((Component)this).getParent() instanceof JMenuBar;
- }
-
- public boolean isMenuComponent(Component var1) {
- if (var1 == this) {
- return true;
- } else {
- if (var1 instanceof JPopupMenu) {
- JPopupMenu var2 = (JPopupMenu)var1;
- if (var2 == this.getPopupMenu()) {
- return true;
- }
- }
-
- int var7 = this.getMenuComponentCount();
- Component[] var3 = this.getMenuComponents();
-
- for(int var4 = 0; var4 < var7; ++var4) {
- Component var5 = var3[var4];
- if (var5 == var1) {
- return true;
- }
-
- if (var5 instanceof JMenu) {
- JMenu var6 = (JMenu)var5;
- if (var6.isMenuComponent(var1)) {
- return true;
- }
- }
- }
-
- return false;
- }
- }
-
- private Point translateToPopupMenu(Point var1) {
- return this.translateToPopupMenu(var1.x, var1.y);
- }
-
- private Point translateToPopupMenu(int var1, int var2) {
- int var3;
- int var4;
- if (((Component)this).getParent() instanceof JPopupMenu) {
- var3 = var1 - ((Component)this).getSize().width;
- var4 = var2;
- } else {
- var3 = var1;
- var4 = var2 - ((Component)this).getSize().height;
- }
-
- return new Point(var3, var4);
- }
-
- public JPopupMenu getPopupMenu() {
- this.ensurePopupMenuCreated();
- return this.popupMenu;
- }
-
- public void addMenuListener(MenuListener var1) {
- super.listenerList.add(class$com$sun$java$swing$event$MenuListener != null ? class$com$sun$java$swing$event$MenuListener : (class$com$sun$java$swing$event$MenuListener = JComponent.class$("com.sun.java.swing.event.MenuListener")), var1);
- }
-
- public void removeMenuListener(MenuListener var1) {
- super.listenerList.remove(class$com$sun$java$swing$event$MenuListener != null ? class$com$sun$java$swing$event$MenuListener : (class$com$sun$java$swing$event$MenuListener = JComponent.class$("com.sun.java.swing.event.MenuListener")), var1);
- }
-
- protected void fireMenuSelected() {
- Object[] var1 = super.listenerList.getListenerList();
-
- for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
- if (var1[var2] == (class$com$sun$java$swing$event$MenuListener != null ? class$com$sun$java$swing$event$MenuListener : (class$com$sun$java$swing$event$MenuListener = JComponent.class$("com.sun.java.swing.event.MenuListener")))) {
- if (var1[var2 + 1] == null) {
- throw new Error(((AbstractButton)this).getText() + " has a NULL Listener!! " + var2);
- }
-
- if (this.menuEvent == null) {
- this.menuEvent = new MenuEvent(this);
- }
-
- ((MenuListener)var1[var2 + 1]).menuSelected(this.menuEvent);
- }
- }
-
- }
-
- protected void fireMenuDeselected() {
- Object[] var1 = super.listenerList.getListenerList();
-
- for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
- if (var1[var2] == (class$com$sun$java$swing$event$MenuListener != null ? class$com$sun$java$swing$event$MenuListener : (class$com$sun$java$swing$event$MenuListener = JComponent.class$("com.sun.java.swing.event.MenuListener")))) {
- if (var1[var2 + 1] == null) {
- System.out.println(((AbstractButton)this).getText() + " has a NULL Listener!! " + var2);
- } else {
- if (this.menuEvent == null) {
- this.menuEvent = new MenuEvent(this);
- }
-
- ((MenuListener)var1[var2 + 1]).menuDeselected(this.menuEvent);
- }
- }
- }
-
- }
-
- private ChangeListener createMenuChangeListener() {
- return new MenuChangeListener(this);
- }
-
- protected WinListener createWinListener(JPopupMenu var1) {
- return new WinListener(this, var1);
- }
-
- public void processMouseEvent(MouseEvent var1, MenuElement[] var2, MenuSelectionManager var3) {
- ((MenuUI)((AbstractButton)this).getUI()).processMouseEvent(this, var1, var2, var3);
- }
-
- public void processKeyEvent(KeyEvent var1, MenuElement[] var2, MenuSelectionManager var3) {
- ((MenuUI)((AbstractButton)this).getUI()).processKeyEvent(this, var1, var2, var3);
- }
-
- public void menuSelectionChanged(boolean var1) {
- this.setSelected(var1);
- }
-
- public MenuElement[] getSubElements() {
- if (this.popupMenu == null) {
- return new MenuElement[0];
- } else {
- MenuElement[] var1 = new MenuElement[]{this.popupMenu};
- return var1;
- }
- }
-
- public Component getComponent() {
- return this;
- }
-
- public void setAccelerator(KeyStroke var1) {
- throw new Error("setAccelerator() is not defined for JMenu. Use setMnemonic() instead.");
- }
-
- protected void processKeyEvent(KeyEvent var1) {
- MenuSelectionManager.defaultManager().processKeyEvent(var1);
- if (!((InputEvent)var1).isConsumed()) {
- super.processKeyEvent(var1);
- }
- }
-
- public AccessibleContext getAccessibleContext() {
- if (super.accessibleContext == null) {
- super.accessibleContext = new AccessibleJMenu(this);
- }
-
- return super.accessibleContext;
- }
- }
-