home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / AbstractButton.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  12.1 KB  |  539 lines

  1. package com.sun.java.swing;
  2.  
  3. import com.sun.java.accessibility.AccessibleState;
  4. import com.sun.java.swing.event.ChangeEvent;
  5. import com.sun.java.swing.event.ChangeListener;
  6. import com.sun.java.swing.plaf.ButtonUI;
  7. import java.awt.Component;
  8. import java.awt.Container;
  9. import java.awt.Dimension;
  10. import java.awt.Graphics;
  11. import java.awt.Insets;
  12. import java.awt.ItemSelectable;
  13. import java.awt.Rectangle;
  14. import java.awt.event.ActionEvent;
  15. import java.awt.event.ActionListener;
  16. import java.awt.event.ItemEvent;
  17. import java.awt.event.ItemListener;
  18.  
  19. public abstract class AbstractButton extends JComponent implements ItemSelectable, SwingConstants {
  20.    protected ButtonModel model;
  21.    private String text = "";
  22.    private Insets margin;
  23.    private Icon defaultIcon;
  24.    private Icon pressedIcon;
  25.    private Icon disabledIcon;
  26.    private Icon selectedIcon;
  27.    private Icon disabledSelectedIcon;
  28.    private Icon rolloverIcon;
  29.    private Icon rolloverSelectedIcon;
  30.    private boolean paintBorder = true;
  31.    private boolean paintFocus = true;
  32.    private boolean rolloverEnabled = false;
  33.    private int verticalAlignment = 0;
  34.    private int horizontalAlignment = 0;
  35.    private int verticalTextPosition = 0;
  36.    private int horizontalTextPosition = 4;
  37.    protected ChangeListener changeListener;
  38.    protected ActionListener actionListener;
  39.    protected ItemListener itemListener;
  40.    protected transient ChangeEvent changeEvent;
  41.    // $FF: synthetic field
  42.    static Class class$com$sun$java$swing$event$ChangeListener;
  43.    // $FF: synthetic field
  44.    static Class class$java$awt$event$ActionListener;
  45.    // $FF: synthetic field
  46.    static Class class$java$awt$event$ItemListener;
  47.  
  48.    public String getText() {
  49.       return this.text;
  50.    }
  51.  
  52.    public void setText(String var1) {
  53.       this.text = var1;
  54.       ((JComponent)this).firePropertyChange("text", var1, var1);
  55.       if (super.accessibleContext != null) {
  56.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var1, var1);
  57.       }
  58.  
  59.       ((Container)this).invalidate();
  60.       ((Component)this).repaint();
  61.    }
  62.  
  63.    public boolean isSelected() {
  64.       return this.model.isSelected();
  65.    }
  66.  
  67.    public void setSelected(boolean var1) {
  68.       boolean var2 = this.isSelected();
  69.       if (super.accessibleContext != null && var2 != var1) {
  70.          if (var1) {
  71.             super.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.SELECTED);
  72.          } else {
  73.             super.accessibleContext.firePropertyChange("AccessibleState", AccessibleState.SELECTED, (Object)null);
  74.          }
  75.       }
  76.  
  77.       this.model.setSelected(var1);
  78.    }
  79.  
  80.    public void doClick() {
  81.       this.doClick(68);
  82.    }
  83.  
  84.    public void doClick(int var1) {
  85.       Dimension var2 = ((Component)this).getSize();
  86.       this.model.setArmed(true);
  87.       this.model.setPressed(true);
  88.       ((JComponent)this).paintImmediately(new Rectangle(0, 0, var2.width, var2.height));
  89.  
  90.       try {
  91.          Thread.currentThread();
  92.          Thread.sleep((long)var1);
  93.       } catch (InterruptedException var3) {
  94.       }
  95.  
  96.       this.model.setPressed(false);
  97.       this.model.setArmed(false);
  98.    }
  99.  
  100.    public void setMargin(Insets var1) {
  101.       Insets var2 = this.margin;
  102.       this.margin = var1;
  103.       ((JComponent)this).firePropertyChange("margin", var2, var1);
  104.       ((Container)this).invalidate();
  105.    }
  106.  
  107.    public Insets getMargin() {
  108.       return this.margin == null ? ((ButtonUI)super.ui).getDefaultMargin(this) : this.margin;
  109.    }
  110.  
  111.    public Icon getIcon() {
  112.       return this.defaultIcon;
  113.    }
  114.  
  115.    public void setIcon(Icon var1) {
  116.       Icon var2 = this.defaultIcon;
  117.       this.defaultIcon = var1;
  118.       ((JComponent)this).firePropertyChange("icon", var2, var1);
  119.       if (super.accessibleContext != null) {
  120.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var2, var1);
  121.       }
  122.  
  123.       ((Container)this).invalidate();
  124.       ((Component)this).repaint();
  125.    }
  126.  
  127.    public Icon getPressedIcon() {
  128.       return this.pressedIcon;
  129.    }
  130.  
  131.    public void setPressedIcon(Icon var1) {
  132.       Icon var2 = this.pressedIcon;
  133.       this.pressedIcon = var1;
  134.       ((JComponent)this).firePropertyChange("pressedIcon", var2, var1);
  135.       if (super.accessibleContext != null) {
  136.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var2, this.defaultIcon);
  137.       }
  138.  
  139.       ((Container)this).invalidate();
  140.       ((Component)this).repaint();
  141.    }
  142.  
  143.    public Icon getSelectedIcon() {
  144.       return this.selectedIcon;
  145.    }
  146.  
  147.    public void setSelectedIcon(Icon var1) {
  148.       Icon var2 = this.selectedIcon;
  149.       this.selectedIcon = var1;
  150.       ((JComponent)this).firePropertyChange("selectedIcon", var2, var1);
  151.       if (super.accessibleContext != null) {
  152.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var2, var1);
  153.       }
  154.  
  155.       ((Container)this).invalidate();
  156.       ((Component)this).repaint();
  157.    }
  158.  
  159.    public Icon getRolloverIcon() {
  160.       return this.rolloverIcon;
  161.    }
  162.  
  163.    public void setRolloverIcon(Icon var1) {
  164.       Icon var2 = this.rolloverIcon;
  165.       this.rolloverIcon = var1;
  166.       ((JComponent)this).firePropertyChange("rolloverIcon", var2, var1);
  167.       if (super.accessibleContext != null) {
  168.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var2, var1);
  169.       }
  170.  
  171.       this.setRolloverEnabled(true);
  172.       ((Container)this).invalidate();
  173.       ((Component)this).repaint();
  174.    }
  175.  
  176.    public Icon getRolloverSelectedIcon() {
  177.       return this.rolloverSelectedIcon;
  178.    }
  179.  
  180.    public void setRolloverSelectedIcon(Icon var1) {
  181.       Icon var2 = this.rolloverSelectedIcon;
  182.       this.rolloverSelectedIcon = var1;
  183.       ((JComponent)this).firePropertyChange("rolloverSelectedIcon", var2, var1);
  184.       if (super.accessibleContext != null) {
  185.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var2, var1);
  186.       }
  187.  
  188.       ((Container)this).invalidate();
  189.       ((Component)this).repaint();
  190.    }
  191.  
  192.    public Icon getDisabledIcon() {
  193.       if (this.disabledIcon == null && this.defaultIcon != null && this.defaultIcon instanceof ImageIcon) {
  194.          this.disabledIcon = new ImageIcon(GrayFilter.createDisabledImage(((ImageIcon)this.defaultIcon).getImage()));
  195.       }
  196.  
  197.       return this.disabledIcon;
  198.    }
  199.  
  200.    public void setDisabledIcon(Icon var1) {
  201.       Icon var2 = this.disabledIcon;
  202.       this.disabledIcon = var1;
  203.       ((JComponent)this).firePropertyChange("disabledIcon", var2, var1);
  204.       if (super.accessibleContext != null) {
  205.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var2, var1);
  206.       }
  207.  
  208.       ((Container)this).invalidate();
  209.       ((Component)this).repaint();
  210.    }
  211.  
  212.    public Icon getDisabledSelectedIcon() {
  213.       if (this.disabledSelectedIcon == null) {
  214.          if (this.selectedIcon == null || !(this.selectedIcon instanceof ImageIcon)) {
  215.             return this.disabledIcon;
  216.          }
  217.  
  218.          this.disabledSelectedIcon = new ImageIcon(GrayFilter.createDisabledImage(((ImageIcon)this.selectedIcon).getImage()));
  219.       }
  220.  
  221.       return this.disabledSelectedIcon;
  222.    }
  223.  
  224.    public void setDisabledSelectedIcon(Icon var1) {
  225.       Icon var2 = this.disabledSelectedIcon;
  226.       this.disabledSelectedIcon = var1;
  227.       ((JComponent)this).firePropertyChange("disabledSelectedIcon", var2, var1);
  228.       if (super.accessibleContext != null) {
  229.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var2, var1);
  230.       }
  231.  
  232.       ((Container)this).invalidate();
  233.       ((Component)this).repaint();
  234.    }
  235.  
  236.    public int getVerticalAlignment() {
  237.       return this.verticalAlignment;
  238.    }
  239.  
  240.    public void setVerticalAlignment(int var1) {
  241.       if (var1 != this.verticalAlignment) {
  242.          int var2 = this.verticalAlignment;
  243.          this.verticalAlignment = this.checkVerticalKey(var1, "verticalAlignment");
  244.          ((JComponent)this).firePropertyChange("verticalAlignment", var2, this.verticalAlignment);
  245.          ((Container)this).invalidate();
  246.          ((Component)this).repaint();
  247.       }
  248.    }
  249.  
  250.    public int getHorizontalAlignment() {
  251.       return this.horizontalAlignment;
  252.    }
  253.  
  254.    public void setHorizontalAlignment(int var1) {
  255.       if (var1 != this.horizontalAlignment) {
  256.          int var2 = this.horizontalAlignment;
  257.          this.horizontalAlignment = this.checkHorizontalKey(var1, "horizontalAlignment");
  258.          ((JComponent)this).firePropertyChange("horizontalAlignment", var2, this.horizontalAlignment);
  259.          ((Container)this).invalidate();
  260.          ((Component)this).repaint();
  261.       }
  262.    }
  263.  
  264.    public int getVerticalTextPosition() {
  265.       return this.verticalTextPosition;
  266.    }
  267.  
  268.    public void setVerticalTextPosition(int var1) {
  269.       if (var1 != this.verticalTextPosition) {
  270.          int var2 = this.verticalTextPosition;
  271.          this.verticalTextPosition = this.checkVerticalKey(var1, "verticalTextPosition");
  272.          ((JComponent)this).firePropertyChange("verticalTextPosition", var2, this.verticalTextPosition);
  273.          ((Container)this).invalidate();
  274.          ((Component)this).repaint();
  275.       }
  276.    }
  277.  
  278.    public int getHorizontalTextPosition() {
  279.       return this.horizontalTextPosition;
  280.    }
  281.  
  282.    public void setHorizontalTextPosition(int var1) {
  283.       if (var1 != this.horizontalTextPosition) {
  284.          int var2 = this.horizontalTextPosition;
  285.          this.horizontalTextPosition = this.checkHorizontalKey(var1, "horizontalTextPosition");
  286.          ((JComponent)this).firePropertyChange("horizontalTextPosition", var2, this.horizontalTextPosition);
  287.          ((Container)this).invalidate();
  288.          ((Component)this).repaint();
  289.       }
  290.    }
  291.  
  292.    protected int checkHorizontalKey(int var1, String var2) {
  293.       if (var1 != 2 && var1 != 0 && var1 != 4) {
  294.          throw new IllegalArgumentException(var2);
  295.       } else {
  296.          return var1;
  297.       }
  298.    }
  299.  
  300.    protected int checkVerticalKey(int var1, String var2) {
  301.       if (var1 != 1 && var1 != 0 && var1 != 3) {
  302.          throw new IllegalArgumentException(var2);
  303.       } else {
  304.          return var1;
  305.       }
  306.    }
  307.  
  308.    public void setActionCommand(String var1) {
  309.       this.getModel().setActionCommand(var1);
  310.    }
  311.  
  312.    public String getActionCommand() {
  313.       String var1 = this.getModel().getActionCommand();
  314.       if (var1 == null) {
  315.          var1 = this.getText();
  316.       }
  317.  
  318.       return var1;
  319.    }
  320.  
  321.    public boolean isBorderPainted() {
  322.       return this.paintBorder;
  323.    }
  324.  
  325.    public void setBorderPainted(boolean var1) {
  326.       boolean var2 = this.paintBorder;
  327.       this.paintBorder = var1;
  328.       ((JComponent)this).firePropertyChange("borderPainted", var2, this.paintBorder);
  329.       ((Container)this).invalidate();
  330.       ((Component)this).repaint();
  331.    }
  332.  
  333.    protected void paintBorder(Graphics var1) {
  334.       if (this.isBorderPainted()) {
  335.          super.paintBorder(var1);
  336.       }
  337.  
  338.    }
  339.  
  340.    public boolean isFocusPainted() {
  341.       return this.paintFocus;
  342.    }
  343.  
  344.    public void setFocusPainted(boolean var1) {
  345.       boolean var2 = this.paintFocus;
  346.       this.paintFocus = var1;
  347.       ((JComponent)this).firePropertyChange("focusPainted", var2, this.paintFocus);
  348.       ((Container)this).invalidate();
  349.       ((Component)this).repaint();
  350.    }
  351.  
  352.    public boolean isRolloverEnabled() {
  353.       return this.rolloverEnabled;
  354.    }
  355.  
  356.    public void setRolloverEnabled(boolean var1) {
  357.       boolean var2 = this.rolloverEnabled;
  358.       this.rolloverEnabled = var1;
  359.       ((JComponent)this).firePropertyChange("rolloverEnabled", var2, this.rolloverEnabled);
  360.       ((Container)this).invalidate();
  361.       ((Component)this).repaint();
  362.    }
  363.  
  364.    public int getMnemonic() {
  365.       return this.model.getMnemonic();
  366.    }
  367.  
  368.    public void setMnemonic(int var1) {
  369.       this.model.setMnemonic(var1);
  370.       ((Container)this).invalidate();
  371.       ((Component)this).repaint();
  372.    }
  373.  
  374.    public void setMnemonic(char var1) {
  375.       int var2 = var1;
  376.       if (var1 >= 'a' && var1 <= 'z') {
  377.          var2 = var1 - 32;
  378.       }
  379.  
  380.       this.setMnemonic(var2);
  381.    }
  382.  
  383.    public ButtonModel getModel() {
  384.       return this.model;
  385.    }
  386.  
  387.    public void setModel(ButtonModel var1) {
  388.       ButtonModel var2 = this.getModel();
  389.       if (var2 != null) {
  390.          var2.removeChangeListener(this.changeListener);
  391.          var2.removeActionListener(this.actionListener);
  392.          this.changeListener = null;
  393.          this.actionListener = null;
  394.       }
  395.  
  396.       this.model = var1;
  397.       if (var1 != null) {
  398.          this.changeListener = this.createChangeListener();
  399.          this.actionListener = this.createActionListener();
  400.          this.itemListener = this.createItemListener();
  401.          var1.addChangeListener(this.changeListener);
  402.          var1.addActionListener(this.actionListener);
  403.          var1.addItemListener(this.itemListener);
  404.       }
  405.  
  406.       ((JComponent)this).firePropertyChange("model", var2, var1);
  407.       ((Container)this).invalidate();
  408.       ((Component)this).repaint();
  409.    }
  410.  
  411.    public ButtonUI getUI() {
  412.       return (ButtonUI)super.ui;
  413.    }
  414.  
  415.    public void setUI(ButtonUI var1) {
  416.       super.setUI(var1);
  417.    }
  418.  
  419.    public void updateUI() {
  420.    }
  421.  
  422.    public void addChangeListener(ChangeListener var1) {
  423.       super.listenerList.add(class$com$sun$java$swing$event$ChangeListener != null ? class$com$sun$java$swing$event$ChangeListener : (class$com$sun$java$swing$event$ChangeListener = JComponent.class$("com.sun.java.swing.event.ChangeListener")), var1);
  424.    }
  425.  
  426.    public void removeChangeListener(ChangeListener var1) {
  427.       super.listenerList.remove(class$com$sun$java$swing$event$ChangeListener != null ? class$com$sun$java$swing$event$ChangeListener : (class$com$sun$java$swing$event$ChangeListener = JComponent.class$("com.sun.java.swing.event.ChangeListener")), var1);
  428.    }
  429.  
  430.    protected void fireStateChanged() {
  431.       Object[] var1 = super.listenerList.getListenerList();
  432.  
  433.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  434.          if (var1[var2] == (class$com$sun$java$swing$event$ChangeListener != null ? class$com$sun$java$swing$event$ChangeListener : (class$com$sun$java$swing$event$ChangeListener = JComponent.class$("com.sun.java.swing.event.ChangeListener")))) {
  435.             if (this.changeEvent == null) {
  436.                this.changeEvent = new ChangeEvent(this);
  437.             }
  438.  
  439.             ((ChangeListener)var1[var2 + 1]).stateChanged(this.changeEvent);
  440.          }
  441.       }
  442.  
  443.    }
  444.  
  445.    public void addActionListener(ActionListener var1) {
  446.       super.listenerList.add(class$java$awt$event$ActionListener != null ? class$java$awt$event$ActionListener : (class$java$awt$event$ActionListener = JComponent.class$("java.awt.event.ActionListener")), var1);
  447.    }
  448.  
  449.    public void removeActionListener(ActionListener var1) {
  450.       super.listenerList.remove(class$java$awt$event$ActionListener != null ? class$java$awt$event$ActionListener : (class$java$awt$event$ActionListener = JComponent.class$("java.awt.event.ActionListener")), var1);
  451.    }
  452.  
  453.    protected ChangeListener createChangeListener() {
  454.       return new ButtonChangeListener(this);
  455.    }
  456.  
  457.    protected void fireActionPerformed(ActionEvent var1) {
  458.       Object[] var2 = super.listenerList.getListenerList();
  459.       ActionEvent var3 = null;
  460.  
  461.       for(int var4 = var2.length - 2; var4 >= 0; var4 -= 2) {
  462.          if (var2[var4] == (class$java$awt$event$ActionListener != null ? class$java$awt$event$ActionListener : (class$java$awt$event$ActionListener = JComponent.class$("java.awt.event.ActionListener")))) {
  463.             if (var3 == null) {
  464.                var3 = new ActionEvent(this, 1001, this.getActionCommand());
  465.             }
  466.  
  467.             ((ActionListener)var2[var4 + 1]).actionPerformed(var3);
  468.          }
  469.       }
  470.  
  471.    }
  472.  
  473.    protected void fireItemStateChanged(ItemEvent var1) {
  474.       Object[] var2 = super.listenerList.getListenerList();
  475.       ItemEvent var3 = null;
  476.  
  477.       for(int var4 = var2.length - 2; var4 >= 0; var4 -= 2) {
  478.          if (var2[var4] == (class$java$awt$event$ItemListener != null ? class$java$awt$event$ItemListener : (class$java$awt$event$ItemListener = JComponent.class$("java.awt.event.ItemListener")))) {
  479.             if (var3 == null) {
  480.                var3 = new ItemEvent(this, 701, this, var1.getStateChange());
  481.             }
  482.  
  483.             ((ItemListener)var2[var4 + 1]).itemStateChanged(var3);
  484.          }
  485.       }
  486.  
  487.    }
  488.  
  489.    protected ActionListener createActionListener() {
  490.       return new ForwardActionEvents(this);
  491.    }
  492.  
  493.    protected ItemListener createItemListener() {
  494.       return new ForwardItemEvents(this);
  495.    }
  496.  
  497.    public void setEnabled(boolean var1) {
  498.       super.setEnabled(var1);
  499.       this.model.setEnabled(var1);
  500.    }
  501.  
  502.    /** @deprecated */
  503.    public String getLabel() {
  504.       return this.getText();
  505.    }
  506.  
  507.    /** @deprecated */
  508.    public void setLabel(String var1) {
  509.       this.setText(var1);
  510.    }
  511.  
  512.    public void addItemListener(ItemListener var1) {
  513.       super.listenerList.add(class$java$awt$event$ItemListener != null ? class$java$awt$event$ItemListener : (class$java$awt$event$ItemListener = JComponent.class$("java.awt.event.ItemListener")), var1);
  514.    }
  515.  
  516.    public void removeItemListener(ItemListener var1) {
  517.       super.listenerList.remove(class$java$awt$event$ItemListener != null ? class$java$awt$event$ItemListener : (class$java$awt$event$ItemListener = JComponent.class$("java.awt.event.ItemListener")), var1);
  518.    }
  519.  
  520.    public Object[] getSelectedObjects() {
  521.       return null;
  522.    }
  523.  
  524.    protected void init(String var1, Icon var2) {
  525.       ((Container)this).setLayout(new OverlayLayout(this));
  526.       if (var1 != null) {
  527.          this.setText(var1);
  528.       }
  529.  
  530.       if (var2 != null) {
  531.          this.setIcon(var2);
  532.       }
  533.  
  534.       this.updateUI();
  535.       ((Component)this).addFocusListener(new 1(this));
  536.       ((JComponent)this).setAlignmentX(0.0F);
  537.    }
  538. }
  539.