mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			701 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			701 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Java
		
	
	
	
| /* JScrollBar.java --
 | |
|    Copyright (C) 2002, 2004, 2005, 2006,  Free Software Foundation, Inc.
 | |
| 
 | |
| This file is part of GNU Classpath.
 | |
| 
 | |
| GNU Classpath is free software; you can redistribute it and/or modify
 | |
| it under the terms of the GNU General Public License as published by
 | |
| the Free Software Foundation; either version 2, or (at your option)
 | |
| any later version.
 | |
| 
 | |
| GNU Classpath is distributed in the hope that it will be useful, but
 | |
| WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
| General Public License for more details.
 | |
| 
 | |
| You should have received a copy of the GNU General Public License
 | |
| along with GNU Classpath; see the file COPYING.  If not, write to the
 | |
| Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | |
| 02110-1301 USA.
 | |
| 
 | |
| Linking this library statically or dynamically with other modules is
 | |
| making a combined work based on this library.  Thus, the terms and
 | |
| conditions of the GNU General Public License cover the whole
 | |
| combination.
 | |
| 
 | |
| As a special exception, the copyright holders of this library give you
 | |
| permission to link this library with independent modules to produce an
 | |
| executable, regardless of the license terms of these independent
 | |
| modules, and to copy and distribute the resulting executable under
 | |
| terms of your choice, provided that you also meet, for each linked
 | |
| independent module, the terms and conditions of the license of that
 | |
| module.  An independent module is a module which is not derived from
 | |
| or based on this library.  If you modify this library, you may extend
 | |
| this exception to your version of the library, but you are not
 | |
| obligated to do so.  If you do not wish to do so, delete this
 | |
| exception statement from your version. */
 | |
| 
 | |
| 
 | |
| package javax.swing;
 | |
| 
 | |
| import gnu.java.lang.CPStringBuilder;
 | |
| 
 | |
| import java.awt.Adjustable;
 | |
| import java.awt.Dimension;
 | |
| import java.awt.event.AdjustmentEvent;
 | |
| import java.awt.event.AdjustmentListener;
 | |
| import java.beans.PropertyChangeEvent;
 | |
| 
 | |
| import javax.accessibility.Accessible;
 | |
| import javax.accessibility.AccessibleContext;
 | |
| import javax.accessibility.AccessibleRole;
 | |
| import javax.accessibility.AccessibleState;
 | |
| import javax.accessibility.AccessibleStateSet;
 | |
| import javax.accessibility.AccessibleValue;
 | |
| import javax.swing.event.ChangeEvent;
 | |
| import javax.swing.event.ChangeListener;
 | |
| import javax.swing.plaf.ScrollBarUI;
 | |
| 
 | |
| /**
 | |
|  * The JScrollBar. Two buttons control how the values that the
 | |
|  * scroll bar can take. You can also drag the thumb or click the track
 | |
|  * to move the scroll bar. Typically, the JScrollBar is used with
 | |
|  * other components to translate the value of the bar to the viewable
 | |
|  * contents of the other components.
 | |
|  */
 | |
| public class JScrollBar extends JComponent implements Adjustable, Accessible
 | |
