javax.swing.plaf.basic
Class BasicProgressBarUI

java.lang.Object
  extended by javax.swing.plaf.ComponentUI
      extended by javax.swing.plaf.ProgressBarUI
          extended by javax.swing.plaf.basic.BasicProgressBarUI
Direct Known Subclasses:
MetalProgressBarUI

public class BasicProgressBarUI
extends ProgressBarUI

The Basic Look and Feel UI delegate for the JProgressBar.


Nested Class Summary
 class BasicProgressBarUI.ChangeHandler
          A helper class that listens for ChangeEvents from the progressBar's model.
 
Field Summary
protected  Rectangle boxRect
          Holds the value of the bouncing box that is returned by getBox(java.awt.Rectangle).
protected  ChangeListener changeListener
          The Listener for the model.
protected  JProgressBar progressBar
          The progressBar for this UI.
 
Constructor Summary
BasicProgressBarUI()
          Creates a new BasicProgressBarUI object.
 
Method Summary
static ComponentUI createUI(JComponent x)
          Creates a new BasicProgressBarUI for the component.
protected  int getAmountFull(Insets b, int width, int height)
          This method returns the length of the bar (from the minimum) in pixels (or units that the Graphics object draws in) based on the progressBar's getPercentComplete() value.
protected  int getAnimationIndex()
          The current animation index.
protected  Rectangle getBox(Rectangle r)
          This method returns the size and position of the bouncing box for the current animation index.
protected  int getCellLength()
          This method returns the length of the cells.
protected  int getCellSpacing()
          This method returns the spacing between cells.
 Dimension getMaximumSize(JComponent c)
          This method returns the maximum size of the JComponent.
 Dimension getMinimumSize(JComponent c)
          This method returns the minimum size of the JComponent.
protected  Dimension getPreferredInnerHorizontal()
          This method returns the preferred size of the inner rectangle (the bounds without the insets) if the progressBar is horizontal.
protected  Dimension getPreferredInnerVertical()
          This method returns the preferred size of the inner rectangle (the bounds without insets) if the progressBar is vertical.
 Dimension getPreferredSize(JComponent c)
          This method returns the preferred size of the given JComponent.
protected  Color getSelectionBackground()
          This method returns the Color that the text is shown in when the bar is not over the text.
protected  Color getSelectionForeground()
          This method returns the Color that the text is shown in when the bar is over the text.
protected  Point getStringPlacement(Graphics g, String progressString, int x, int y, int width, int height)
          This method returns the point (the top left of the bounding box) where the text should be painted.
protected  void incrementAnimationIndex()
          This method increments the animation index.
protected  void installDefaults()
          This method changes the settings for the progressBar to the defaults provided by the current Look and Feel.
protected  void installListeners()
          This method registers listeners to all the components that this UI delegate needs to listen to.
 void installUI(JComponent c)
          This method installs the UI for the given JComponent.
 void paint(Graphics g, JComponent c)
          This method paints the progressBar.
protected  void paintDeterminate(Graphics g, JComponent c)
          This method is called if the painting to be done is for a determinate progressBar.
protected  void paintIndeterminate(Graphics g, JComponent c)
          This method is called if the painting to be done is for an indeterminate progressBar.
protected  void paintString(Graphics g, int x, int y, int width, int height, int amountFull, Insets b)
          This method paints the string for the progressBar.
protected  void setAnimationIndex(int newValue)
          This method sets the current animation index.
protected  void setCellLength(int cellLen)
          This method sets the cell length.
protected  void setCellSpacing(int cellSpace)
          This method sets the cell spacing.
protected  void startAnimationTimer()
          This method starts the animation timer.
protected  void stopAnimationTimer()
          This method stops the animation timer.
protected  void uninstallDefaults()
          The method uninstalls any defaults that were set by the current Look and Feel.
protected  void uninstallListeners()
          This method unregisters listeners to all the components that were listened to.
 void uninstallUI(JComponent c)
          This method removes the UI for the given JComponent.
 
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
 

Field Detail

boxRect

protected Rectangle boxRect
Holds the value of the bouncing box that is returned by getBox(java.awt.Rectangle).

Since:
1.5

changeListener

protected ChangeListener changeListener
The Listener for the model.


progressBar

protected JProgressBar progressBar
The progressBar for this UI.

Constructor Detail

BasicProgressBarUI

public BasicProgressBarUI()
Creates a new BasicProgressBarUI object.

Method Detail

createUI

public static ComponentUI createUI(JComponent x)
Creates a new BasicProgressBarUI for the component.

Parameters:
x - The JComponent to create the UI for.
Returns:
A new BasicProgressBarUI.

getAmountFull

protected int getAmountFull(Insets b,
                            int width,
                            int height)
This method returns the length of the bar (from the minimum) in pixels (or units that the Graphics object draws in) based on the progressBar's getPercentComplete() value.

Parameters:
b - The insets of the progressBar.
width - The width of the progressBar.
height - The height of the progressBar.
Returns:
The length of the bar that should be painted in pixels.

getAnimationIndex

protected int getAnimationIndex()
The current animation index.

Returns:
The current animation index.

getBox

protected Rectangle getBox(Rectangle r)
This method returns the size and position of the bouncing box for the current animation index. It stores the values in the given rectangle and returns it. It returns null if no box should be drawn.

Parameters:
r - The bouncing box rectangle.
Returns:
The bouncing box rectangle.

getCellLength

protected int getCellLength()
This method returns the length of the cells.

Returns:
The cell length.

getCellSpacing

protected int getCellSpacing()
This method returns the spacing between cells.

