public class ScrollBar extends java.lang.Object implements Renderable
value
is
the current position of the scroll bar. extent
represents the visible region. The four values must always
satisfy this relationship:
min <= value <= value + extent <= max
Modifier and Type | Class and Description |
---|---|
class |
ScrollBar.ScrollControl
Control for the scroll arrows and areas of the scroll bar above and below the knob.
|
class |
ScrollBar.ScrollKnob
Control for dragging the scroll knob.
|
Modifier and Type | Field and Description |
---|---|
protected java.awt.Insets |
arrowInsets
Insets used to position the triangle in the scroll arrow box.
|
protected int |
autoScrollDelay
Delay in milliseconds between each step in auto-scroll operation is effect.
|
protected java.lang.String |
autoScrollIncrement
The amount and direction that the bar scrolls while auto-scrolling.
|
protected boolean |
autoScrolling
Indicates whether an auto-scroll operation is active (such as when the user has clicked and held the mouse on the
scroll arrow).
|
static java.lang.String |
BLOCK_DOWN
Scroll increment for one page down.
|
static java.lang.String |
BLOCK_UP
Scroll increment for one page up.
|
protected java.awt.Rectangle |
bounds
Full bounds of the scroll bar.
|
protected static java.awt.Insets |
DEFAULT_ARROW_INSETS
Default insets that position the triangle of the scroll arrow in its box.
|
protected static int |
DEFAULT_AUTO_SCROLL_DELAY
Default delay, in milliseconds, between auto scroll steps.
|
protected static java.awt.Color |
DEFAULT_LINE_COLOR
Default color used to draw lines in the scroll bar.
|
protected static int |
DEFAULT_MAX_VALUE
Default scroll range maximum value.
|
protected static int |
DEFAULT_MIN_SCROLL_KNOB_SIZE
Default minimum size, in pixels, of the scroll knob.
|
protected static int |
DEFAULT_MIN_VALUE
Default scroll range minimum value.
|
protected static double |
DEFAULT_OPACITY
Default opacity.
|
protected static java.awt.Color |
DEFAULT_SCROLL_KNOB_COLOR1
Default first color in the scroll knob gradient.
|
protected static java.awt.Color |
DEFAULT_SCROLL_KNOB_COLOR2
Default second color in the scroll knob gradient.
|
protected static int |
DEFAULT_UNIT_INCREMENT
Default unit increment.
|
protected int |
extent
The amount of the scroll region that is visible in the frame.
|
protected long |
frameNumber
Identifies frame used to calculate per-frame values.
|
protected java.awt.Color |
knobColor1
First color of the gradient used to fill the scroll knob.
|
protected java.awt.Color |
knobColor2
Second color of the gradient used to fill the scroll knob.
|
protected java.awt.Color |
lineColor
Color applied to lines in the scroll bar.
|
protected int |
maxValue
Maximum value in the scroll range.
|
protected int |
minScrollKnobSize
The minimum size of the scroll knob.
|
protected int |
minValue
Minimum value in the scroll range.
|
protected long |
nextAutoScroll
Time at which the scrollbar should automatically update itself.
|
protected double |
opacity
Opacity of the scroll bar knob.
|
protected java.lang.String |
orientation
Scroll bar orientation, either
AVKey.HORIZONTAL or AVKey.VERTICAL . |
protected PickSupport |
pickSupport
Support for setting up and restoring picking state, and resolving the picked object.
|
protected int |
scrollArrowSize
Size, in pixels, of the scroll arrow square.
|
protected java.awt.Rectangle |
scrollBounds
Bounds of the scroll track part of the scroll bar.
|
protected java.awt.Rectangle |
scrollDownBarBounds
Bounds of the scroll bar area below the knob.
|
protected HotSpot |
scrollDownBlockControl
HotSpot to handle input on page down control.
|
protected HotSpot |
scrollDownControl
HotSpot to handle input on the scroll down control.
|
protected java.awt.Rectangle |
scrollDownControlBounds
Bounds of the "down arrow" control.
|
protected java.awt.Rectangle |
scrollKnobBounds
Bounds of the scroll knob.
|
protected ScrollBar.ScrollKnob |
scrollKnobControl
HotSpot to handle input on the scroll knob.
|
protected java.awt.Rectangle |
scrollUpBarBounds
Bounds of the scroll bar area above the knob.
|
protected HotSpot |
scrollUpBlockControl
HotSpot to handle input on page up control.
|
protected HotSpot |
scrollUpControl
HotSpot to handle input on the scroll up control.
|
protected java.awt.Rectangle |
scrollUpControlBounds
Bounds of the "up arrow" control.
|
static java.lang.String |
UNIT_DOWN
Scroll increment for one unit down.
|
static java.lang.String |
UNIT_UP
Scroll increment for one unit up.
|
protected int |
unitIncrement
Amount that the scroll bar scrolls when the up or down arrow is clicked.
|
protected int |
value
Current scroll bar value.
|
Constructor and Description |
---|
ScrollBar(HotSpot parent)
Create a scroll bar in the vertical orientation.
|
ScrollBar(HotSpot parent,
java.lang.String orientation)
Create a scroll bar with an orientation.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
canDrawInBounds()
Determines if the scrollbar is able to draw within its bounds.
|
protected void |
computeBounds()
Compute the bounds of the scroll bar.
|
protected void |
doPick(DrawContext dc)
Pick the scroll bar.
|
protected void |
draw(DrawContext dc)
Draw the scroll bar.
|
protected void |
drawPickableQuad(DrawContext dc,
java.lang.Object pickObject,
java.awt.Rectangle bounds)
Draw a filled quad in a unique pick color.
|
protected void |
drawQuad(DrawContext dc,
java.awt.Rectangle bounds)
Draw the vertices of a quadrilateral.
|
protected void |
drawTriangle(DrawContext dc,
float rotation,
java.awt.Rectangle bounds,
java.awt.Insets insets)
Draw a triangle for one of the scroll bar controls.
|
int |
getAutoScrollDelay()
Indicates how frequently the scrollbar updates while one of the scroll arrows is pressed.
|
int |
getBlockIncrement()
Get the block increment.
|
java.awt.Rectangle |
getBounds()
Get the bounds of the scroll bar.
|
int |
getExtent()
Get the extent.
|
java.awt.Color[] |
getKnobColor()
Get the color of scroll knob.
|
protected int |
getKnobSize(int scrollAreaSize)
Get the size of the scroll knob, in pixels.
|
java.awt.Color |
getLineColor()
Get the color used to draw the lines of the scroll bar boundary and the scroll arrows.
|
int |
getMaxValue()
Get the maximum value in the scroll range.
|
int |
getMinScrollKnobSize()
Indicates the minimum size of the scrollbar knob, in pixels.
|
int |
getMinValue()
Get the minimum value in the scroll range.
|
double |
getOpacity()
Indicates the opacity of the scroll knob.
|
java.lang.String |
getOrientation()
Get the scroll bar orientation.
|
protected int |
getScrollArrowSize()
Get the height of the scroll arrow controls at the top and bottom of the scroll bar.
|
int |
getUnitIncrement()
Get the unit increment.
|
int |
getValue()
Get the current value of the scroll bar.
|
double |
getValueAsPercentage()
Get the value as a percentage of the scroll range.
|
protected void |
initializeUIControls(HotSpot parent)
Initialize the objects that represent the UI controls.
|
boolean |
isAutoScrolling()
Is the scroll bar auto-scrolling?
|
void |
render(DrawContext dc)
Draw the scroll bar.
|
void |
scroll(int amount)
Adjust the scroll value.
|
void |
scroll(java.lang.String amount)
Adjust the scroll bar by the unit amount or the block amount.
|
void |
setAutoScrollDelay(int delay)
Specifies how often the scrollbar will update itself when one of the scroll arrows is pressed.
|
void |
setBounds(java.awt.Rectangle bounds)
Set the bounds of the scroll bar.
|
void |
setExtent(int extent)
Set the extent.
|
void |
setKnobColor(java.awt.Color color1,
java.awt.Color color2)
Set the color of scroll knob.
|
void |
setLineColor(java.awt.Color color)
Set the color of the lines of the scroll bar boundary.
|
void |
setMaxValue(int maxValue)
Set the maximum value in the scroll range.
|
void |
setMinScrollKnobSize(int minSize)
Specifies the minimum size of the scrollbar knob, in pixels.
|
void |
setMinValue(int minValue)
Set the minimum value in the scroll range.
|
void |
setOpacity(double opacity)
Specifies the opacity of the scroll knob.
|
void |
setOrientation(java.lang.String orientation)
Set the scroll bar orientation.
|
void |
setUnitIncrement(int unitIncrement)
Set the unit increment.
|
void |
setValue(int value)
Set the value of the scroll bar.
|
void |
startAutoScroll(java.lang.String increment)
Start an auto-scroll operation.
|
void |
stopAutoScroll()
Stop an auto-scroll operation.
|
protected java.awt.Insets arrowInsets
protected int autoScrollDelay
autoScrollIncrement
every autoScrollDelay
milliseconds.protected java.lang.String autoScrollIncrement
UNIT_UP
, UNIT_DOWN
,
BLOCK_UP
, BLOCK_DOWN
.protected boolean autoScrolling
public static final java.lang.String BLOCK_DOWN
public static final java.lang.String BLOCK_UP
protected java.awt.Rectangle bounds
protected static final java.awt.Insets DEFAULT_ARROW_INSETS
protected static final int DEFAULT_AUTO_SCROLL_DELAY
protected static final java.awt.Color DEFAULT_LINE_COLOR
protected static final int DEFAULT_MAX_VALUE
protected static final int DEFAULT_MIN_SCROLL_KNOB_SIZE
protected static final int DEFAULT_MIN_VALUE
protected static final double DEFAULT_OPACITY
protected static final java.awt.Color DEFAULT_SCROLL_KNOB_COLOR1
protected static final java.awt.Color DEFAULT_SCROLL_KNOB_COLOR2
protected static final int DEFAULT_UNIT_INCREMENT
protected int extent
protected long frameNumber
protected java.awt.Color knobColor1
protected java.awt.Color knobColor2
protected java.awt.Color lineColor
protected int maxValue
protected int minScrollKnobSize
protected int minValue
protected long nextAutoScroll
protected double opacity
protected java.lang.String orientation
AVKey.HORIZONTAL
or AVKey.VERTICAL
.protected PickSupport pickSupport
protected int scrollArrowSize
protected java.awt.Rectangle scrollBounds
protected java.awt.Rectangle scrollDownBarBounds
protected HotSpot scrollDownBlockControl
protected HotSpot scrollDownControl
protected java.awt.Rectangle scrollDownControlBounds
protected java.awt.Rectangle scrollKnobBounds
protected ScrollBar.ScrollKnob scrollKnobControl
protected java.awt.Rectangle scrollUpBarBounds
protected HotSpot scrollUpBlockControl
protected HotSpot scrollUpControl
protected java.awt.Rectangle scrollUpControlBounds
public static final java.lang.String UNIT_DOWN
public static final java.lang.String UNIT_UP
protected int unitIncrement
protected int value
public ScrollBar(HotSpot parent)
parent
- The screen component that contains the scroll bar. Input events that cannot be handled by the
scroll bar will be passed to this component. May be null.public ScrollBar(HotSpot parent, java.lang.String orientation)
orientation
- Either AVKey.VERTICAL
or AVKey.HORIZONTAL
.parent
- The screen component that contains the scroll bar. Input events that cannot be handled by the
scroll bar will be passed to this component. May be null.protected boolean canDrawInBounds()
true
if the scroll bar is able to draw within the bounds, or false
if the bounds are too
small to draw without distortion.protected void computeBounds()
protected void doPick(DrawContext dc)
dc
- Current draw context.protected void draw(DrawContext dc)
dc
- Current draw context.protected void drawPickableQuad(DrawContext dc, java.lang.Object pickObject, java.awt.Rectangle bounds)
glBegin(GL.GL_QUADS)
and
glEnd()
.dc
- Current draw context.pickObject
- User object to attach to the picked object.bounds
- Bounds of the quad.protected void drawQuad(DrawContext dc, java.awt.Rectangle bounds)
glBegin(GL.GL_QUADS)
and glEnd()
.dc
- Current draw context.bounds
- Bounds of the quad.protected void drawTriangle(DrawContext dc, float rotation, java.awt.Rectangle bounds, java.awt.Insets insets)
dc
- Draw context.rotation
- Rotation to apply to the triangle. 0 rotation produces a triangle pointing to the right. Rotation
must be one of: 0, 90, -90, or 180.bounds
- The bounds of the scroll control. The arrow must be drawn within this rectangle.insets
- Insets to apply to the bounds.public int getAutoScrollDelay()
public int getBlockIncrement()
public java.awt.Rectangle getBounds()
public int getExtent()
setExtent(int)
public java.awt.Color[] getKnobColor()
setKnobColor(java.awt.Color, java.awt.Color)
,
getLineColor()
protected int getKnobSize(int scrollAreaSize)
scrollAreaSize
- The size of the scroll area, in pixels.public java.awt.Color getLineColor()
setLineColor(java.awt.Color)
,
getKnobColor()
public int getMaxValue()
getMinValue()
,
setMaxValue(int)
public int getMinScrollKnobSize()
public int getMinValue()
public double getOpacity()
public java.lang.String getOrientation()
AVKey.VERTICAL
or AVKey.HORIZONTAL
.protected int getScrollArrowSize()
public int getUnitIncrement()
setUnitIncrement(int)
public int getValue()
public double getValueAsPercentage()
protected void initializeUIControls(HotSpot parent)
parent
- The screen component that contains the scroll bar. Input events that cannot be handled by the
scroll bar will be passed to this component. May be null.public boolean isAutoScrolling()
startAutoScroll(String)
,
stopAutoScroll()
public void render(DrawContext dc)
render
in interface Renderable
dc
- the DrawContext
to be usedDrawContext
public void scroll(int amount)
amount
- Amount to add to the current value. A positive value indicates a scroll down; a negative value
indicates a scroll up.public void scroll(java.lang.String amount)
amount
- One of UNIT_UP
, UNIT_DOWN
, BLOCK_UP
, or BLOCK_DOWN
.public void setAutoScrollDelay(int delay)
delay
- Delay in milliseconds between scrollbar updates. A smaller number makes the scrollbar scroll faster,
a larger number makes it scroll slower. The delay may not be negative.public void setBounds(java.awt.Rectangle bounds)
bounds
- New bounds.public void setExtent(int extent)
min <= value <= value + extent <= max
extent
- New extent. If extent
is greater than the range of the scroll bar (max - min), then the
extent will be set to the maximum valid value.getExtent()
public void setKnobColor(java.awt.Color color1, java.awt.Color color2)
color1
- First color in the gradient.color2
- Second color in the gradient.getKnobColor()
,
setLineColor(java.awt.Color)
public void setLineColor(java.awt.Color color)
color
- Color for lines and scroll arrows.getLineColor()
,
setKnobColor(java.awt.Color, java.awt.Color)
public void setMaxValue(int maxValue)
maxValue
- New maximum.public void setMinScrollKnobSize(int minSize)
minSize
- Minimum size of the knob in pixels.public void setMinValue(int minValue)
minValue
- New minimum.public void setOpacity(double opacity)
opacity
- New opacity.public void setOrientation(java.lang.String orientation)
orientation
- The scroll bar orientation, either AVKey.VERTICAL
or AVKey.HORIZONTAL
.public void setUnitIncrement(int unitIncrement)
unitIncrement
- New unit increment. Must be a positive number.getUnitIncrement()
public void setValue(int value)
value
- New value.public void startAutoScroll(java.lang.String increment)
increment
- Amount to adjust scroll bar each time. One of UNIT_UP
, UNIT_DOWN
, BLOCK_UP
, or BLOCK_DOWN
.stopAutoScroll()
,
isAutoScrolling()
,
scroll(String)
public void stopAutoScroll()
startAutoScroll(String)
,
isAutoScrolling()