| {
 | |
|   /**
 | |
|    * Provides the accessibility features for the <code>JScrollBar</code>
 | |
|    * component.
 | |
|    */
 | |
|   protected class AccessibleJScrollBar extends JComponent.AccessibleJComponent
 | |
|     implements AccessibleValue
 | |
|   {
 | |
|     private static final long serialVersionUID = -7758162392045586663L;
 | |
| 
 | |
|     /**
 | |
|      * Creates a new <code>AccessibleJScrollBar</code> instance.
 | |
|      */
 | |
|     protected AccessibleJScrollBar()
 | |
|     {
 | |
|       super();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Returns a set containing the current state of the {@link JScrollBar}
 | |
|      * component.
 | |
|      *
 | |
|      * @return The accessible state set.
 | |
|      */
 | |
|     public AccessibleStateSet getAccessibleStateSet()
 | |
|     {
 | |
|       AccessibleStateSet result = super.getAccessibleStateSet();
 | |
|       if (orientation == JScrollBar.HORIZONTAL)
 | |
|         result.add(AccessibleState.HORIZONTAL);
 | |
|       else if (orientation == JScrollBar.VERTICAL)
 | |
|         result.add(AccessibleState.VERTICAL);
 | |
|       return result;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Returns the accessible role for the <code>JScrollBar</code> component.
 | |
|      *
 | |
|      * @return {@link AccessibleRole#SCROLL_BAR}.
 | |
|      */
 | |
|     public AccessibleRole getAccessibleRole()
 | |
|     {
 | |
|       return AccessibleRole.SCROLL_BAR;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Returns an object that provides access to the current, minimum and
 | |
|      * maximum values.
 | |
|      *
 | |
|      * @return The accessible value.
 | |
|      */
 | |
|     public AccessibleValue getAccessibleValue()
 | |
|     {
 | |
|       return this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Returns the current value of the {@link JScrollBar} component, as an
 | |
|      * {@link Integer}.
 | |
|      *
 | |
|      * @return The current value of the {@link JScrollBar} component.
 | |
|      */
 | |
|     public Number getCurrentAccessibleValue()
 | |
|     {
 | |
|       return new Integer(getValue());
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Sets the current value of the {@link JScrollBar} component and sends a
 | |
|      * {@link PropertyChangeEvent} (with the property name
 | |
|      * {@link AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all registered
 | |
|      * listeners.  If the supplied value is <code>null</code>, this method
 | |
|      * does nothing and returns <code>false</code>.
 | |
|      *
 | |
|      * @param value  the new slider value (<code>null</code> permitted).
 | |
|      *
 | |
|      * @return <code>true</code> if the slider value is updated, and
 | |
|      *     <code>false</code> otherwise.
 | |
|      */
 | |
|     public boolean setCurrentAccessibleValue(Number value)
 | |
|     {
 | |
|       if (value == null)
 | |
|         return false;
 | |
|       Number oldValue = getCurrentAccessibleValue();
 | |
|       setValue(value.intValue());
 | |
|       firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY, oldValue,
 | |
|                          new Integer(getValue()));
 | |
|       return true;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Returns the minimum value of the {@link JScrollBar} component, as an
 | |
|      * {@link Integer}.
 | |
|      *
 | |
|      * @return The minimum value of the {@link JScrollBar} component.
 | |
|      */
 | |
|     public Number getMinimumAccessibleValue()
 | |
|     {
 | |
|       return new Integer(getMinimum());
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Returns the maximum value of the {@link JScrollBar} component, as an
 | |
|      * {@link Integer}.
 | |
|      *
 | |
|      * @return The maximum value of the {@link JScrollBar} component.
 | |
|      */
 | |
|     public Number getMaximumAccessibleValue()
 | |
|     {
 | |
|       return new Integer(getMaximum() - model.getExtent());
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Listens for changes on the model and fires them to interested
 | |
|    * listeners on the JScrollBar, after re-sourcing them.
 | |
|    */
 | |
|   private class ScrollBarChangeListener
 | |
|     implements ChangeListener
 | |
|   {
 | |
| 
 | |
|     public void stateChanged(ChangeEvent event)
 | |
|     {
 | |
|       Object o = event.getSource();
 | |
|       if (o instanceof BoundedRangeModel)
 | |
|         {
 | |
|           BoundedRangeModel m = (BoundedRangeModel) o;
 | |
|           fireAdjustmentValueChanged(AdjustmentEvent.ADJUSTMENT_VALUE_CHANGED,
 | |
|                                      AdjustmentEvent.TRACK, m.getValue(),
 | |
|                                      m.getValueIsAdjusting());
 | |
|         }
 | |
|     }
 | |
| 
 | |
|   }
 | |
| 
 | |
|   private static final long serialVersionUID = -8195169869225066566L;
 | |
| 
 | |
|   /** How much the thumb moves when moving in a block. */
 | |
|   protected int blockIncrement = 10;
 | |
| 
 | |
|   /** The model that holds the scroll bar's data. */
 | |
|   protected BoundedRangeModel model;
 | |
| 
 | |
|   /** The orientation of the scroll bar. */
 | |
|   protected int orientation = SwingConstants.VERTICAL;
 | |
| 
 | |
|   /** How much the thumb moves when moving in a unit. */
 | |
|   protected int unitIncrement = 1;
 | |
| 
 | |
|   /**
 | |
|    * This ChangeListener forwards events fired from the model and re-sources
 | |
|    * them to originate from this JScrollBar.
 | |
|    */
 | |
|   private ChangeListener sbChangeListener;
 | |
| 
 | |
|   /**
 | |
|    * Creates a new horizontal JScrollBar object with a minimum
 | |
|    * of 0, a maxmium of 100, a value of 0 and an extent of 10.
 | |
|    */
 | |
|   public JScrollBar()
 | |
|   {
 | |
|     this(SwingConstants.VERTICAL, 0, 10, 0, 100);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Creates a new JScrollBar object with a minimum of 0, a
 | |
|    * maximum of 100, a value of 0, an extent of 10 and the given
 | |
|    * orientation.
 | |
|    *
 | |
|    * @param orientation The orientation of the JScrollBar.
 | |
|    */
 | |
|   public JScrollBar(int orientation)
 | |
|   {
 | |
|     this(orientation, 0, 10, 0, 100);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Creates a new JScrollBar object with the given orientation,
 | |
|    * value, min, max, and extent.
 | |
|    *
 | |
|    * @param orientation The orientation to use.
 | |
|    * @param value The value to use.
 | |
|    * @param extent The extent to use.
 | |
|    * @param min The minimum value of the scrollbar.
 | |
|    * @param max The maximum value of the scrollbar.
 | |
|    */
 | |
|   public JScrollBar(int orientation, int value, int extent, int min, int max)
 | |
|   {
 | |
|     model = new DefaultBoundedRangeModel(value, extent, min, max);
 | |
|     sbChangeListener = new ScrollBarChangeListener();
 | |
|     model.addChangeListener(sbChangeListener);
 | |
|     if (orientation != SwingConstants.HORIZONTAL
 | |
|         && orientation != SwingConstants.VERTICAL)
 | |
|       throw new IllegalArgumentException(orientation
 | |
|                                          + " is not a legal orientation");
 | |
|     this.orientation = orientation;
 | |
|     updateUI();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the UI of this scrollbar to
 | |
|    * the given UI.
 | |
|    *
 | |
|    * @param ui The UI to use with this scrollbar.
 | |
|    */
 | |
|   public void setUI(ScrollBarUI ui)
 | |
|   {
 | |
|     super.setUI(ui);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the UI that is being used
 | |
|    * with this scrollbar.
 | |
|    *
 | |
|    * @return The scrollbar's current UI.
 | |
|    */
 | |
|   public ScrollBarUI getUI()
 | |
|   {
 | |
|     return (ScrollBarUI) ui;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method changes the UI to be the
 | |
|    * default for the current look and feel.
 | |
|    */
 | |
|   public void updateUI()
 | |
|   {
 | |
|     setUI((ScrollBarUI) UIManager.getUI(this));
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns an identifier to
 | |
|    * choose the correct UI delegate for the
 | |
|    * scrollbar.
 | |
|    *
 | |
|    * @return The identifer to choose the UI delegate; "ScrollBarUI"
 | |
|    */
 | |
|   public String getUIClassID()
 | |
|   {
 | |
|     return "ScrollBarUI";
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the orientation of the scrollbar.
 | |
|    *
 | |
|    * @return The orientation of the scrollbar.
 | |
|    */
 | |
|   public int getOrientation()
 | |
|   {
 | |
|     return orientation;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the orientation of the scrollbar.
 | |
|    *
 | |
|    * @param orientation The orientation of the scrollbar.
 | |
|    */
 | |
|   public void setOrientation(int orientation)
 | |
|   {
 | |
|     if (orientation != SwingConstants.HORIZONTAL
 | |
|         && orientation != SwingConstants.VERTICAL)
 | |
|       throw new IllegalArgumentException("orientation must be one of HORIZONTAL or VERTICAL");
 | |
|     if (orientation != this.orientation)
 | |
|       {
 | |
|         int oldOrientation = this.orientation;
 | |
|         this.orientation = orientation;
 | |
|         firePropertyChange("orientation", oldOrientation,
 | |
|                            this.orientation);
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the model being used with
 | |
|    * the scrollbar.
 | |
|    *
 | |
|    * @return The scrollbar's model.
 | |
|    */
 | |
|   public BoundedRangeModel getModel()
 | |
|   {
 | |
|     return model;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the model to use with
 | |
|    * the scrollbar.
 | |
|    *
 | |
|    * @param newModel The new model to use with the scrollbar.
 | |
|    */
 | |
|   public void setModel(BoundedRangeModel newModel)
 | |
|   {
 | |
|     BoundedRangeModel oldModel = model;
 | |
|     if (oldModel != null)
 | |
|       oldModel.removeChangeListener(sbChangeListener);
 | |
|     model = newModel;
 | |
|     if (model != null)
 | |
|       model.addChangeListener(sbChangeListener);
 | |
|     firePropertyChange("model", oldModel, model);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns how much the scrollbar's value
 | |
|    * should change for a unit increment depending on the
 | |
|    * given direction.
 | |
|    *
 | |
|    * @param direction The direction to scroll in.
 | |
|    *
 | |
|    * @return The amount the scrollbar's value will change given the direction.
 | |
|    */
 | |
|   public int getUnitIncrement(int direction)
 | |
|   {
 | |
|     return unitIncrement;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the unitIncrement property.
 | |
|    *
 | |
|    * @param unitIncrement The new unitIncrement.
 | |
|    */
 | |
|   public void setUnitIncrement(int unitIncrement)
 | |
|   {
 | |
|     if (unitIncrement != this.unitIncrement)
 | |
|       {
 | |
|         int oldInc = this.unitIncrement;
 | |
|         this.unitIncrement = unitIncrement;
 | |
|         firePropertyChange("unitIncrement", oldInc,
 | |
|                            this.unitIncrement);
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * The method returns how much the scrollbar's value
 | |
|    * should change for a block increment depending on
 | |
|    * the given direction.
 | |
|    *
 | |
|    * @param direction The direction to scroll in.
 | |
|    *
 | |
|    * @return The amount the scrollbar's value will change given the direction.
 | |
|    */
 | |
|   public int getBlockIncrement(int direction)
 | |
|   {
 | |
|     return blockIncrement;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the blockIncrement property.
 | |
|    *
 | |
|    * @param blockIncrement The new blockIncrement.
 | |
|    */
 | |
|   public void setBlockIncrement(int blockIncrement)
 | |
|   {
 | |
|     if (blockIncrement != this.blockIncrement)
 | |
|       {
 | |
|         int oldInc = this.blockIncrement;
 | |
|         this.blockIncrement = blockIncrement;
 | |
|         firePropertyChange("blockIncrement", oldInc,
 | |
|                            this.blockIncrement);
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the unitIncrement.
 | |
|    *
 | |
|    * @return The unitIncrement.
 | |
|    */
 | |
|   public int getUnitIncrement()
 | |
|   {
 | |
|     return unitIncrement;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the blockIncrement.
 | |
|    *
 | |
|    * @return The blockIncrement.
 | |
|    */
 | |
|   public int getBlockIncrement()
 | |
|   {
 | |
|     return blockIncrement;
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the value of the scrollbar.
 | |
|    *
 | |
|    * @return The value of the scrollbar.
 | |
|    */
 | |
|   public int getValue()
 | |
|   {
 | |
|     return model.getValue();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method changes the value of the scrollbar.
 | |
|    *
 | |
|    * @param value The new value of the scrollbar.
 | |
|    */
 | |
|   public void setValue(int value)
 | |
|   {
 | |
|     model.setValue(value);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the visible amount (AKA extent).
 | |
|    * The visible amount can be used by UI delegates to
 | |
|    * determine the size of the thumb.
 | |
|    *
 | |
|    * @return The visible amount (AKA extent).
 | |
|    */
 | |
|   public int getVisibleAmount()
 | |
|   {
 | |
|     return model.getExtent();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the visible amount (AKA extent).
 | |
|    *
 | |
|    * @param extent The visible amount (AKA extent).
 | |
|    */
 | |
|   public void setVisibleAmount(int extent)
 | |
|   {
 | |
|     model.setExtent(extent);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the minimum value of the scrollbar.
 | |
|    *
 | |
|    * @return The minimum value of the scrollbar.
 | |
|    */
 | |
|   public int getMinimum()
 | |
|   {
 | |
|     return model.getMinimum();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the minimum value of the scrollbar.
 | |
|    *
 | |
|    * @param minimum The minimum value of the scrollbar.
 | |
|    */
 | |
|   public void setMinimum(int minimum)
 | |
|   {
 | |
|     model.setMinimum(minimum);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the maximum value of the scrollbar.
 | |
|    *
 | |
|    * @return The maximum value of the scrollbar.
 | |
|    */
 | |
|   public int getMaximum()
 | |
|   {
 | |
|     return model.getMaximum();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the maximum value of the scrollbar.
 | |
|    *
 | |
|    * @param maximum The maximum value of the scrollbar.
 | |
|    */
 | |
|   public void setMaximum(int maximum)
 | |
|   {
 | |
|     model.setMaximum(maximum);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the model's isAjusting value.
 | |
|    *
 | |
|    * @return The model's isAdjusting value.
 | |
|    */
 | |
|   public boolean getValueIsAdjusting()
 | |
|   {
 | |
|     return model.getValueIsAdjusting();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the model's isAdjusting value.
 | |
|    *
 | |
|    * @param b The new isAdjusting value.
 | |
|    */
 | |
|   public void setValueIsAdjusting(boolean b)
 | |
|   {
 | |
|     model.setValueIsAdjusting(b);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method sets the value, extent, minimum and
 | |
|    * maximum.
 | |
|    *
 | |
|    * @param newValue The new value.
 | |
|    * @param newExtent The new extent.
 | |
|    * @param newMin The new minimum.
 | |
|    * @param newMax The new maximum.
 | |
|    */
 | |
|   public void setValues(int newValue, int newExtent, int newMin, int newMax)
 | |
|   {
 | |
|     model.setRangeProperties(newValue, newExtent, newMin, newMax,
 | |
|                              model.getValueIsAdjusting());
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method adds an AdjustmentListener to the scroll bar.
 | |
|    *
 | |
|    * @param listener The listener to add.
 | |
|    */
 | |
|   public void addAdjustmentListener(AdjustmentListener listener)
 | |
|   {
 | |
|     listenerList.add(AdjustmentListener.class, listener);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method removes an AdjustmentListener from the scroll bar.
 | |
|    *
 | |
|    * @param listener The listener to remove.
 | |
|    */
 | |
|   public void removeAdjustmentListener(AdjustmentListener listener)
 | |
|   {
 | |
|     listenerList.remove(AdjustmentListener.class, listener);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns an arry of all AdjustmentListeners listening to
 | |
|    * this scroll bar.
 | |
|    *
 | |
|    * @return An array of AdjustmentListeners listening to this scroll bar.
 | |
|    */
 | |
|   public AdjustmentListener[] getAdjustmentListeners()
 | |
|   {
 | |
|     return (AdjustmentListener[]) listenerList.getListeners(AdjustmentListener.class);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method is called to fired AdjustmentEvents to the listeners
 | |
|    * of this scroll bar. All AdjustmentEvents that are fired
 | |
|    * will have an ID of ADJUSTMENT_VALUE_CHANGED and a type of
 | |
|    * TRACK.
 | |
|    *
 | |
|    * @param id The ID of the adjustment event.
 | |
|    * @param type The Type of change.
 | |
|    * @param value The new value for the property that was changed..
 | |
|    */
 | |
|   protected void fireAdjustmentValueChanged(int id, int type, int value)
 | |
|   {
 | |
|     fireAdjustmentValueChanged(id, type, value, getValueIsAdjusting());
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Helper method for firing adjustment events that can have their
 | |
|    * isAdjusting field modified.
 | |
|    *
 | |
|    * This is package private to avoid an accessor method.
 | |
|    *
 | |
|    * @param id the ID of the event
 | |
|    * @param type the type of the event
 | |
|    * @param value the value
 | |
|    * @param isAdjusting if the scrollbar is adjusting or not
 | |
|    */
 | |
|   void fireAdjustmentValueChanged(int id, int type, int value,
 | |
|                                           boolean isAdjusting)
 | |
|   {
 | |
|     Object[] adjustmentListeners = listenerList.getListenerList();
 | |
|     AdjustmentEvent adjustmentEvent = new AdjustmentEvent(this, id, type,
 | |
|                                                           value, isAdjusting);
 | |
|     for (int i = adjustmentListeners.length - 2; i >= 0; i -= 2)
 | |
|       {
 | |
|         if (adjustmentListeners[i] == AdjustmentListener.class)
 | |
|           ((AdjustmentListener) adjustmentListeners[i + 1]).adjustmentValueChanged(adjustmentEvent);
 | |
|       }
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the minimum size for this scroll bar.
 | |
|    *
 | |
|    * @return The minimum size.
 | |
|    */
 | |
|   public Dimension getMinimumSize()
 | |
|   {
 | |
|     return ui.getMinimumSize(this);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method returns the maximum size for this scroll bar.
 | |
|    *
 | |
|    * @return The maximum size.
 | |
|    */
 | |
|   public Dimension getMaximumSize()
 | |
|   {
 | |
|     return ui.getMaximumSize(this);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * This method overrides the setEnabled in JComponent.
 | |
|    * When the scroll bar is disabled, the knob cannot
 | |
|    * be moved.
 | |
|    *
 | |
|    * @param x Whether the scrollbar is enabled.
 | |
|    */
 | |
|   public void setEnabled(boolean x)
 | |
|   {
 | |
|     // nothing special needs to be done here since we
 | |
|     // just check the enabled setting before changing the value.
 | |
|     super.setEnabled(x);
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Returns a string describing the attributes for the <code>JScrollBar</code>
 | |
|    * component, for use in debugging.  The return value is guaranteed to be
 | |
|    * non-<code>null</code>, but the format of the string may vary between
 | |
|    * implementations.
 | |
|    *
 | |
|    * @return A string describing the attributes of the <code>JScrollBar</code>.
 | |
|    */
 | |
|   protected String paramString()
 | |
|   {
 | |
|     CPStringBuilder sb = new CPStringBuilder(super.paramString());
 | |
|     sb.append(",blockIncrement=").append(blockIncrement);
 | |
|     sb.append(",orientation=");
 | |
|     if (this.orientation == JScrollBar.HORIZONTAL)
 | |
|       sb.append("HORIZONTAL");
 | |
|     else
 | |
|       sb.append("VERTICAL");
 | |
|     sb.append(",unitIncrement=").append(unitIncrement);
 | |
|     return sb.toString();
 | |
|   }
 | |
| 
 | |
|   /**
 | |
|    * Returns the object that provides accessibility features for this
 | |
|    * <code>JScrollBar</code> component.
 | |
|    *
 | |
|    * @return The accessible context (an instance of
 | |
|    *     {@link AccessibleJScrollBar}).
 | |
|    */
 | |
|   public AccessibleContext getAccessibleContext()
 | |
|   {
 | |
|     if (accessibleContext == null)
 | |
|       accessibleContext = new AccessibleJScrollBar();
 | |
|     return accessibleContext;
 | |
|   }
 | |
| }
 |