Copyright 2012-02-25 Werner Randelshofer

ch.randelshofer.pdf.plaf
Class PDFButtonUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ButtonUI
          extended by javax.swing.plaf.basic.BasicButtonUI
              extended by ch.randelshofer.pdf.plaf.PDFButtonUI

public class PDFButtonUI
extends javax.swing.plaf.basic.BasicButtonUI

QuaquaButtonUI.

Version:
1.6 2007-02-27 Added method getPropertyPrefix. Use PDFButtonListener instead of BasicButtonListener.
1.5 2005-12-15 Take insets only into account when border is painted.
1.4.2 2005-12-03 Renamed UIManager property "disabledText" to "disabledForeground".
1.4.1 2005-09-25 Use BackgroundBorder interface instead of BackgroundBorderUIResource.
1.4 2005-09-04 Added support for "Quaqua.Button.style" "help".
1.3 2005-07-17 Adapted to changes in interface VisuallyLayoutable.
1.2 2006-06-19 Paint text antialiased.
1.1 2005-07-12 Insets for spacing added.
1.0.2 2005-06-05 If rollover is enabled, and the button is selected, but no rollover selected icon is available, use the selected icon instead of the default icon.
1.0.1 2005-05-28 Border needs only to be drawn when isBorderPainted returns true.
1.0 05 March 2005 Created.
Author:
Werner Randelshofer

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicButtonUI
defaultTextIconGap, defaultTextShiftOffset
 
Constructor Summary
PDFButtonUI()
           
 
Method Summary
protected  javax.swing.plaf.basic.BasicButtonListener createButtonListener(javax.swing.AbstractButton b)
           
static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent c)
          Push Button.
 java.awt.Dimension getMaximumSize(javax.swing.JComponent c)
           
 java.awt.Dimension getMinimumSize(javax.swing.JComponent c)
           
static java.awt.Dimension getPreferredSize(javax.swing.AbstractButton b)
           
 java.awt.Dimension getPreferredSize(javax.swing.JComponent c)
           
protected  java.lang.String getPropertyPrefix()
          This method is here, to let PDFButtonListener access this property.
protected  void installDefaults(javax.swing.AbstractButton b)
           
protected  java.lang.String layoutCL(javax.swing.AbstractButton c, java.awt.FontMetrics fontMetrics, java.lang.String text, javax.swing.Icon icon, java.awt.Rectangle viewR, java.awt.Rectangle iconR, java.awt.Rectangle textR)
          Forwards the call to SwingUtilities.layoutCompoundLabel().
 void paint(java.awt.Graphics g, javax.swing.JComponent c)
           
protected  void paintIcon(java.awt.Graphics g, javax.swing.JComponent c, java.awt.Rectangle iconRect)
           
protected  void paintText(java.awt.Graphics g, javax.swing.AbstractButton b, java.awt.Rectangle textRect, java.lang.String text)
          Method which renders the text of the current button.
protected  void paintText(java.awt.Graphics g, javax.swing.JComponent c, java.awt.Rectangle textRect, java.lang.String text)
          As of Java 2 platform v 1.4 this method should not be used or overriden.
 
Methods inherited from class javax.swing.plaf.basic.BasicButtonUI
clearTextShiftOffset, getBaseline, getBaselineResizeBehavior, getDefaultTextIconGap, getTextShiftOffset, installKeyboardActions, installListeners, installUI, paintButtonPressed, paintFocus, setTextShiftOffset, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PDFButtonUI

public PDFButtonUI()
Method Detail

createUI