Returns:
The cell gap.

getMaximumSize

public Dimension getMaximumSize(JComponent c)
This method returns the maximum size of the JComponent. If it returns null, it is up to the LayoutManager to give it a size.

Overrides:
getMaximumSize in class ComponentUI
Parameters:
c - The component to find a maximum size for.
Returns:
The maximum size.

getMinimumSize

public Dimension getMinimumSize(JComponent c)
This method returns the minimum size of the JComponent. If it returns null, it is up to the LayoutManager to give it a size.

Overrides:
getMinimumSize in class ComponentUI
Parameters:
c - The component to find a minimum size for.
Returns:
The minimum size.

getPreferredInnerHorizontal

protected Dimension getPreferredInnerHorizontal()
This method returns the preferred size of the inner rectangle (the bounds without the insets) if the progressBar is horizontal.

Returns:
The preferred size of the progressBar minus insets if it's horizontal.

getPreferredInnerVertical

protected Dimension getPreferredInnerVertical()
This method returns the preferred size of the inner rectangle (the bounds without insets) if the progressBar is vertical.

Returns:
The preferred size of the progressBar minus insets if it's vertical.

getPreferredSize

public Dimension getPreferredSize(JComponent c)
This method returns the preferred size of the given JComponent. If it returns null, then it is up to the LayoutManager to give it a size.

Overrides:
getPreferredSize in class ComponentUI
Parameters:
c - The component to find the preferred size for.
Returns:
The preferred size of the component.

getSelectionBackground

protected Color getSelectionBackground()
This method returns the Color that the text is shown in when the bar is not over the text.

Returns:
The color of the text when the bar is not over it.

getSelectionForeground

protected Color getSelectionForeground()
This method returns the Color that the text is shown in when the bar is over the text.

Returns:
The color of the text when the bar is over it.

getStringPlacement

protected Point getStringPlacement(Graphics g,
                                   String progressString,
                                   int x,
                                   int y,
                                   int width,
                                   int height)
This method returns the point (the top left of the bounding box) where the text should be painted.

Parameters:
g - The Graphics object to measure FontMetrics with.
progressString - The string to paint.
x - The x coordinate of the overall bounds box.
y - The y coordinate of the overall bounds box.
width - The width of the overall bounds box.
height - The height of the overall bounds box.
Returns:
The top left of the bounding box where text should be painted.

incrementAnimationIndex

protected void incrementAnimationIndex()
This method increments the animation index.


paint

public void paint(Graphics g,
                  JComponent c)
This method paints the progressBar. It delegates its responsibilities to paintDeterminate and paintIndeterminate.

Overrides:
paint in class ComponentUI
Parameters:
g - The Graphics object to paint with.
c - The JComponent to paint.

paintDeterminate

protected void paintDeterminate(Graphics g,
                                JComponent c)
This method is called if the painting to be done is for a determinate progressBar.

Parameters:
g - The Graphics object to paint with.
c - The JComponent to paint.

paintIndeterminate

protected void paintIndeterminate(Graphics g,
                                  JComponent c)
This method is called if the painting to be done is for an indeterminate progressBar.

Parameters:
g - The Graphics object to paint with.
c - The JComponent to paint.

paintString

protected void paintString(Graphics g,
                           int x,
                           int y,
                           int width,
                           int height,
                           int amountFull,
                           Insets b)
This method paints the string for the progressBar.

Parameters:
g - The Graphics object to paint with.
x - The x coordinate of the progressBar.
y - The y coordinate of the progressBar.
width - The width of the progressBar.
height - The height of the progressBar.
amountFull - The amount of the progressBar that has its bar filled.
b - The insets of the progressBar.

setAnimationIndex

protected void setAnimationIndex(int newValue)
This method sets the current animation index. If the index is greater than the number of frames, it resets to 0.

Parameters:
newValue - The new animation index.

setCellLength

protected void setCellLength(int cellLen)
This method sets the cell length.

Parameters:
cellLen - The cell length.

setCellSpacing

protected void setCellSpacing(int cellSpace)
This method sets the cell spacing.

Parameters:
cellSpace - The cell spacing.

startAnimationTimer

protected void startAnimationTimer()
This method starts the animation timer. It is called when the propertyChangeListener detects that the progressBar has changed to indeterminate mode.

Since:
1.4

stopAnimationTimer

protected void stopAnimationTimer()
This method stops the animation timer. It is called when the propertyChangeListener detects that the progressBar has changed to determinate mode.

Since:
1.4

installDefaults

protected void installDefaults()
This method changes the settings for the progressBar to the defaults provided by the current Look and Feel.


uninstallDefaults

protected void uninstallDefaults()
The method uninstalls any defaults that were set by the current Look and Feel.


installListeners

protected void installListeners()
This method registers listeners to all the components that this UI delegate needs to listen to.


uninstallListeners

protected void uninstallListeners()
This method unregisters listeners to all the components that were listened to.


installUI

public void installUI(JComponent c)
This method installs the UI for the given JComponent. This includes setting up defaults and listeners as well as initializing any values or objects that the UI may need.

Overrides:
installUI in class ComponentUI
Parameters:
c - The JComponent that is having this UI installed.
See Also:
ComponentUI.uninstallUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()

uninstallUI

public void uninstallUI(JComponent c)
This method removes the UI for the given JComponent. This includes removing any listeners or defaults that the installUI may have set up.

Overrides:
uninstallUI in class ComponentUI
Parameters:
c - The JComponent that is having this UI uninstalled.
See Also:
ComponentUI.installUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()