home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.metal;
-
- import java.awt.Component;
- import java.awt.Graphics;
- import java.awt.Insets;
- import javax.swing.AbstractButton;
- import javax.swing.CellRendererPane;
- import javax.swing.Icon;
- import javax.swing.JButton;
- import javax.swing.JComboBox;
- import javax.swing.JComponent;
- import javax.swing.JList;
- import javax.swing.ListCellRenderer;
- import javax.swing.UIManager;
-
- public class MetalComboBoxButton extends JButton {
- protected JComboBox comboBox;
- protected JList listBox;
- protected CellRendererPane rendererPane;
- protected Icon comboIcon;
- protected boolean iconOnly;
-
- MetalComboBoxButton() {
- super("");
- this.iconOnly = false;
- 1 var1 = new 1();
- ((AbstractButton)this).setModel(var1);
- }
-
- public MetalComboBoxButton(JComboBox var1, Icon var2, CellRendererPane var3, JList var4) {
- this();
- this.comboBox = var1;
- this.comboIcon = var2;
- this.rendererPane = var3;
- this.listBox = var4;
- ((AbstractButton)this).setEnabled(this.comboBox.isEnabled());
- ((JComponent)this).setRequestFocusEnabled(this.comboBox.isEnabled());
- }
-
- public MetalComboBoxButton(JComboBox var1, Icon var2, boolean var3, CellRendererPane var4, JList var5) {
- this(var1, var2, var4, var5);
- this.iconOnly = var3;
- }
-
- public final JComboBox getComboBox() {
- return this.comboBox;
- }
-
- public final Icon getComboIcon() {
- return this.comboIcon;
- }
-
- public boolean isFocusTraversable() {
- return !this.comboBox.isEditable() && this.comboBox.isEnabled();
- }
-
- public final boolean isIconOnly() {
- return this.iconOnly;
- }
-
- public void paintComponent(Graphics var1) {
- super.paintComponent(var1);
- Insets var2 = ((JComponent)this).getInsets();
- int var3 = ((JComponent)this).getWidth() - (var2.left + var2.right);
- int var4 = ((JComponent)this).getHeight() - (var2.top + var2.bottom);
- if (var4 > 0 && var3 > 0) {
- int var5 = var2.left;
- int var6 = var2.top;
- int var7 = var5 + (var3 - 1);
- int var8 = var6 + (var4 - 1);
- int var9 = 0;
- if (this.comboIcon != null) {
- var9 = this.comboIcon.getIconWidth();
- int var11 = this.comboIcon.getIconHeight();
- int var12 = 0;
- int var10;
- if (this.iconOnly) {
- var10 = ((JComponent)this).getWidth() / 2 - var9 / 2;
- var12 = ((JComponent)this).getHeight() / 2 - var11 / 2;
- } else {
- var10 = var5 + (var3 - 1) - var9;
- var12 = var6 + (var8 - var6) / 2 - var11 / 2;
- }
-
- this.comboIcon.paintIcon(this, var1, var10, var12);
- if (((JComponent)this).hasFocus()) {
- var1.setColor(MetalLookAndFeel.getFocusColor());
- var1.drawRect(var5 - 1, var6 - 1, var3 + 3, var4 + 1);
- }
- }
-
- if (!this.iconOnly && this.comboBox != null) {
- ListCellRenderer var15 = this.comboBox.getRenderer();
- boolean var13 = ((AbstractButton)this).getModel().isPressed();
- Component var17 = var15.getListCellRendererComponent(this.listBox, this.comboBox.getSelectedItem(), -1, var13, false);
- var17.setFont(this.rendererPane.getFont());
- if (super.model.isArmed() && super.model.isPressed()) {
- if (((JComponent)this).isOpaque()) {
- var17.setBackground(UIManager.getColor("Button.select"));
- }
-
- var17.setForeground(this.comboBox.getForeground());
- } else if (!this.comboBox.isEnabled()) {
- if (((JComponent)this).isOpaque()) {
- var17.setBackground(UIManager.getColor("ComboBox.disabledBackground"));
- }
-
- var17.setForeground(UIManager.getColor("ComboBox.disabledForeground"));
- } else {
- var17.setForeground(this.comboBox.getForeground());
- var17.setBackground(this.comboBox.getBackground());
- }
-
- int var14 = var3 - (var2.right + var9);
- this.rendererPane.paintComponent(var1, var17, this, var5, var6, var14, var4);
- }
-
- }
- }
-
- public final void setComboBox(JComboBox var1) {
- this.comboBox = var1;
- }
-
- public final void setComboIcon(Icon var1) {
- this.comboIcon = var1;
- }
-
- public final void setIconOnly(boolean var1) {
- this.iconOnly = var1;
- }
- }
-