home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.basic;
-
- import com.sun.java.swing.AbstractButton;
- import com.sun.java.swing.ButtonModel;
- import com.sun.java.swing.Icon;
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.LookAndFeel;
- import com.sun.java.swing.SwingUtilities;
- import com.sun.java.swing.UIManager;
- import com.sun.java.swing.plaf.ButtonUI;
- import com.sun.java.swing.plaf.ComponentUI;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Insets;
- import java.awt.Rectangle;
- import java.io.Serializable;
-
- public class BasicButtonUI extends ButtonUI implements Serializable {
- private static final Insets defaultMargin = new Insets(2, 14, 2, 14);
- private static final int defaultTextIconGap = 4;
- private int shift_offset;
- protected static ButtonUI buttonUI;
- protected static BasicButtonListener listener;
-
- protected Color getSelectColor() {
- return UIManager.getColor("Button.pressed");
- }
-
- protected Color getDisabledColor() {
- return UIManager.getColor("Button.disabled");
- }
-
- protected Color getDisabledTextColor() {
- return UIManager.getColor("Button.disabledText");
- }
-
- protected Color getFocusColor() {
- return UIManager.getColor("Button.focus");
- }
-
- public static ComponentUI createUI(JComponent var0) {
- if (buttonUI == null) {
- buttonUI = new BasicButtonUI();
- }
-
- return buttonUI;
- }
-
- public void installUI(JComponent var1) {
- this.installDefaults(var1);
- this.installListeners(var1);
- this.installKeyboardActions(var1);
- }
-
- protected void installDefaults(JComponent var1) {
- var1.setOpaque(false);
- LookAndFeel.installColorsAndFont(var1, "Button.background", "Button.foreground", "Button.font");
- LookAndFeel.installBorder(var1, "Button.border");
- }
-
- protected void installListeners(JComponent var1) {
- if ((listener = this.createListener(var1)) != null) {
- ((Component)var1).addMouseListener(listener);
- ((Component)var1).addMouseMotionListener(listener);
- ((Component)var1).addFocusListener(listener);
- ((AbstractButton)var1).addChangeListener(listener);
- }
-
- }
-
- protected void installKeyboardActions(JComponent var1) {
- listener.setupKeyboard((AbstractButton)var1);
- }
-
- public void uninstallUI(JComponent var1) {
- this.uninstallKeyboardActions(var1);
- this.uninstallListeners(var1);
- this.uninstallDefaults(var1);
- }
-
- protected void uninstallKeyboardActions(JComponent var1) {
- var1.resetKeyboardActions();
- }
-
- protected void uninstallListeners(JComponent var1) {
- ((Component)var1).removeMouseListener(listener);
- ((Component)var1).removeMouseMotionListener(listener);
- ((Component)var1).removeFocusListener(listener);
- ((AbstractButton)var1).removeChangeListener(listener);
- }
-
- protected void uninstallDefaults(JComponent var1) {
- LookAndFeel.uninstallBorder(var1);
- }
-
- protected BasicButtonListener createListener(JComponent var1) {
- return new BasicButtonListener((AbstractButton)var1);
- }
-
- public void paint(Graphics var1, JComponent var2) {
- AbstractButton var3 = (AbstractButton)var2;
- ButtonModel var4 = var3.getModel();
- Dimension var5 = ((Component)var3).getSize();
- FontMetrics var6 = var1.getFontMetrics();
- Insets var7 = var2.getInsets();
- Rectangle var8 = new Rectangle(var5);
- var8.x += var7.left;
- var8.y += var7.top;
- var8.width -= var7.right + var8.x;
- var8.height -= var7.bottom + var8.y;
- Rectangle var9 = new Rectangle();
- Rectangle var10 = new Rectangle();
- Font var11 = ((Component)var2).getFont();
- var1.setFont(var11);
- String var12 = SwingUtilities.layoutCompoundLabel(var6, var3.getText(), var3.getIcon(), var3.getVerticalAlignment(), var3.getHorizontalAlignment(), var3.getVerticalTextPosition(), var3.getHorizontalTextPosition(), var8, var9, var10, var3.getText() == null ? 0 : 4);
- this.setTextShiftOffset(0);
- if (var4.isArmed() && var4.isPressed()) {
- this.paintButtonPressed(var1, var3);
- }
-
- if (var3.getIcon() != null) {
- this.paintIcon(var1, var2, var9);
- }
-
- if (var12 != null && !var12.equals("")) {
- this.paintText(var1, var2, var10, var12);
- }
-
- if (var3.isFocusPainted() && ((JComponent)var3).hasFocus()) {
- this.paintFocus(var1, var5);
- }
-
- }
-
- protected void paintIcon(Graphics var1, JComponent var2, Rectangle var3) {
- AbstractButton var4 = (AbstractButton)var2;
- ButtonModel var5 = var4.getModel();
- Icon var6 = null;
- if (!var5.isEnabled()) {
- var6 = var4.getDisabledIcon();
- } else if (var5.isPressed() && var5.isArmed()) {
- var6 = var4.getPressedIcon();
- if (var6 == null) {
- var6 = var4.getIcon();
- } else {
- this.setTextShiftOffset(0);
- }
- } else if (var4.isRolloverEnabled() && var5.isRollover()) {
- var6 = var4.getRolloverIcon();
- }
-
- if (var6 == null) {
- var6 = var4.getIcon();
- }
-
- if (var5.isPressed() && var5.isArmed()) {
- var6.paintIcon(var2, var1, var3.x + this.getTextShiftOffset(), var3.y + this.getTextShiftOffset());
- } else {
- var6.paintIcon(var2, var1, var3.x, var3.y);
- }
- }
-
- protected void paintText(Graphics var1, JComponent var2, Rectangle var3, String var4) {
- AbstractButton var5 = (AbstractButton)var2;
- ButtonModel var6 = var5.getModel();
- FontMetrics var7 = var1.getFontMetrics();
- if (var6.isEnabled()) {
- var1.setColor(((Component)var5).getForeground());
- BasicGraphicsUtils.drawString(var1, var4, var6.getMnemonic(), var3.x + this.getTextShiftOffset(), var3.y + var7.getAscent() + this.getTextShiftOffset());
- } else {
- var1.setColor(((Component)var5).getBackground().brighter());
- BasicGraphicsUtils.drawString(var1, var4, var6.getMnemonic(), var3.x, var3.y + var7.getAscent());
- var1.setColor(((Component)var5).getBackground().darker());
- BasicGraphicsUtils.drawString(var1, var4, var6.getMnemonic(), var3.x - 1, var3.y + var7.getAscent() - 1);
- }
- }
-
- protected void paintFocus(Graphics var1, Dimension var2) {
- }
-
- protected void paintButtonPressed(Graphics var1, AbstractButton var2) {
- }
-
- protected void setTextShiftOffset(int var1) {
- this.shift_offset = var1;
- }
-
- private int getTextShiftOffset() {
- return this.shift_offset;
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- return this.getPreferredSize(var1);
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- AbstractButton var2 = (AbstractButton)var1;
- return BasicGraphicsUtils.getPreferredButtonSize(var2, 4);
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- return this.getPreferredSize(var1);
- }
-
- public Insets getDefaultMargin(AbstractButton var1) {
- return defaultMargin;
- }
-
- public int getDefaultTextIconGap(AbstractButton var1) {
- return 4;
- }
- }
-