blob: 88a8d1fec5a497ecc54675aa76ee7a339637476c [file] [log] [blame]
/* Copyright (C) 2000 Free Software Foundation
This file is part of libjava.
This software is copyrighted work licensed under the terms of the
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
details. */
package java.awt;
import java.awt.event.*;
import java.awt.peer.ScrollbarPeer;
import java.awt.peer.ComponentPeer;
/**
* @author Tom Tromey <tromey@cygnus.com>
* @date April 12, 2000
*/
public class Scrollbar extends Component implements Adjustable
{
public Scrollbar ()
{
this (VERTICAL, 0, 10, 0, 100);
}
public Scrollbar (int orientation)
{
this (orientation, 0, 10, 0, 100);
}
public Scrollbar (int orientation, int value, int visible,
int minimum, int maximum)
{
if (orientation != HORIZONTAL && orientation != VERTICAL)
throw new IllegalArgumentException ();
if (maximum < minimum)
maximum = minimum;
if (value < minimum)
value = minimum;
if (value > maximum)
value = maximum;
this.orientation = orientation;
this.value = value;
this.visible = visible;
this.minimum = minimum;
this.maximum = maximum;
this.unit = 1;
this.block = 0; // FIXME
}
public void addNotify ()
{
if (peer == null)
peer = getToolkit ().createScrollbar (this);
}
public int getOrientation ()
{
return orientation;
}
public void setOrientation (int orientation)
{
if (orientation != HORIZONTAL && orientation != VERTICAL)
throw new IllegalArgumentException ();
this.orientation = orientation;
}
public int getValue ()
{
return value;
}
public void setValue (int value)
{
setValues (value, visible, minimum, maximum);
}
public int getMinimum ()
{
return minimum;
}
public void setMinimum (int minimum)
{
setValues (value, visible, minimum, maximum);
}
public int getMaximum ()
{
return maximum;
}
public void setMaximum (int maximum)
{
setValues (value, visible, minimum, maximum);
}
public int getVisibleAmount ()
{
return visible;
}
public int getVisible ()
{
return visible;
}
public void setVisibleAmount (int visible)
{
setValues (value, visible, minimum, maximum);
}
public void setUnitIncrement (int v)
{
unit = v;
if (peer != null)
{
ScrollbarPeer sp = (ScrollbarPeer) peer;
sp.setLineIncrement (v);
}
}
/** @deprecated */
public void setLineIncrement (int v)
{
setUnitIncrement (v);
}
public int getUnitIncrement ()
{
return unit;
}
public int getLineIncrement ()
{
return unit;
}
public void setBlockIncrement (int v)
{
block = v;
if (peer != null)
{
ScrollbarPeer sp = (ScrollbarPeer) peer;
sp.setPageIncrement (v);
}
}
public void setPageIncrement (int v)
{
setBlockIncrement (v);
}
public int getBlockIncrement ()
{
return block;
}
public int getPageIncrement ()
{
return block;
}
public synchronized void setValues (int value, int visible,
int minimum, int maximum)
{
if (maximum < minimum)
maximum = minimum;
if (value < minimum)
value = minimum;
if (value > maximum)
value = maximum;
this.value = value;
this.visible = visible;
this.minimum = minimum;
this.maximum = maximum;
if (peer != null)
{
ScrollbarPeer sp = (ScrollbarPeer) peer;
sp.setValues (value, visible, minimum, maximum);
}
}
public void addAdjustmentListener (AdjustmentListener l)
{
listeners = AWTEventMulticaster.add (listeners, l);
}
public void removeAdjustmentListener (AdjustmentListener l)
{
listeners = AWTEventMulticaster.remove (listeners, l);
}
protected void processEvent (AWTEvent e)
{
if (e instanceof AdjustmentEvent)
processAdjustmentEvent ((AdjustmentEvent) e);
else
super.processEvent (e);
}
protected void processAdjustmentEvent (AdjustmentEvent e)
{
if (listeners != null)
listeners.adjustmentValueChanged (e);
}
protected String paramString ()
{
return ("Scrollbar["
+ ((orientation == VERTICAL) ? "VERTICAL" : "HORIZONTAL") + ","
+ value + ","
+ visible + ","
+ minimum + ","
+ maximum + ","
+ unit + ","
+ block + "]");
}
private AdjustmentListener listeners;
private int orientation;
private int value;
private int visible;
private int minimum;
private int maximum;
private int unit;
private int block;
}