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.ComponentUI;
- import com.sun.java.swing.plaf.ToggleButtonUI;
- import java.awt.Component;
- import java.awt.Container;
- 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 BasicRadioButtonUI extends BasicToggleButtonUI implements Serializable {
- protected static final Insets defaultMargin = new Insets(2, 2, 2, 2);
- protected Icon icon;
- protected static ToggleButtonUI radioButtonUI;
- ButtonModel model;
-
- public static ComponentUI createUI(JComponent var0) {
- if (radioButtonUI == null) {
- radioButtonUI = new BasicRadioButtonUI();
- }
-
- return radioButtonUI;
- }
-
- protected void installDefaults(JComponent var1) {
- super.installDefaults(var1);
- this.icon = this.createIcon();
- LookAndFeel.installColorsAndFont(var1, "RadioButton.background", "RadioButton.foreground", "RadioButton.font");
- }
-
- public synchronized void paint(Graphics var1, JComponent var2) {
- AbstractButton var3 = (AbstractButton)var2;
- this.model = var3.getModel();
- Dimension var4 = ((Component)var2).getSize();
- Font var5 = ((Component)var2).getFont();
- var1.setFont(var5);
- FontMetrics var6 = var1.getFontMetrics();
- Rectangle var7 = new Rectangle(var4);
- Rectangle var8 = new Rectangle();
- Rectangle var9 = new Rectangle();
- Icon var10 = var3.getIcon();
- String var11 = SwingUtilities.layoutCompoundLabel(var6, var3.getText(), var10 != null ? var10 : this.icon, var3.getVerticalAlignment(), var3.getHorizontalAlignment(), var3.getVerticalTextPosition(), var3.getHorizontalTextPosition(), var7, var8, var9, ((BasicToggleButtonUI)this).getDefaultTextIconGap(var3));
- if (var2.isOpaque()) {
- var1.setColor(((Component)var3).getBackground());
- var1.fillRect(0, 0, var4.width, var4.height);
- }
-
- if (var10 != null) {
- if (!this.model.isEnabled()) {
- var10 = var3.getDisabledIcon();
- } else if (this.model.isPressed() && this.model.isArmed()) {
- var10 = var3.getPressedIcon();
- if (var10 == null) {
- var10 = var3.getSelectedIcon();
- }
- } else if (this.model.isSelected()) {
- var10 = var3.getSelectedIcon();
- } else if (var3.isRolloverEnabled() && this.model.isRollover()) {
- var10 = var3.getRolloverIcon();
- }
-
- if (var10 == null) {
- var10 = var3.getIcon();
- }
-
- var10.paintIcon(var2, var1, var8.x, var8.y);
- } else {
- this.icon.paintIcon(var2, var1, var8.x, var8.y);
- }
-
- if (var11 != null) {
- if (this.model.isEnabled()) {
- var1.setColor(((Component)var3).getForeground());
- BasicGraphicsUtils.drawString(var1, var11, this.model.getMnemonic(), var9.x, var9.y + var6.getAscent());
- } else {
- var1.setColor(((Component)var3).getBackground().brighter());
- BasicGraphicsUtils.drawString(var1, var11, this.model.getMnemonic(), var9.x + 1, var9.y + var6.getAscent() + 1);
- var1.setColor(((Component)var3).getBackground().darker());
- BasicGraphicsUtils.drawString(var1, var11, this.model.getMnemonic(), var9.x, var9.y + var6.getAscent());
- }
-
- if (((JComponent)var3).hasFocus() && var3.isFocusPainted() && var9.width > 0 && var9.height > 0) {
- this.paintFocus(var1, var9, var4);
- }
- }
-
- }
-
- protected void paintFocus(Graphics var1, Rectangle var2, Dimension var3) {
- }
-
- public Icon createIcon() {
- return UIManager.getIcon("RadioButton.icon");
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- if (((Container)var1).getComponentCount() > 0) {
- return null;
- } else {
- AbstractButton var2 = (AbstractButton)var1;
- String var3 = var2.getText();
- Icon var4 = var2.getIcon();
- if (var4 == null) {
- var4 = this.icon;
- }
-
- Font var5 = ((Component)var2).getFont();
- FontMetrics var6 = ((Component)var2).getToolkit().getFontMetrics(var5);
- Rectangle var7 = new Rectangle();
- Rectangle var8 = new Rectangle();
- Rectangle var9 = new Rectangle(32767, 32767);
- SwingUtilities.layoutCompoundLabel(var6, var3, var4, var2.getVerticalAlignment(), var2.getHorizontalAlignment(), var2.getVerticalTextPosition(), var2.getHorizontalTextPosition(), var9, var7, var8, var3 == null ? 0 : ((BasicToggleButtonUI)this).getDefaultTextIconGap(var2));
- Rectangle var10 = var7.union(var8);
- Insets var11 = ((JComponent)var2).getInsets();
- var10.width += var11.left + var11.right;
- var10.height += var11.top + var11.bottom;
- return var10.getSize();
- }
- }
-
- public Insets getDefaultMargin(AbstractButton var1) {
- return defaultMargin;
- }
- }
-