public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent c)
Push Button. Preferred spacing between buttons and other components. / private final static Insets pushRegularSpacing = new Insets(12,12,12,12); private final static Insets pushSmallSpacing = new Insets(10,10,10,10); private final static Insets pushMiniSpacing = new Insets(8,8,8,8); /** Metal Button. Preferred spacing between buttons and other components. / private final static Insets metalRegularSpacing = new Insets(12,12,12,12); private final static Insets metalSmallSpacing = new Insets(8,8,8,8); /** Bevel Button. Preferred spacing between buttons and other components. Large Spacing is used, if the bevel button contains an icon that is 24 x 24 pixels or larger. / private final static Insets bevelLargeSpacing = new Insets(8,8,8,8); private final static Insets bevelRegularSpacing = new Insets(0,0,0,0); /** Square Button. Preferred spacing between buttons and other components. / private final static Insets squareSpacing = new Insets(0,0,0,0); /** Icon Button (buttons without border and an icon, and, optionally, text) Preferred spacing between buttons and other components. Large Spacing is used, if the icon button contains an icon that is 24 x 24 pixels or larger. / private final static Insets iconLargeSpacing = new Insets(8,8,8,8); private final static Insets iconRegularSpacing = new Insets(0,0,0,0); /** Round Button and Help Button. / private final static Insets roundSpacing = new Insets(12,12,12,12);


installDefaults

protected void installDefaults(javax.swing.AbstractButton b)
Overrides:
installDefaults in class javax.swing.plaf.basic.BasicButtonUI

createButtonListener

protected javax.swing.plaf.basic.BasicButtonListener createButtonListener(javax.swing.AbstractButton b)
Overrides:
createButtonListener in class javax.swing.plaf.basic.BasicButtonUI

paint

public void paint(java.awt.Graphics g,
                  javax.swing.JComponent c)
Overrides:
paint in class javax.swing.plaf.basic.BasicButtonUI

paintText

protected void paintText(java.awt.Graphics g,
                         javax.swing.JComponent c,
                         java.awt.Rectangle textRect,
                         java.lang.String text)
As of Java 2 platform v 1.4 this method should not be used or overriden. Use the paintText method which takes the AbstractButton argument.

Overrides:
paintText in class javax.swing.plaf.basic.BasicButtonUI

paintText

protected void paintText(java.awt.Graphics g,
                         javax.swing.AbstractButton b,
                         java.awt.Rectangle textRect,
                         java.lang.String text)
Method which renders the text of the current button.

Overrides:
paintText in class javax.swing.plaf.basic.BasicButtonUI
Parameters:
g - Graphics context
b - Current button to render
textRect - Bounding rectangle to render the text.
text - String to render
Since:
1.4

paintIcon

protected void paintIcon(java.awt.Graphics g,
                         javax.swing.JComponent c,
                         java.awt.Rectangle iconRect)
Overrides:
paintIcon in class javax.swing.plaf.basic.BasicButtonUI

getPropertyPrefix

protected java.lang.String getPropertyPrefix()
This method is here, to let PDFButtonListener access this property.

Overrides:
getPropertyPrefix in class javax.swing.plaf.basic.BasicButtonUI

getMinimumSize

public java.awt.Dimension getMinimumSize(javax.swing.JComponent c)
Overrides:
getMinimumSize in class javax.swing.plaf.basic.BasicButtonUI

getPreferredSize

public java.awt.Dimension getPreferredSize(javax.swing.JComponent c)
Overrides:
getPreferredSize in class javax.swing.plaf.basic.BasicButtonUI

getMaximumSize

public java.awt.Dimension getMaximumSize(javax.swing.JComponent c)
Overrides:
getMaximumSize in class javax.swing.plaf.basic.BasicButtonUI

getPreferredSize

public static java.awt.Dimension getPreferredSize(javax.swing.AbstractButton b)

layoutCL

protected java.lang.String layoutCL(javax.swing.AbstractButton c,
                                    java.awt.FontMetrics fontMetrics,
                                    java.lang.String text,
                                    javax.swing.Icon icon,
                                    java.awt.Rectangle viewR,
                                    java.awt.Rectangle iconR,
                                    java.awt.Rectangle textR)
Forwards the call to SwingUtilities.layoutCompoundLabel(). This method is here so that a subclass could do Label specific layout and to shorten the method name a little.

See Also:
SwingUtilities.layoutCompoundLabel(javax.swing.JComponent, java.awt.FontMetrics, java.lang.String, javax.swing.Icon, int, int, int, int, java.awt.Rectangle, java.awt.Rectangle, java.awt.Rectangle, int)

Copyright 2012-02-25 Werner Randelshofer