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

  1. package javax.swing.plaf.metal;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Graphics;
  5. import java.awt.Insets;
  6. import javax.swing.AbstractButton;
  7. import javax.swing.CellRendererPane;
  8. import javax.swing.Icon;
  9. import javax.swing.JButton;
  10. import javax.swing.JComboBox;
  11. import javax.swing.JComponent;
  12. import javax.swing.JList;
  13. import javax.swing.ListCellRenderer;
  14. import javax.swing.UIManager;
  15.  
  16. public class MetalComboBoxButton extends JButton {
  17.    protected JComboBox comboBox;
  18.    protected JList listBox;
  19.    protected CellRendererPane rendererPane;
  20.    protected Icon comboIcon;
  21.    protected boolean iconOnly;
  22.  
  23.    MetalComboBoxButton() {
  24.       super("");
  25.       this.iconOnly = false;
  26.       1 var1 = new 1();
  27.       ((AbstractButton)this).setModel(var1);
  28.    }
  29.  
  30.    public MetalComboBoxButton(JComboBox var1, Icon var2, CellRendererPane var3, JList var4) {
  31.       this();
  32.       this.comboBox = var1;
  33.       this.comboIcon = var2;
  34.       this.rendererPane = var3;
  35.       this.listBox = var4;
  36.       ((AbstractButton)this).setEnabled(this.comboBox.isEnabled());
  37.       ((JComponent)this).setRequestFocusEnabled(this.comboBox.isEnabled());
  38.    }
  39.  
  40.    public MetalComboBoxButton(JComboBox var1, Icon var2, boolean var3, CellRendererPane var4, JList var5) {
  41.       this(var1, var2, var4, var5);
  42.       this.iconOnly = var3;
  43.    }
  44.  
  45.    public final JComboBox getComboBox() {
  46.       return this.comboBox;
  47.    }
  48.  
  49.    public final Icon getComboIcon() {
  50.       return this.comboIcon;
  51.    }
  52.  
  53.    public boolean isFocusTraversable() {
  54.       return !this.comboBox.isEditable() && this.comboBox.isEnabled();
  55.    }
  56.  
  57.    public final boolean isIconOnly() {
  58.       return this.iconOnly;
  59.    }
  60.  
  61.    public void paintComponent(Graphics var1) {
  62.       super.paintComponent(var1);
  63.       Insets var2 = ((JComponent)this).getInsets();
  64.       int var3 = ((JComponent)this).getWidth() - (var2.left + var2.right);
  65.       int var4 = ((JComponent)this).getHeight() - (var2.top + var2.bottom);
  66.       if (var4 > 0 && var3 > 0) {
  67.          int var5 = var2.left;
  68.          int var6 = var2.top;
  69.          int var7 = var5 + (var3 - 1);
  70.          int var8 = var6 + (var4 - 1);
  71.          int var9 = 0;
  72.          if (this.comboIcon != null) {
  73.             var9 = this.comboIcon.getIconWidth();
  74.             int var11 = this.comboIcon.getIconHeight();
  75.             int var12 = 0;
  76.             int var10;
  77.             if (this.iconOnly) {
  78.                var10 = ((JComponent)this).getWidth() / 2 - var9 / 2;
  79.                var12 = ((JComponent)this).getHeight() / 2 - var11 / 2;
  80.             } else {
  81.                var10 = var5 + (var3 - 1) - var9;
  82.                var12 = var6 + (var8 - var6) / 2 - var11 / 2;
  83.             }
  84.  
  85.             this.comboIcon.paintIcon(this, var1, var10, var12);
  86.             if (((JComponent)this).hasFocus()) {
  87.                var1.setColor(MetalLookAndFeel.getFocusColor());
  88.                var1.drawRect(var5 - 1, var6 - 1, var3 + 3, var4 + 1);
  89.             }
  90.          }
  91.  
  92.          if (!this.iconOnly && this.comboBox != null) {
  93.             ListCellRenderer var15 = this.comboBox.getRenderer();
  94.             boolean var13 = ((AbstractButton)this).getModel().isPressed();
  95.             Component var17 = var15.getListCellRendererComponent(this.listBox, this.comboBox.getSelectedItem(), -1, var13, false);
  96.             var17.setFont(this.rendererPane.getFont());
  97.             if (super.model.isArmed() && super.model.isPressed()) {
  98.                if (((JComponent)this).isOpaque()) {
  99.                   var17.setBackground(UIManager.getColor("Button.select"));
  100.                }
  101.  
  102.                var17.setForeground(this.comboBox.getForeground());
  103.             } else if (!this.comboBox.isEnabled()) {
  104.                if (((JComponent)this).isOpaque()) {
  105.                   var17.setBackground(UIManager.getColor("ComboBox.disabledBackground"));
  106.                }
  107.  
  108.                var17.setForeground(UIManager.getColor("ComboBox.disabledForeground"));
  109.             } else {
  110.                var17.setForeground(this.comboBox.getForeground());
  111.                var17.setBackground(this.comboBox.getBackground());
  112.             }
  113.  
  114.             int var14 = var3 - (var2.right + var9);
  115.             this.rendererPane.paintComponent(var1, var17, this, var5, var6, var14, var4);
  116.          }
  117.  
  118.       }
  119.    }
  120.  
  121.    public final void setComboBox(JComboBox var1) {
  122.       this.comboBox = var1;
  123.    }
  124.  
  125.    public final void setComboIcon(Icon var1) {
  126.       this.comboIcon = var1;
  127.    }
  128.  
  129.    public final void setIconOnly(boolean var1) {
  130.       this.iconOnly = var1;
  131.    }
  132. }
  133.