summaryrefslogtreecommitdiff
path: root/libjava/javax/swing/JProgressBar.java
diff options
context:
space:
mode:
authorgraydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-17 21:29:02 +0000
committergraydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-17 21:29:02 +0000
commit26e56d50901d27a67646c97e14b3e71cec89ec68 (patch)
tree02790a2b250b62643a1de68b63bd078238bfaf46 /libjava/javax/swing/JProgressBar.java
parentf28cd43a6ebd2e92792019fc84a5ac1c42c8fd09 (diff)
downloadgcc-26e56d50901d27a67646c97e14b3e71cec89ec68.tar.gz
2004-03-12 Graydon Hoare <graydon@redhat.com>
* gnu/java/awt/peer/gtk/GdkGraphics2D.java: Clipping fixes. * javax/swing/JComponent.java (paint): Use persistent double buffer. * javax/swing/JList.java (ListListener): Revalidate on changes. * javax/swing/JScrollPane.java: Reimplement. * javax/swing/JViewport.java: Reimplement. * javax/swing/ScrollPaneLayout.java: Reimplement. * javax/swing/ViewportLayout.java: Tidy up. * javax/swing/plaf/basic/BasicButtonListener.java: Remove printlns. * javax/swing/plaf/basic/BasicScrollPaneUI.java: Reimplement. * javax/swing/plaf/basic/BasicSliderUI.java: Handle missing labels. * javax/swing/plaf/basic/BasicViewportUI.java: Implement in terms of backing store only. 2004-03-11 Thomas Fitzsimmons <fitzsim@redhat.com> * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (window_wm_protocols_filter): New function. (window_focus_in_cb): Remove function. (window_focus_out_cb): Likewise. (window_focus_or_active_state_change_cb): New function. (create): Add filter that removes WM_TAKE_FOCUS client messages. (connectSignals): Don't attach handlers to focus-in-event or focus-out-event signals. Handle notify signal. 2004-03-11 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java (gtkSetLabel): New native method declaration. (setLabel): Use gtkSetLabel. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c (Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetLabel): New method. 2004-03-10 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics.java (setColor): Default to black when color argument is null. 2004-03-10 Kim Ho <kho@redhat.com> * java/awt/Container.java: Remove check for drag events. 2004-03-10 Kim Ho <kho@redhat.com> * java/awt/Container.java: (visitChild): Remove candidate clip. Use the component clip to intersect. * gnu/java/awt/peer/gtk/GtkComponentPeer.java: (handleEvent): Use the PaintEvent's clip. 2004-03-10 Kim Ho <kho@redhat.com> * gnu/java/awt/peer/gtk/GtkComponentPeer.java: (handleEvent): Don't set the clip for the Graphics object. 2004-03-09 Graydon Hoare <graydon@redhat.com> * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c: Fix double <-> fixed macros, reset font transform. * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c: Likewise. 2004-03-09�� Kim Ho <kho@redhat.com> * java/awt/Container.java: (visitChild): Move the x and y coordinate of the component rectangle to correct position. (handleEvent): Forward drag events to the pressed component. * javax/swing/plaf/basic/BasicScrollBarUI.java: Fix comments. (ArrowButtonListener::mousePressed): Stop the existing timer. (mouseDragged): Implement. (TrackListener::mousePressed): Only react if the press doesn't occur on the thumb, otherwise just set the offset. (TrackListener::mouseReleased): Unset the isAdjusting value. (createIncreaseIcon): Switch icon. (createDecreaseIcon): Switch icon. (calculatePreferredSize): Use width. (getThumbBounds): Use the top as the lower value. (layoutVScrollBar): Switch the button locations. (paintIncreaseHighlight): Paint correct side of thumb. (paintDecreaseHighlight): ditto. (valueForYPosition): Use top as the lower value. * javax/swing/plaf/basic/BasicSliderUI.java: Fix comments. (mouseDragged): Implement. (mousePressed): Only react when the thumb isn't pressed, otherwise just set offset. (mouseReleased): Handle a release of the thumb. (scrollDueToClickInTrack): Stop the timer first. * javax/swing/JProgressBar.java: (setString): Fix change condition. * javax/swing/JSeparator.java: Remove println's. 2004-03-08 David Jee <djee@redhat.com> * java/awt/image/AffineTransformOp.java: (filter): Use Graphics2D interface instead of directly using the GdkGraphics2D peer. 2004-03-05 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GtkButtonPeer.java (handleEvent): Action events are generated upon MOUSE_RELEASED. * java/awt/Container.java (acquireComponentForMouseEvent): Fixed. (handleEvent): Fixed. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (state_to_awt_mods_with_button_states): New method. (pre_event_handler): Fixed mouse event generation. 2004-03-05 Olga Rodimina <rodimina@redhat.com> gnu/java/awt/peer/gtk/GdkGraphics2D.java (GdkGraphics2D (BufferedImage)): Initialize pixmap associated with specified BufferedImage. (setPaint): Changed implementation of Texture Paint to use AffineTransformOp. * java/awt/image/AffineTransformOp.java (createCompatibleDestRaster): Throw RasterFormatException if resulting width or height of raster is 0. 2004-03-04 Olga Rodimina <rodimina@redhat.com> * java/awt/image/AffineTransformOp.java: Removed unnecessary field interpolationType. Formatted some of the lines to be consistent with the GNU style. (AffineTransformOp): Create new RenderingHints containing specified interpolation type. (createCompatibleDestImage): Implemented. (createCompatibleDestRaster): Implemented. (filter): Implemented. (getBounds2D(BufferedImage)): Implemented. (getBounds2D(Raster)): Implemented. (getInterpolationType): Get interpolation value from rendering hints. 2004-03-04 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GtkContainerPeer.java (setFont): Check if child peers are null. 2004-03-04 Graydon Hoare <graydon@redhat.com> * testsuite/lib/libjava.exp (libjava_find_lib): Don't include .libs in -L option. (libjava_arguments): Add new libraries to argument list. 2004-03-04 Tom Tromey <tromey@redhat.com> * Makefile.in: Rebuilt. * Makefile.am (toolexeclib_LTLIBRARIES): Added lib-java-awt.la, lib-javax-swing.la, lib-java-applet.la, lib-java-beans.la. (misc_java_source_files): New macro. (swing_java_source_files): Likewise. (awt_java_source_files): Pruned. (applet_java_source_files): New macro. (beans_java_source_files): Likewise. (lib_java_applet_la_SOURCES): Likewise. (lib_java_awt_la_SOURCES): Likewise. (lib_javax_swing_la_SOURCES): Likewise. (lib_java_beans_la_SOURCES): Likewise. (all_java_object_files): Likewise. (%.lo: %.java): Use all_java_object_files. (all_java_source_files): Added new _SOURCES. (ordinary_java_source_files): Removed awt_java_source_files. 2004-03-02 Olga Rodimina <rodimina@redhat.com> * Makefile.am: Added java/awt/image/AffineTransformOp.java * Makefile.in: Re-generated. * java/awt/image/AffineTransformOp.java: New Class. 2004-03-01 Olga Rodimina <rodimina@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics2D.java (setPaint): Interpret correctly TexturePaint's anchor rectangle. (drawImage): Fixed scale factors of the affine transform. 2004-02-27 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics.java (GdkGraphics(Component)): Inherit font from component. (drawString): Use font style. * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java (gtkSetFont): New native method declaration. (setFont): New method. * gnu/java/awt/peer/gtk/GtkComponentPeer.java (gtkSetFont): New native method declaration. (setFont): Call new native method gtkSetFont. * gnu/java/awt/peer/gtk/GtkContainerPeer.java (setFont): For all child components who do not their fonts set, set their peers' fonts with this container's font. * gnu/java/awt/peer/gtk/GtkLabelPeer.java: Move all native method declarations to the top for readability. (gtkSetFont): New native method declaration. (setFont): New method. * java/awt/Component.java (setFont): Invalidate after setting the font. * java/awt/Container.java (invalidateTree): New method. (setFont): Invalidate the container tree after setting the font. * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString): Use font style. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c (Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkSetFont): New method. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkSetFont): New method. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c (Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkSetFont): New method. 2004-02-27 Olga Rodimina <rodimina@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics2D.java (updateBufferedImage): New helper function. Updates BufferedImage in memory if it was changed. (draw): changed to update BufferedImage in memory after this drawing operation (fill): Ditto. (draw3DRect): Ditto. (fill3DRect): Ditto. (clearRect): Ditto. (drawRaster): Ditto. (drawImage) : Ditto. Update only in case of GtkOffScreenImage with no affine transformation. (drawGlyphVector): Ditto. 2004-02-26 Olga Rodimina <rodimina@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics2D.java (isBufferedImageGraphics): New Helper function. Returns true if this graphics2d can be used to draw into buffered image and false otherwise. (updateImagePixels): New Helper function. Updates pixels in the BufferedImage. * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c (getImagePixels): New function. Returns pixels of the buffered image associated with this Graphics2D. 2004-02-26 David Jee <djee@redhat.com> * java/awt/BorderLayout.java (layoutContainer): Fix width and height calculations to ensure that they're non-negative. * java/awt/Component.java (setBackground): If c is null, inherit from closest ancestor whose background color is set. 2004-02-26�� Kim Ho�� <kho@redhat.com> * Makefile.am: Add new files. * Makefile.in: Re-generate. * javax/swing/JProgressBar.java: (JProgressBar(int, int int)): Throw IllegalArgumentException if orientation is invalid. (JProgressBar(BoundedRangeModel)): Create ChangeListener and register it. UpdateUI. (getChangeListeners): Implement. (setModel): Reset ChangeListener. * javax/swing/JScrollBar.java: Implement. * javax/swing/JSeparator.java: Implement. * javax/swing/JSlider.java: (JSlider(int, int, int, int)): Throw IllegalArgumentException if orientation is invalid. (getChangeListeners): Fix method name. * javax/swing/SwingUtilities.java: (layoutCompoundLabel): If there is no text, set the text rectangle dimensions to 0. * javax/swing/plaf/basic/BasicButtonUI.java: (paint): If there is no text, don't paint it. * javax/swing/plaf/basic/BasicScrollBarUI.java: Implement. * javax/swing/plaf/basic/BasicSeparatorUI.java: Implement. * javax/swing/plaf/basic/BasicSliderUI.java: (propertyChange): If the model changes, change the listeners accordingly. 2004-02-25 Graydon Hoare <graydon@redhat.com> * javax/swing/AbstractButton.java: Add "final" qualifiers. * javax/swing/JList.java: Reimplement. * javax/swing/DefaultListSelectionModel.java: Reimplement. * javax/swing/plaf/basic/BasicListUI.java: Reimplement. * javax/swing/plaf/basic/BasicLookAndFeel.java: Add "purple" values. * javax/swing/ListModel.java: Javadoc. * javax/swing/ListSelectionModel.java: Add missing methods. * javax/swing/AbstractListModel.java: Javadoc and corrections. * javax/swing/DefaultListModel.java: Javadoc and corrections. * javax/swing/ListModel.java: Javadoc and corrections. * javax/swing/DefaultListCellRenderer.java: Minor tidying. 2004-02-25 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GtkFontPeer.java (GtkFontPeer): Change default size to 12. * gnu/java/awt/peer/gtk/GtkToolkit.java (getFontPeer): Change default size to 12. (getClasspathFontPeer): Likewise. Set default name to "Default". * java/awt/Font.java (Font(Map)): Call Font(String,Map). (Font(String,Map)): If attrs is null, initialize it as an empty HashMap, which will ensure that the Font will get default attributes. 2004-02-25 David Jee <djee@redhat.com> * gnu/java/awt/peer/gtk/GtkFontPeer.java (GtkFontPeer(String,int)): Call the new constructor with size 1. (GtkFontPeer(String,int,int)): New constructor with size attribute. * gnu/java/awt/peer/gtk/GtkToolkit.java (getFontPeer(String,int)): Call the new overload method with size 1. (getFontPeer(String,int,int)): New method. Overloaded with size attribute. (getClasspathFontPeer): Set the size of the font. 2004-02-24 Olga Rodimina <rodimina@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics2D.java (bimage): New field. (GdkGraphics2D): New Constructor. Constructs Graphics object that can be used to draw into the Buffered Image. * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java: (GdkGraphicsEnvironment): Fixed to include public keyword. (createGraphics): Implemented. * gnu/java/awt/peer/gtk/GtkToolkit.java (getLocalGraphicsEnvironment): Implemented. * java/awt/GraphicsEnvironment.java: (getLocalGraphicsEnvironment): Implemented. * java/awt/image/BufferedImage.java: (createGraphics): Implemented. 2004-02-24 David Jee <djee@redhat.com> * java/awt/Component.java (eventTypeEnabled): Add MOUSE_MOVED and MOUSE_DRAGGED event types. * java/awt/Container.java (addNotifyContainerChildren): Fix event enabling. 2004-02-23 Olga Rodimina <rodimina@redhat.com> * Makefile.am: Added gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java * Makefile.in: Re-generated. * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java: New Class. 2004-02-19 Kim Ho <kho@redhat.com> * Makefile.am: Add BasicProgressBarUI * Makefile.in: Regenerate. * javax/swing/JProgressBar.java: Re-implement. * javax/swing/plaf/basic/BasicLookAndFeel.java Add constants for JProgressBar. * javax/swing/plaf/basic/BasicProgressBarUI.java Implement. * javax/swing/plaf/basic/BasicSliderUI.java Change comments. (calculateGeometry): New method (paint): Remove unnecessary size calculations. 2004-02-18 Olga Rodimina <rodimina@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics2D.java (drawRaster): Fixed small error that caused imageToUser transformation to be set incorrectly. (toString): Implemented. 2004-02-18 David Jee <djee@redhat.com> * java/awt/CardLayout.java (addLayoutComponent): Show the first component added as the default. (removeLayoutComponent): After removing, show the next component. (gotoComponent): If there is only one component, show it and return. 2004-02-18 Kim Ho <kho@redhat.com> * javax/swing/JSlider.java: Re-order modifiers. * javax/swing/JLabel.java: Re-order modifiers. * javax/swing/JComponent.java: (addPropertyChangeListener): Implement. (removePropertyChangeListener): ditto. (firePropertyChangeEvent): ditto. 2004-02-17 David Jee <djee@redhat.com> * java/awt/Component.java (show): Dispatch ComponentEvent via system event queue. (hide): Likewise. (move): Likewise. (resize): Likewise. (reshape): Likewise. * java/awt/Window.java (setBoundsCallback): Likewise. 2004-02-17 David Jee <djee@redhat.com> * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds): Use gtk_widget_set_size_request() instead of the deprecated gtk_widget_set_usize(). 2004-02-17 Kim Ho <kho@redhat.com> * javax/swing/JSlider.java: Fix comments and make property strings constants. (createStandardLabels): Use the labels preferred size as bounds. * javax/swing/plaf/basic/BasicSliderUI.java Fix comments. (ScrollHandler::actionPerformed): Don't calculate the timer stop value. Let the MouseListeners find the stop location. (getPreferredHorizontalSize): Re-implement. (getPreferredVerticalSize): ditto. (getMinimumHorizontalSize): ditto. (getMinimumVerticalSize): ditto. (getPreferredSize): ditto. (getMinimumSize): ditto. (getMaximumSize): ditto. (paintTicks): Use doubles to find the tick location. (paintHorizontalLabel):�� Use preferredSize as initial width and height. (paintVerticalLabel): ditto. 2004-02-17 Kim Ho <kho@redhat.com> * javax/swing/JLabel.java: Changed property strings to constants. (DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY): New property. (setText): Change mnemonic index if text is too short. (setDisplayedMnemonicIndex): Fire property change event. (getDisplayedMnemonicIndex): Remove check against short text. 2004-02-17 Olga Rodimina <rodimina@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics2D.java: (drawImage(img,xform,obs)): Invert xform before passing the xform to cairo. (drawImage(img,x,y,bgcolor,obs)): Implemented. (drawImage (img,x,y,w,h,bgcolor,obs)): Partly implemented. (drawImage (img,x,y,w,h,obs)): Implemented. (drawImage (img,dx1,dy1,dx2,dy2,sx1,sy1,sx2,sy2, bgcolor,obs)): Partly implemented. (drawImage (img,dx1,dy1,dx2,dy2,sx1,sy1,sx2,sy2,obs)): Implemented. * java/awt/image/BufferedImage.java: (copyData): if dest is null, create raster with same dimensions as the current image. 2004-02-16 Graydon Hoare <graydon@redhat.com> * javax/swing/plaf/basic/BasicLabelUI.java (getPreferredSize): Use layoutCL. * javax/swing/plaf/basic/BasicGraphicsUtils.java (getPreferredButtonSize): Start with empty view rect, layout using component's preferred alignment. * javax/swing/plaf/basic/BasicLookAndFeel.java: Add some Label and List defaults. 2004-02-16 David Jee <djee@redhat.com> * java/awt/Component.java (show): Dispatch COMPONENT_SHOWN ComponentEvent. (hide): Dispatch COMPONENT_HIDDEN ComponentEvent. (move): Erase old bounds and repaint new bounds. Dispatch COMPONENT_MOVED ComponentEvent. (resize): Erase old bounds and repaint new bounds. Dispatch COMPONENT_RESIZED ComponentEvent. (reshape): Dispatch COMPONENT_RESIZED and COMPONENT_MOVED ComponentEvents. * java/awt/Window.java (setBoundsCallback): Dispatch COMPONENT_RESIZED and COMPONENT_MOVED ComponentEvents. 2004-02-16 Olga Rodimina <rodimina@redhat.com> * gnu/java/awt/peer/gtk/GdkGraphics2D.java: (setRenderingHint): Added implementation of Interpolation rendering hints. (setRenderingHints): Ditto. * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: (drawPixels): fixed to allow user to choose type of filtering that should be used when displaying images. (cairoSurfaceSetFilter): New method. Sets filter type for interpolation of pixel values. 2004-02-16 David Jee <djee@redhat.com> * java/awt/GridBagLayout.java (calcCellSizes): Rows or columns with zero sizes should still be considered for extra space distribution. 2004-02-16 Kim Ho <kho@redhat.com> * javax/swing/JLabel.java: Re-implement. * javax/swing/plaf/basic/BasicLabelUI.java Re-implement. * javax/swing/plaf/basic/BasicLookAndFeel.java: Added constant. 2004-02-16�� Kim Ho�� <kho@redhat.com> * javax/swing/JSlider.java: Fix indentation and comments. (setModel): Remove null check to conform with Sun's. (setOrientation): Throw exception if not HORIZONTAL or VERTICAL. (getInverted): Use private variable instead of ComponentOrientation. (setInverted): ditto. * javax/swing/plaf/basic/BasicSliderUI.java: Fix indentation and comments. (propertyChange): Remove check for inverted slider, handle in main paint. (getMinimumSize): Return preferred size. (getMaximumSize): ditto. (calculateFocusRect): Don't relocate rectangle. (drawInverted): Return XOR of the slider's inversion and the component's orientation. (paint): Update leftToRightCache 2004-02-13 David Jee <djee@redhat.com> * java/awt/GridBagLayout.java (GetLayoutInfo): Fix weight and size distribution. Relocate repeated code to helper methods. (sortBySpan): New helper method. (distributeSizeAndWeight): Likewise. (calcCellWeights): Likewise. (calcCellSizes): Add comments. 2004-02-13 David Jee <djee@redhat.com> * java/awt/Component.java (show): Only do something if component is invisible at the moment. (hide): Only do something if component is visible at the moment. (reshape): If lightweight, erase old bounds and repaint new bounds. 2004-02-13�� Kim Ho�� <kho@redhat.com> * Makefile.am: Updated for new file. * Makefile.in: Regenerated. * javax/swing/JSlider.java: Reimplement. * javax/swing/SwingUtilities.java (layoutCompoundLabel): Use icon height instead of width. (paintComponent): Implement. * javax/swing/plaf/basic/BasicLookAndFeel.java: Add JSlider defaults. * javax/swing/plaf/basic/BasicSliderUI.java: Implement. New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79607 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/javax/swing/JProgressBar.java')
-rw-r--r--libjava/javax/swing/JProgressBar.java1054
1 files changed, 620 insertions, 434 deletions
diff --git a/libjava/javax/swing/JProgressBar.java b/libjava/javax/swing/JProgressBar.java
index 3e65c3873fa..f8bb4a5235b 100644
--- a/libjava/javax/swing/JProgressBar.java
+++ b/libjava/javax/swing/JProgressBar.java
@@ -47,442 +47,628 @@ import javax.accessibility.AccessibleStateSet;
import javax.accessibility.AccessibleValue;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
+import javax.swing.event.EventListenerList;
import javax.swing.plaf.ProgressBarUI;
+
/**
- * JProgressBar
- * @author Andrew Selkirk
- * @version 1.0
+ * <p>
+ * The ProgressBar is a widget that displays in two modes. In
+ * determinate mode, it displays fills a percentage of its bar
+ * based on its current value. In indeterminate mode, it creates
+ * box and bounces it between its bounds.
+ * </p>
+ *
+ * <p>
+ * JProgressBars have the following properties:
+ * </p>
+ *
+ * <table>
+ * <tr><th> Property </td><th> Stored in </td><th> Bound? </td></tr>
+ * <tr><td> borderPainted </td><td> progressBar </td><td> yes </td></tr>
+ * <tr><td> changeListeners </td><td> progressBar </td><td> no </td></tr>
+ * <tr><td> indeterminate </td><td> progressBar </td><td> yes </td></tr>
+ * <tr><td> maximum </td><td> model </td><td> no </td></tr>
+ * <tr><td> minimum </td><td> model </td><td> no </td></tr>
+ * <tr><td> model </td><td> progressBar </td><td> no </td></tr>
+ * <tr><td> orientation </td><td> progressBar </td><td> yes </td></tr>
+ * <tr><td> percentComplete </td><td> progressBar </td><td> no </td></tr>
+ * <tr><td> string </td><td> progressBar </td><td> yes </td></tr>
+ * <tr><td> stringPainted </td><td> progressBar </td><td> yes </td></tr>
+ * <tr><td> value </td><td> model </td><td> no </td></tr>
+ * </table>
*/
-public class JProgressBar extends JComponent implements SwingConstants, Accessible
+public class JProgressBar extends JComponent implements SwingConstants,
+ Accessible
{
-
- //-------------------------------------------------------------
- // Classes ----------------------------------------------------
- //-------------------------------------------------------------
-
-
- /**
- * AccessibleJProgressBar
- */
- protected class AccessibleJProgressBar extends AccessibleJComponent
- implements AccessibleValue {
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor AccessibleJProgressBar
- * @param component TODO
- */
- protected AccessibleJProgressBar(JProgressBar component) {
- super(component);
- // TODO
- } // AccessibleJProgressBar()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * getAccessibleStateSet
- * @returns AccessibleStateSet
- */
- public AccessibleStateSet getAccessibleStateSet() {
- return null; // TODO
- } // getAccessibleStateSet()
-
- /**
- * getAccessibleRole
- * @returns AccessibleRole
- */
- public AccessibleRole getAccessibleRole() {
- return AccessibleRole.PROGRESS_BAR;
- } // getAccessibleRole()
-
- /**
- * getAccessibleValue
- * @returns AccessibleValue
- */
- public AccessibleValue getAccessibleValue() {
- return null; // TODO
- } // getAccessibleValue()
-
- /**
- * getCurrentAccessibleValue
- * @returns Number
- */
- public Number getCurrentAccessibleValue() {
- return null; // TODO
- } // getCurrentAccessibleValue()
-
- /**
- * setCurrentAccessibleValue
- * @param value0 TODO
- * @returns boolean
- */
- public boolean setCurrentAccessibleValue(Number value0) {
- return false; // TODO
- } // setCurrentAccessibleValue()
-
- /**
- * getMinimumAccessibleValue
- * @returns Number
- */
- public Number getMinimumAccessibleValue() {
- return null; // TODO
- } // getMinimumAccessibleValue()
-
- /**
- * getMaximumAccessibleValue
- * @returns Number
- */
- public Number getMaximumAccessibleValue() {
- return null; // TODO
- } // getMaximumAccessibleValue()
-
-
- } // AccessibleJProgressBar
-
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * uiClassID
- */
- private static final String uiClassID = "ProgressBarUI";
-
- /**
- * orientation
- */
- protected int orientation;
-
- /**
- * paintBorder
- */
- protected boolean paintBorder;
-
- /**
- * model
- */
- protected BoundedRangeModel model;
-
- /**
- * progressString
- */
- protected String progressString;
-
- /**
- * paintString
- */
- protected boolean paintString;
-
- /**
- * changeEvent
- */
- protected transient ChangeEvent changeEvent;
-
- /**
- * changeListener
- */
- protected ChangeListener changeListener;
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor JProgressBar
- */
- public JProgressBar() {
- // TODO
- } // JProgressBar()
-
- /**
- * Constructor JProgressBar
- * @param orientation TODO
- */
- public JProgressBar(int orientation) {
- // TODO
- } // JProgressBar()
-
- /**
- * Constructor JProgressBar
- * @param minimum TODO
- * @param maximum TODO
- */
- public JProgressBar(int minimum, int maximum) {
- // TODO
- } // JProgressBar()
-
- /**
- * Constructor JProgressBar
- * @param minimum TODO
- * @param maximum TODO
- * @param orientation TODO
- */
- public JProgressBar(int minimum, int maximum, int orientation) {
- // TODO
- } // JProgressBar()
-
- /**
- * Constructor JProgressBar
- * @param model TODO
- */
- public JProgressBar(BoundedRangeModel model) {
- // TODO
- } // JProgressBar()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * writeObject
- * @param stream TODO
- * @exception IOException TODO
- */
- private void writeObject(ObjectOutputStream stream) throws IOException {
- // TODO
- } // writeObject()
-
- /**
- * getValue
- * @returns int
- */
- public int getValue() {
- return 0; // TODO
- } // getValue()
-
- /**
- * setValue
- * @param value TODO
- */
- public void setValue(int value) {
- // TODO
- } // setValue()
-
- /**
- * paintBorder
- * @param graphics TODO
- */
- protected void paintBorder(Graphics graphics) {
- // TODO
- } // paintBorder()
-
- /**
- * getOrientation
- * @returns int
- */
- public int getOrientation() {
- return 0; // TODO
- } // getOrientation()
-
- /**
- * setOrientation
- * @param orientation TODO
- */
- public void setOrientation(int orientation) {
- // TODO
- } // setOrientation()
-
- /**
- * isStringPainted
- * @returns boolean
- */
- public boolean isStringPainted() {
- return false; // TODO
- } // isStringPainted()
-
- /**
- * setStringPainted
- * @param painted TODO
- */
- public void setStringPainted(boolean painted) {
- // TODO
- } // setStringPainted()
-
- /**
- * getString
- * @returns String
- */
- public String getString() {
- return null; // TODO
- } // getString()
-
- /**
- * setString
- * @param string TODO
- */
- public void setString(String string) {
- // TODO
- } // setString()
-
- /**
- * getPercentComplete
- * @returns double
- */
- public double getPercentComplete() {
- return 0.0; // TODO
- } // getPercentComplete()
-
- /**
- * isBorderPainted
- * @returns boolean
- */
- public boolean isBorderPainted() {
- return false; // TODO
- } // isBorderPainted()
-
- /**
- * setBorderPainted
- * @param painted TODO
- */
- public void setBorderPainted(boolean painted) {
- // TODO
- } // setBorderPainted()
-
- /**
- * getUI
- * @returns ProgressBarUI
- */
- public ProgressBarUI getUI() {
- return (ProgressBarUI) ui;
- } // getUI()
-
- /**
- * setUI
- * @param ui TODO
- */
- public void setUI(ProgressBarUI ui) {
- super.setUI(ui);
- // TODO
- } // setUI()
-
- /**
- * updateUI
- */
- public void updateUI() {
- setUI((ProgressBarUI) UIManager.get(this));
- invalidate();
- } // updateUI()
-
- /**
- * getUIClassID
- * @returns String
- */
- public String getUIClassID() {
- return uiClassID;
- } // getUIClassID()
-
- /**
- * createChangeListener
- * @returns ChangeListener
- */
- protected ChangeListener createChangeListener() {
- return null; // TODO
- } // createChangeListener()
-
- /**
- * addChangeListener
- * @param listener TODO
- */
- public void addChangeListener(ChangeListener listener) {
- // TODO
- } // addChangeListener()
-
- /**
- * removeChangeListener
- * @param listener TODO
- */
- public void removeChangeListener(ChangeListener valulistener) {
- // TODO
- } // removeChangeListener()
-
- /**
- * fireStateChanged
- */
- protected void fireStateChanged() {
- // TODO
- } // fireStateChanged()
-
- /**
- * getModel
- * @returns BoundedRangeModel
- */
- public BoundedRangeModel getModel() {
- return null; // TODO
- } // getModel()
-
- /**
- * setModel
- * @param model TODO
- */
- public void setModel(BoundedRangeModel model) {
- // TODO
- } // setModel()
-
- /**
- * getMinimum
- * @returns int
- */
- public int getMinimum() {
- return 0; // TODO
- } // getMinimum()
-
- /**
- * setMinimum
- * @param minimum TODO
- */
- public void setMinimum(int minimum) {
- // TODO
- } // setMinimum()
-
- /**
- * getMaximum
- * @returns int
- */
- public int getMaximum() {
- return 0; // TODO
- } // getMaximum()
-
- /**
- * setMaximum
- * @param maximum TODO
- */
- public void setMaximum(int maximum) {
- // TODO
- } // setMaximum()
-
- /**
- * paramString
- * @returns String
- */
- protected String paramString() {
- return null; // TODO
- } // paramString()
-
- /**
- * getAccessibleContext
- * @returns AccessibleContext
- */
- public AccessibleContext getAccessibleContext() {
- if (accessibleContext == null) {
- accessibleContext = new AccessibleJProgressBar(this);
- } // if
- return accessibleContext;
- } // getAccessibleContext()
-
-
-} // JProgressBar
+ /**
+ * AccessibleJProgressBar
+ */
+ protected class AccessibleJProgressBar extends AccessibleJComponent
+ implements AccessibleValue
+ {
+ /**
+ * Constructor AccessibleJProgressBar
+ *
+ * @param component TODO
+ */
+ protected AccessibleJProgressBar(JProgressBar component)
+ {
+ super(component);
+ }
+
+ /**
+ * getAccessibleStateSet
+ *
+ * @return AccessibleStateSet
+ */
+ public AccessibleStateSet getAccessibleStateSet()
+ {
+ return null;
+ }
+
+ /**
+ * getAccessibleRole
+ *
+ * @return AccessibleRole
+ */
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.PROGRESS_BAR;
+ }
+
+ /**
+ * getAccessibleValue
+ *
+ * @return AccessibleValue
+ */
+ public AccessibleValue getAccessibleValue()
+ {
+ return null;
+ }
+
+ /**
+ * getCurrentAccessibleValue
+ *
+ * @return Number
+ */
+ public Number getCurrentAccessibleValue()
+ {
+ return null;
+ }
+
+ /**
+ * setCurrentAccessibleValue
+ *
+ * @param value0 TODO
+ *
+ * @return boolean
+ */
+ public boolean setCurrentAccessibleValue(Number value0)
+ {
+ return false;
+ }
+
+ /**
+ * getMinimumAccessibleValue
+ *
+ * @return Number
+ */
+ public Number getMinimumAccessibleValue()
+ {
+ return null;
+ }
+
+ /**
+ * getMaximumAccessibleValue
+ *
+ * @return Number
+ */
+ public Number getMaximumAccessibleValue()
+ {
+ return null;
+ }
+ }
+
+ /** Fired in a PropertyChangeEvent when the "borderPainted" property changes. */
+ public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted";
+
+ /** Fired in a PropertyChangeEvent when the "orientation" property changes. */
+ public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
+
+ /** Fired in a PropertyChangeEvent when the "string" property changes. */
+ public static final String STRING_CHANGED_PROPERTY = "string";
+
+ /** Fired in a PropertyChangeEvent when the "stringPainted" property changes. */
+ public static final String STRING_PAINTED_CHANGED_PROPERTY = "stringPainted";
+
+ /** Fired in a PropertyChangeEvent when the "indeterminate" property changes. */
+ public static final String INDETERMINATE_CHANGED_PROPERTY = "indeterminate";
+
+ /** A list of ChangeListeners registered with this ProgressBar. */
+ private transient EventListenerList changeListenerList;
+
+ /** Whether the ProgressBar is determinate. */
+ private transient boolean indeterminate = false;
+
+ /** The orientation of the ProgressBar */
+ protected int orientation = HORIZONTAL;
+
+ /** Whether borders should be painted. */
+ protected boolean paintBorder = true;
+
+ /** The model describing this ProgressBar. */
+ protected BoundedRangeModel model;
+
+ /** The string that is displayed by the ProgressBar. */
+ protected String progressString;
+
+ /** Whether the string should be painted. */
+ protected boolean paintString = false;
+
+ /** The static changeEvent passed to all ChangeListeners. */
+ protected transient ChangeEvent changeEvent;
+
+ /** The ChangeListener that listens to the model. */
+ protected ChangeListener changeListener;
+
+ /**
+ * Creates a new horizontally oriented JProgressBar object
+ * with a minimum of 0 and a maximum of 100.
+ */
+ public JProgressBar()
+ {
+ this(0, 100, HORIZONTAL);
+ }
+
+ /**
+ * Creates a new JProgressBar object with a minimum of 0,
+ * a maximum of 100, and the given orientation.
+ *
+ * @param orientation The orientation of the JProgressBar.
+ */
+ public JProgressBar(int orientation)
+ {
+ this(0, 100, orientation);
+ }
+
+ /**
+ * Creates a new horizontally oriented JProgressBar object
+ * with the given minimum and maximum.
+ *
+ * @param minimum The minimum of the JProgressBar.
+ * @param maximum The maximum of the JProgressBar.
+ */
+ public JProgressBar(int minimum, int maximum)
+ {
+ this(minimum, maximum, HORIZONTAL);
+ }
+
+ /**
+ * Creates a new JProgressBar object with the given minimum,
+ * maximum, and orientation.
+ *
+ * @param minimum The minimum of the JProgressBar.
+ * @param maximum The maximum of the JProgressBar.
+ * @param orientation The orientation of the JProgressBar.
+ */
+ public JProgressBar(int minimum, int maximum, int orientation)
+ {
+ model = new DefaultBoundedRangeModel(minimum, 0, minimum, maximum);
+ if (orientation != HORIZONTAL && orientation != VERTICAL)
+ throw new IllegalArgumentException(orientation + " is not a legal orientation");
+ this.orientation = orientation;
+ changeListener = createChangeListener();
+ model.addChangeListener(changeListener);
+ changeListenerList = new EventListenerList();
+ updateUI();
+ }
+
+ /**
+ * Creates a new horizontally oriented JProgressBar object
+ * with the given model.
+ *
+ * @param model The model to be used with the JProgressBar.
+ */
+ public JProgressBar(BoundedRangeModel model)
+ {
+ this.model = model;
+ changeListener = createChangeListener();
+ model.addChangeListener(changeListener);
+ changeListenerList = new EventListenerList();
+ updateUI();
+ }
+
+ /**
+ * This method returns the current value of the JProgressBar.
+ *
+ * @return The current value of the JProgressBar.
+ */
+ public int getValue()
+ {
+ return model.getValue();
+ }
+
+ /**
+ * This method sets the value of the JProgressBar.
+ *
+ * @param value The value of the JProgressBar.
+ */
+ public void setValue(int value)
+ {
+ model.setValue(value);
+ }
+
+ /**
+ * This method paints the border of the JProgressBar
+ *
+ * @param graphics The graphics object to paint with.
+ */
+ protected void paintBorder(Graphics graphics)
+ {
+ getBorder().paintBorder(this, graphics, 0, 0,
+ getWidth(),
+ getHeight());
+ }
+
+ /**
+ * This method returns the orientation of the JProgressBar.
+ *
+ * @return The orientation of the JProgressBar.
+ */
+ public int getOrientation()
+ {
+ return orientation;
+ }
+
+ /**
+ * This method changes the orientation property. The orientation of the
+ * JProgressBar can be either horizontal or vertical.
+ *
+ * @param orientation The orientation of the JProgressBar.
+ */
+ public void setOrientation(int orientation)
+ {
+ if (orientation != VERTICAL && orientation != HORIZONTAL)
+ throw new IllegalArgumentException("orientation must be one of VERTICAL or HORIZONTAL");
+ if (this.orientation != orientation)
+ {
+ int oldOrientation = this.orientation;
+ this.orientation = orientation;
+ firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
+ this.orientation);
+ }
+ }
+
+ /**
+ * This method returns whether the progressString will be painted.
+ *
+ * @return Whether the string is painted.
+ */
+ public boolean isStringPainted()
+ {
+ return paintString;
+ }
+
+ /**
+ * This method changes the stringPainted property.
+ *
+ * @param painted Whether the string is painted.
+ */
+ public void setStringPainted(boolean painted)
+ {
+ if (paintString != painted)
+ {
+ boolean oldPainted = paintString;
+ paintString = painted;
+ firePropertyChange(STRING_PAINTED_CHANGED_PROPERTY, oldPainted,
+ paintString);
+ }
+ }
+
+ /**
+ * This method returns the string that is painted if the
+ * stringPainted property is set to true. If there is no
+ * string set, it will return a string containing the
+ * JProgressBar's value as a percent.
+ *
+ * @return The string that is painted.
+ */
+ public String getString()
+ {
+ if (progressString != null)
+ return progressString;
+ else
+ return (int) (getPercentComplete() * 100) + "%";
+ }
+
+ /**
+ * This method changes the string property. The string
+ * given will be the one painted. If you want to
+ * revert to the default string given, set the
+ * string to null.
+ *
+ * @param string The string to be painted.
+ */
+ public void setString(String string)
+ {
+ if (((string == null || progressString == null) &&
+ string != progressString) || (string != null &&
+ ! string.equals(progressString)))
+ {
+ String oldString = progressString;
+ progressString = string;
+ firePropertyChange(STRING_CHANGED_PROPERTY, oldString, progressString);
+ }
+ }
+
+ /**
+ * This method returns the percent of the bar
+ * that is "complete". (This is the amount value / (max - min)).
+ *
+ * @return DOCUMENT ME!
+ */
+ public double getPercentComplete()
+ {
+ if (getMaximum() == getMinimum())
+ return 1.0;
+ else
+ return (double) (model.getValue() - model.getMinimum()) / (model
+ .getMaximum()
+ - model.getMinimum());
+ }
+
+ /**
+ * This method returns whether the border is painted.
+ *
+ * @return Whether the border is painted.
+ */
+ public boolean isBorderPainted()
+ {
+ return paintBorder;
+ }
+
+ /**
+ * This method changes the borderPainted property.
+ *
+ * @param painted Whether the border is painted.
+ */
+ public void setBorderPainted(boolean painted)
+ {
+ if (painted != paintBorder)
+ {
+ boolean oldPainted = paintBorder;
+ paintBorder = painted;
+ firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, oldPainted,
+ paintBorder);
+ }
+ }
+
+ /**
+ * This method returns the JProgressBar's UI delegate.
+ *
+ * @return This JProgressBar's UI delegate.
+ */
+ public ProgressBarUI getUI()
+ {
+ return (ProgressBarUI) ui;
+ }
+
+ /**
+ * This method changes the UI property for this JProgressBar.
+ *
+ * @param ui The new UI delegate.
+ */
+ public void setUI(ProgressBarUI ui)
+ {
+ super.setUI(ui);
+ }
+
+ /**
+ * This method reverts the UI delegate for this JProgressBar
+ * to the default for this Look and Feel.
+ */
+ public void updateUI()
+ {
+ setUI((ProgressBarUI) UIManager.getUI(this));
+ invalidate();
+ }
+
+ /**
+ * This method returns the identifier to allow the UIManager
+ * to pick the correct class to act as the UI for
+ * this JProgressBar.
+ *
+ * @return The UIClassID: "ProgressBarUI".
+ */
+ public String getUIClassID()
+ {
+ return "ProgressBarUI";
+ }
+
+ /**
+ * This method returns a ChangeListener that gets registered
+ * model. By default, the ChangeListener, propagates the
+ * ChangeEvents to the ChangeListeners of the JProgressBar.
+ *
+ * @return A new ChangeListener.
+ */
+ protected ChangeListener createChangeListener()
+ {
+ return new ChangeListener()
+ {
+ public void stateChanged(ChangeEvent ce)
+ {
+ fireStateChanged();
+ }
+ };
+ }
+
+ /**
+ * This method adds a ChangeListener to this JProgressBar.
+ *
+ * @param listener The ChangeListener to add to this JProgressBar.
+ */
+ public void addChangeListener(ChangeListener listener)
+ {
+ changeListenerList.add(ChangeListener.class, listener);
+ }
+
+ /**
+ * This method removes a ChangeListener from this JProgressBar.
+ *
+ * @param listener The ChangeListener to remove from this JProgressBar.
+ */
+ public void removeChangeListener(ChangeListener listener)
+ {
+ changeListenerList.remove(ChangeListener.class, listener);
+ }
+
+ /**
+ * This method returns an array of all ChangeListeners listening to this
+ * progress bar.
+ *
+ * @return An array of ChangeListeners listening to this progress bar.
+ */
+ public ChangeListener[] getChangeListeners()
+ {
+ return (ChangeListener[]) changeListenerList.getListenerList();
+ }
+
+ /**
+ * This method is called when the JProgressBar receives a ChangeEvent
+ * from its model. This simply propagates the event (changing the source
+ * to the JProgressBar) to the JProgressBar's listeners.
+ */
+ protected void fireStateChanged()
+ {
+ Object[] changeListeners = changeListenerList.getListenerList();
+ if (changeEvent == null)
+ changeEvent = new ChangeEvent(this);
+ for (int i = changeListeners.length - 2; i >= 0; i -= 2)
+ {
+ if (changeListeners[i] == ChangeListener.class)
+ ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent);
+ }
+ }
+
+ /**
+ * This method returns the model used with this JProgressBar.
+ *
+ * @return The model used with this JProgressBar.
+ */
+ public BoundedRangeModel getModel()
+ {
+ return model;
+ }
+
+ /**
+ * This method changes the model property for this JProgressBar.
+ *
+ * @param model The model to use with this JProgressBar.
+ */
+ public void setModel(BoundedRangeModel model)
+ {
+ if (model != this.model)
+ {
+ this.model.removeChangeListener(changeListener);
+ this.model = model;
+ this.model.addChangeListener(changeListener);
+ fireStateChanged();
+ }
+ }
+
+ /**
+ * This method returns the minimum value of this JProgressBar.
+ *
+ * @return The minimum value of this JProgressBar.
+ */
+ public int getMinimum()
+ {
+ return model.getMinimum();
+ }
+
+ /**
+ * This method sets the minimum value of this JProgressBar.
+ *
+ * @param minimum The minimum value of this JProgressBar.
+ */
+ public void setMinimum(int minimum)
+ {
+ model.setMinimum(minimum);
+ }
+
+ /**
+ * This method returns the maximum value of this JProgressBar.
+ *
+ * @return The maximum value of this JProgressBar.
+ */
+ public int getMaximum()
+ {
+ return model.getMaximum();
+ }
+
+ /**
+ * This method sets the maximum value of this JProgressBar.
+ *
+ * @param maximum The maximum value of this JProgressBar.
+ */
+ public void setMaximum(int maximum)
+ {
+ model.setMaximum(maximum);
+ }
+
+ /**
+ * This method returns a string that can be used to
+ * describe this JProgressBar. This method is usually
+ * only used for debugging purposes.
+ *
+ * @return A string that describes this JProgressBar.
+ */
+ protected String paramString()
+ {
+ return "JProgressBar";
+ }
+
+ /**
+ * This method changes the indeterminate property. If the
+ * JProgressBar is determinate, it paints a percentage
+ * of the bar described by its value. If it is indeterminate,
+ * it simply bounces a box between the ends of the bar; the
+ * value of the JProgressBar is ignored.
+ *
+ * @param newValue Whether the JProgressBar is indeterminate.
+ */
+ public void setIndeterminate(boolean newValue)
+ {
+ if (indeterminate != newValue)
+ {
+ boolean olddeter = indeterminate;
+ indeterminate = newValue;
+ firePropertyChange(INDETERMINATE_CHANGED_PROPERTY, olddeter,
+ indeterminate);
+ }
+ }
+
+ /**
+ * This method returns whether the JProgressBar is indeterminate.
+ *
+ * @return Whether this JProgressBar is indeterminate.
+ */
+ public boolean isIndeterminate()
+ {
+ return indeterminate;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ if (accessibleContext == null)
+ accessibleContext = new AccessibleJProgressBar(this);
+ return accessibleContext;
+ }
+}