revert: [multiple changes]

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java (drawImage variants):
	Update image observer.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (createImage):
	Start image production.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (setMenuBar): Protect
	against negative menu bar widths.
	(setBounds): Likewise.
	(postConfigureEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkImage.java (imageComplete): Don't
	remove consumer unless only a single frame has completed.
	* gnu/java/awt/peer/gtk/GtkImagePainter.java (GtkImagePainter):
	Add observer parameter.
	(setPixels): Update image observer.
	(imageComplete): Likewise.
	* java/applet/Applet.java (width): New field.
	(height): Likewise.
	(setStub): Set size if width or height field has been set.
	(resize): If stub is null save width and height values.
	* java/awt/Component.java (reshape): Protect against null
	parent.
	* java/awt/image/MemoryImageSource.java
	(MemoryImageSource(int,int,ColorModel,byte[],int,int)):
	Document.
	(MemoryImageSource(int,int,ColorModel,int[],int,int)):
	Likewise.
	(MemoryImageSource(int,int,ColorModel,byte[],int,int,Hashtable)):
	Reference pixel array directly, rather than creating a local
	copy.
	(MemoryImageSource(int,int,ColorModel,int[],int,int,Hashtable)):
	Likewise.
	(newPixels(int,int,int,int)): Fix for loop and array copy
	bounds.
	(newPixels(int,int,int,int,boolean)): Likewise.
	(startProduction): If animated call imageComplete with
	SINGLEFRAME.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Uncomment
	gdk_flush lines.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c
	(drawPixels): Return if g is null or g->drawable is not a gdk
	drawable.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DefaultSingleSelectionModel.java,
	javax/swing/JPasswordField.java,
	javax/swing/tree/AbstractLayoutCache.java:
	Reformatted and javadocs cleaned up.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/Component.java:
	Fixed argument names to match javadocs.
	(setFont): Rewritten set property first and then fire event.
	(setLocale): Likewise.
	* javax/swing/text/JTextComponent.java
	(setEditable): Likewise.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Button.java
	(AccessibleAWTButton.getAccessibleActionDescription): Explain the
	source of 'click'.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Checkbox.java: Remove stub comments.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Button.java
	(AccessibleAWTButton.getAccessibleActionDescription): Return
	'click'.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/CardLayout.java:
	Made some constants static.
	(serialVersionUID): Made private.
	(addLayoutComponent): Simplified code.
	* java/awt/event/InputEvent.java
	(getModifiersEx): Added missing @param tag.
	* java/awt/image/RGBImageFilter.java
	(filterRGBPixels): Reformatted, removed wrong @param tag.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/FieldView.java,
	javax/swing/text/JTextComponent.java:
	Removed debug code.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/BorderFactory.java
	(BorderFactory): Added private constructor.
	* javax/swing/SwingUtilities.java
	(SwingUtilities): Likewise.
	(computeStringWidth): New method.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/color/ICC_Profile.java
	(icSigNamedColorTag): Removed.
	* java/awt/datatransfer/DataFlavor.java
	(isMimeTypeEqual): Made final.
	* java/awt/image/AffineTransformOp.java:
	Reworked javadocs.
	(TYPE_BICUBIC): Added @since tag.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Checkbox.java (AccessibleAWTCheckBox): Remove todo
	comments.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Checkbox.java (itemStateChanged): Implement function.
	(getAccessibleContext): Add AccessibleAWTCheckBox to item listeners.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/Polygon.java (contains): Reimplemented.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/print/PrinterJob.java: Reformatted.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/AffineTransformOp.java,
	java/awt/image/ColorConvertOp.java,
	java/awt/image/LookupOp.java,
	java/awt/image/RescaleOp.java:
	Added final keywords where they belong.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/CardLayout.java,
	java/awt/Component.java,
	java/awt/Font.java,
	java/awt/image/SinglePixelPackedSampleModel.java:
	Fixed javadocs and argument names all over.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/DataBufferShort.java: Fixed file header.
	* java/awt/image/DataBufferUShort.java: Likewise.
	(DataBufferUShort): Throw NullPointerException if dataArray is null.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/Arc2D.java
	(setAngleStart): Corrected (wrong sign on atan2 y parameter).
	(setAngles): Likewise.
	(containsAngle): Return false on zero extent, don't include
	final angle.
	(contains): Treat OPEN-type arcs like CHORD ones, not as PIE
	ones.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/AffineTransform.java,
	(inverseTransform): Fixed bug and simplified code.
	(createTransformedShape): Return null on null parameter.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/color/ICC_ColorSpace.java,
	java/awt/color/ICC_Profile.java,
	java/awt/color/ICC_ProfileGray.java,
	java/awt/color/ICC_ProfileRGB.java:
	Re-indent copyright header to be standardish.
	* java/awt/datatransfer/StringSelection.java:
	Reformatted.
	* java/awt/geom/Area.java
	(EPSILON): Made static.
	(RS_EPSILON): Likewise.
	(PE_EPSILON): Likewide.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* javax/swing/SwingUtilities.java:
	(computeDifference): Implemented
	(computeIntersection): Likewise
	(computeUnion): Likewise
	(isRectangleContainingRectangle): Likewise

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/BasicStroke.java,
	java/awt/Button.java,
	java/awt/Canvas.java,
	java/awt/CheckboxMenuItem.java,
	java/awt/Container.java,
	java/awt/EventQueue.java,
	java/awt/FileDialog.java,
	java/awt/FlowLayout.java,
	java/awt/FontMetrics.java,
	java/awt/Graphics.java,
	java/awt/GridLayout.java,
	java/awt/KeyboardFocusManager.java,
	java/awt/Label.java,
	java/awt/LayoutManager2.java,
	java/awt/List.java,
	java/awt/MenuBar.java,
	java/awt/Scrollbar.java,
	java/awt/Toolkit.java,
	java/awt/Window.java,
	java/awt/datatransfer/DataFlavor.java,
	java/awt/datatransfer/FlavorTable.java,
	java/awt/event/ActionListener.java,
	java/awt/event/HierarchyBoundsAdapter.java,
	java/awt/geom/Arc2D.java,
	java/awt/geom/Rectangle2D.java,
	java/awt/geom/RectangularShape.java,
	java/awt/im/spi/InputMethod.java,
	java/awt/image/ByteLookupTable.java,
	java/awt/image/ColorModel.java,
	java/awt/image/DirectColorModel.java,
	java/awt/image/ShortLookupTable.java,
	java/awt/print/Book.java:
	Fixed javadocs and method argument names all over.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(buildString): Optimise String building.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/TextArea.java (AccessibleAWTTextArea,
	getAccessibleContext): Implement.
	* java/awt/TextField.java (AccessibleAWTTextField,
	getAccessibleContext): Implement.

2004-11-30  Tom Tromey  <tromey@redhat.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.lo):
	Fixed typo.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Menu.java (AccessibleAWTMenu, getAccessibleContext):
	Implement.
	* java/awt/PopupMenu.java (AccessibleAWTMenu, getAccessibleContext):
	Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/print/PrinterJob.java (lookupPrintServices,
	getPrintService, setPrintService): Implement.
	(lookupStreamPrintServices): Add commented out implementation.
	(printer): New field.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* javax/swing/ToolTipManager.java (mouseMoved): Set currentComponent
	when not yet set.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/GeneralPath.java (evaluateCrossings):
	Fixed epsilon value, should always be nonzero.

2004-11-30  Paul Jenner  <psj.home@ntlworld.com>

	* java/awt/image/Raster.java
	(createPackedRaster): Implemented.

2004-11-30  Graydon Hoare  <graydon@redhat.com>

	* javax/swing/plaf/basic/BasicTextUI.java:
	Listen to focus events, indicate focus via caret.
	* javax/swing/text/GapContent.java (getString): Return substring.
	* javax/swing/text/PlainDocument.java (reindex): New method.
	(createDefaultRoot): Call it.
	(insertUpdate): Likewise.
	(removeUpdate): Likewise.
	* javax/swing/text/Utilities.java (drawTabbedText): Always advance
	on tab and newline, even if no painting happens.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am: List peer JNI header: Java source file
	dependencies explicitly.  Likewise for JNI .lo: JNI header
	dependencies.
	* Makefile.in: Regenerate.

2004-11-30  Graydon Hoare  <graydon@redhat.com>

	* Makefile.am: Add entry for BasicTextPaneUI.java
	* Makefile.in: Regenerate.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(GdkGraphics2D): Set clip after transform.
	(drawImage): Protect against null image.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(setIconImage): Protect against non-GtkImage args.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(checkImage): Protect against non-GtkImage args.
	* java/awt/print/PrinterJob.java:
	(print): Add variant taking PrintRequestAttributeSet.
	(printDialog): Likewise.
	* javax/swing/JComponent.java:
	(transferHandler): New field.
	(getComponentGraphics): Build new Graphics for each sub-paint.
	(getTransferHandler): New method.
	(setTransferHandler): New method.
	* javax/swing/JDesktopPane.java
	(setDragMode): Force LIVE_DRAG_MODE.
	* javax/swing/JMenuItem.java
	(menuSelectionChanged): Protect against null parent.
	* javax/swing/JTable.java (setDefaultRenderer): New method.
	* javax/swing/JTree.java: Get basic ctors and UI working.
	* javax/swing/JViewport.java (JViewport): Set scroll mode.
	* javax/swing/RepaintManager.java
	(addDirtyRegion): Skip empty regions.
	* javax/swing/ScrollPaneLayout.java (minimumLayoutSize): Do not
	bound scrollpane minimum by central view minimum.
	* javax/swing/ToolTipManager.java
	(showTip): Guard against null component.
	* javax/swing/TransferHandler.java: Stub out.
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	Add entry for TextPaneUI, change Tree icons to pngs.
	* javax/swing/plaf/basic/BasicMenuItemUI.java:
	(installDefaults): Set text position and alignment.
	(paintMenuItem): Layout icon with normal compound function.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java:
	(getMaximumSize): Delete.
	(getMinimumSize): Delete.
	(getPreferredSize): Use column model's total width.
	* javax/swing/plaf/basic/BasicTextPaneUI.java: New file.
	* javax/swing/plaf/basic/BasicTextUI.java
	(modelChanged): Make resilient against nulls.
	* javax/swing/plaf/basic/BasicTreeUI.java:
	Add some simplistic config / painting functions.
	* javax/swing/plaf/basic/BasicViewportUI.java
	(paintSimple): Add new non-backingstore paint mode.
	(paintBackingStore): Split out backing store code.
	(paint): Switch on painting mode.
	* javax/swing/text/SimpleAttributeSet.java
	(SimpleAttributeSet): Resist nulls.
	* javax/swing/tree/DefaultTreeCellRenderer.java: Implement.
	* javax/swing/tree/DefaultTreeModel.java: Partially implement.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c (setFont):
	Set pango context's description and language.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* java/awt/image/LookupOp.java: Comments and indentation fixes.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Checkbox.java (AccessibleAWTCheckBox): Implement.
	(getAccessibleContext): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/TextComponent.java (AccessibleAWTTextComponent):
	Implement.
	(getIndexAtPoint, getCharacterBounds): New methods.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Button.java (AccessibleAWTButton): Implement.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(filenameFilterCallback): Made static.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(cairoShowGlyphs) Removed.

2004-11-30  Sven de Marothy <sven@physto.se>

	* gnu/java/awt/color/RgbProfileConverter.java (RgbProfileConverter):
	Don't invert matrix when reverse CLUT is available.
	* gnu/java/awt/color/LinearRGBConverter.java: Documentation update.
	* java/awt/color/ICC_ColorSpace.java: Likewise.
	* java/awt/color/ICC_Profile.java: Likewise.
	* java/awt/color/ICC_ProfileGray.java: Likewise.
	* java/awt/color/ICC_ProfileRGB.java: Likewise.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/MenuItem.java (AccessibleAWTMenuItem): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/Choice.java (AccessibleAWTChoice): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/BandedSampleModel.java (scanlineStride): Remove
	field hiding ComponentSampleModel.scanlineStride.

2004-11-30  Noa Resare  <noa@resare.com>

	* java/awt/geom/GeneralPath.java (currentSegment):
	Fix typo in transform.transform() invocation.

2004-11-30  Sven de Marothy <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(createImage): Created bitmap should be filled with bg color

2004-11-30  Noa Resare  <noa@resare.com>

	* java/awt/Choice.java (add):
	Implement correct selection behavior when peer == null.
	(insert): Likewise.
	(remove): Likewise.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkChoicePeer.java (GtkChoicePeer):
	Call select() when Choice has a selected item.

2004-11-30  Michael Koch  <address@bogus.example.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c:
	Fixed method names to start at begin of line. This is desired by GNU
	coding style guide.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(gtkWidgetSetVisible): Unused. Removed.
	(connectJObject): Likewise.
	* gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
	(gtkScrolledWindowSetScrollPosition): Commented out.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkTextLayout_setText): Installed and
	renamed from Java_gnu_java_awt_peer_gtk_GdkGlyphVector_setText.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_setText): Removed.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(init_dpi_conversion_factor): Correct prototype.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/image/ConvolveOp.java: Added missing
	copyright notice.

2004-11-30  Robert Schuster  <theBohemian@gmx.net>

	Fixes bug #10908
	* gnu/java/beans/IntrospectionIncubator.java:
	(addMethod): static methods are discarded now, too.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (awt_java_source_files): Add new gnu/java/awt/color
	java source files.
	* Makefile.in: Regenerated.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/color/CieXyzConverter.java,
	gnu/java/awt/color/GrayScaleConverter.java,
	gnu/java/awt/color/SrgbConverter.java,
	gnu/java/awt/color/ClutProfileConverter.java,
	gnu/java/awt/color/LinearRGBConverter.java,
	gnu/java/awt/color/TagEntry.java,
	gnu/java/awt/color/ColorLookUpTable.java,
	gnu/java/awt/color/ProfileHeader.java,
	gnu/java/awt/color/ToneReproductionCurve.java,
	gnu/java/awt/color/ColorSpaceConverter.java,
	gnu/java/awt/color/PyccConverter.java,
	gnu/java/awt/color/GrayProfileConverter.java,
	gnu/java/awt/color/RgbProfileConverter.java:
	New files.
	* java/awt/color/ICC_ColorSpace.java,
	java/awt/color/ICC_Profile.java,
	java/awt/color/ICC_ProfileGray.java,
	java/awt/color/ICC_ProfileRGB.java:
	Implemented (sans PhotoYCC color space).

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/AffineTransformOp.java (filter):  Implement
	bilinear interpolation for Rasters.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java (IndexColorModel): Actually
	use the provided colormap.  Throw documented exceptions.  Document
	exceptions.

2004-11-30  Paul Jenner  <psj.home@ntlworld.com>

	* java/awt/image/IndexColorModel.java (IndexColorModel): Fix
	constructor.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/AffineTransformOp.java: Add TYPE_BICUBIC.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/AffineTransformOp.java (filter): Implement Raster
	filtering.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentSampleModel.java (getDataElements,
	setDataElements): Implement SHORT, FLOAT, and INT transfer types.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Font.java (name): New field.
	(size): Likewise.
	(style): Likewise.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/Raster.java (createBandedRaster): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ConvolveOp.java: New class.
	* Makefile.am: Add ConvolveOp.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/RescaleOp.java (BandCombineOp, ColorConvertOp,
	LookupOp, RescaleOp): Fix loop bounds.

2004-11-30  jlquinn  <jlquinn@optonline.net>

	* Makefile.am: Fix typo in BandCombineOp.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/BandCombineOp.java: New class.
	* Makefile.am: Add BandCombineOp.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/LookupOp.java: New class.
	* Makefile.am: Add LookupOp.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/SampleModel.java (createSubsetSampleModel): Add
	javadocs.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ColorModel.java (cloneColorModel): Fix line
	wrap.  Use Boolean.valueOf.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(releasePeerGraphicsResource): Fixed typo in method name.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(finalize): Fixed typo in releasePeerGraphicsResource.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/font/TextAttribute.java
	(RUN_DIRECTION_LTR): Initialie with static value instead of
	calculating it.
	(RUN_DIRECTION_RTL): Likewise.
	(STRIKETHROUGH_ON): Likewise.
	(SWAP_COLORS_ON): Likewise.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ColorConvertOp.java: New class.
	* java/awt/image/ColorModel.java (cloneColorModel): New method.
	* Makefile.am: Add ColorConvertOp.
	* Makefile.in: Regenerate.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/DefaultKeyboardFocusManager.java (dispatchEvent):
	Track Window focus owner on FOCUS_GAINED events.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	(nativeSetIconImage): Rename to nativeSetIconImageFromDecoder.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c
	(Java_gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_nativeRun):
	Fix pointer warning.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter):
	Fix pointer warning.

	* jni/gtk-peer/gtkpeer.h: Introduce widget_union to fix type punned
	warnings.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect): Use widget_union
	to fix type punned pointer warning.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (pre_event_handler):
	Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_get_new_state): Introduce unions to fix warnings as above.
	(window_property_changed_cb): Likewise.
	(window_active_state_change_cb): Mark unused variables unused.
	(window_focus_state_change_cb): Likewise.
	(window_focus_in_cb): Likewise.
	(window_focus_out_cb): Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Convert
	PangoFontMap correctly with PANGO_FT2FONT_MAP macro.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JMenuBar.java
	(updateUI): Simplified.
	* javax/swing/tree/DefaultTreeSelectionModel.java:
	Reorganized import statements.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/font/TextAttribute.java,
	javax/swing/JComponent.java,
	javax/swing/JInternalFrame.java,
	javax/swing/table/TableColumn.java,
	javax/swing/text/StyleConstants.java:
	Replaced "new Boolean(boolean)" with "Boolean.valueOf(boolean)".

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/tree/DefaultTreeCellEditor.java,
	javax/swing/tree/DefaultTreeModel.java,
	javax/swing/tree/DefaultTreeSelectionModel.java:
	Jalopied.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/tree/DefaultTreeCellEditor.java
	(EditorContainer.EditorContainer): Fixed arguments.
	(EditorContainer.EditorContainer): New method.
	(DefaultTextField.DefaultTextField): Fixed arguments, implemented.
	(DefaultTextField.getBorder): Implemented.
	(listenerList): New field.
	(addCellEditorListener): Implemented.
	(removeCellEditorListener): Implemented.
	(getCellEditorListeners): New method.
	* javax/swing/tree/DefaultTreeModel.java
	(addTreeModelListener): Fixed javadoc.
	(removeTreeModelListener): Likewise.
	(getTreeModelListeners): New method.
	(fireTreeNodesChanged): Implemented.
	(fireTreeNodesInserted): Likewise.
	(fireTreeNodesRemoved): Likewise.
	(fireTreeStructureChanged): Likewise.
	(getListeners): Fixed javadoc.
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addTreeSelectionListener): Implemented.
	(removeTreeSelectionListener): Likewise.
	(fireValueChanged): Likewise.
	(getListeners): Likewise.
	(addPropertyChangeListener): Likewise.
	(removePropertyChangeListener): Likewise.
	(getTreeSelectionListeners): New method.
	(getPropertyChangeListeners): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(maximumThumbSize): Removed static keyword.
	(minimumThumbSize): Likewise.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(CloseAction): Made public.
	(IconifyAction): Likewise.
	(MaximizeAction): Likewise.
	(MoveAction): Likewise.
	(RestoreAction): Likewise.
	(SizeAction): Likewise.
	(SystemMenuBar): Likewise.
	* javax/swing/plaf/basic/BasicSliderUI.java
	(TrackListener): Likewise.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(KeyboardDownRightHandler): Likewise.
	(KeyboardEndHandler): Likewise.
	(KeyboardHomeHandler): Likewise.
	(KeyboardResizeToggleHandler): Likewise.
	(KeyboardUpLeftHandler): Likewise.
	(PropertyHandler): Likewise.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(PropertyChangeHandler): Likewise.
	(TabSelectionHandler): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/text/JTextComponent.java
	(getKeymap): Made public.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JEditorPane.java
	(getStream): Throws IOException.
	(read): Likewise.
	* javax/swing/JRootPane.java
	(createContentPane): Fixed return type.
	* javax/swing/JSpinner.java
	(commitEdit): Throws ParseException.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(serialVersionUID): New field.
	* javax/swing/table/TableColumn.java
	(resizedPostingDisableCount): Added @deprecated tag.
	(disableResizedPosting): Likewise.
	(enableResizedPosting): Likewise.
	* javax/swing/text/Document.java
	(TitleProperty): Fixed value.
	* javax/swing/tree/TreeCellEditor.java
	(TreeCellEditor): Extends CellEditor.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JWindow.java
	javax/swing/SpinnerModel.java
	javax/swing/Timer.java
	javax/swing/event/MenuKeyEvent.java
	javax/swing/plaf/basic/BasicButtonUI.java
	javax/swing/plaf/basic/BasicIconFactory.java
	javax/swing/plaf/basic/BasicTabbedPaneUI.java
	javax/swing/text/AttributeSet.java
	javax/swing/text/Highlighter.java
	javax/swing/text/StyleConstants.java
	javax/swing/tree/TreeCellEditor.java:
	Removed redundant and reordered modifiers.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/plaf/basic/BasicToolTipUI.java:
	Reformatted copyright header.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractAction.java,
	javax/swing/AbstractButton.java,
	javax/swing/AbstractCellEditor.java,
	javax/swing/AbstractListModel.java,
	javax/swing/AbstractSpinnerModel.java,
	javax/swing/ActionMap.java,
	javax/swing/BorderFactory.java,
	javax/swing/Box.java,
	javax/swing/ButtonModel.java,
	javax/swing/CellEditor.java,
	javax/swing/CellRendererPane.java,
	javax/swing/DefaultBoundedRangeModel.java,
	javax/swing/DefaultButtonModel.java,
	javax/swing/DefaultCellEditor.java,
	javax/swing/DefaultDesktopManager.java,
	javax/swing/DefaultListCellRenderer.java,
	javax/swing/DefaultListSelectionModel.java,
	javax/swing/DefaultSingleSelectionModel.java,
	javax/swing/GrayFilter.java,
	javax/swing/InputMap.java,
	javax/swing/JApplet.java,
	javax/swing/JCheckBoxMenuItem.java,
	javax/swing/JColorChooser.java,
	javax/swing/JComboBox.java,
	javax/swing/JComponent.java,
	javax/swing/JDesktopPane.java,
	javax/swing/JDialog.java,
	javax/swing/JEditorPane.java,
	javax/swing/JFileChooser.java,
	javax/swing/JFormattedTextField.java,
	javax/swing/JFrame.java,
	javax/swing/JInternalFrame.java,
	javax/swing/JLabel.java,
	javax/swing/JLayeredPane.java,
	javax/swing/JList.java,
	javax/swing/JMenu.java,
	javax/swing/JMenuBar.java,
	javax/swing/JMenuItem.java,
	javax/swing/JOptionPane.java,
	javax/swing/JPanel.java,
	javax/swing/JPasswordField.java,
	javax/swing/JPopupMenu.java,
	javax/swing/JRadioButtonMenuItem.java,
	javax/swing/JRootPane.java,
	javax/swing/JSpinner.java,
	javax/swing/JSplitPane.java,
	javax/swing/JTabbedPane.java,
	javax/swing/JTable.java,
	javax/swing/JTextArea.java,
	javax/swing/JTextPane.java,
	javax/swing/JToggleButton.java,
	javax/swing/JToolBar.java,
	javax/swing/JToolTip.java,
	javax/swing/JTree.java,
	javax/swing/JViewport.java,
	javax/swing/ListModel.java,
	javax/swing/LookAndFeel.java,
	javax/swing/MenuSelectionManager.java,
	javax/swing/ProgressMonitorInputStream.java,
	javax/swing/RepaintManager.java,
	javax/swing/RootPaneContainer.java,
	javax/swing/ScrollPaneLayout.java,
	javax/swing/SpringLayout.java,
	javax/swing/SwingUtilities.java,
	javax/swing/Timer.java,
	javax/swing/ToolTipManager.java,
	javax/swing/UIDefaults.java,
	javax/swing/UIManager.java,
	javax/swing/border/MatteBorder.java,
	javax/swing/colorchooser/AbstractColorChooserPanel.java,
	javax/swing/colorchooser/ColorSelectionModel.java,
	javax/swing/colorchooser/DefaultColorSelectionModel.java,
	javax/swing/colorchooser/DefaultHSBChooserPanel.java,
	javax/swing/colorchooser/DefaultPreviewPanel.java,
	javax/swing/colorchooser/DefaultRGBChooserPanel.java,
	javax/swing/colorchooser/DefaultSwatchChooserPanel.java,
	javax/swing/event/AncestorEvent.java,
	javax/swing/event/HyperlinkEvent.java,
	javax/swing/event/InternalFrameEvent.java,
	javax/swing/event/MenuDragMouseEvent.java,
	javax/swing/event/TableColumnModelEvent.java,
	javax/swing/event/TableModelEvent.java,
	javax/swing/event/TreeExpansionEvent.java,
	javax/swing/event/TreeModelEvent.java,
	javax/swing/event/TreeSelectionEvent.java,
	javax/swing/event/TreeWillExpandListener.java,
	javax/swing/event/UndoableEditEvent.java,
	javax/swing/filechooser/FileView.java,
	javax/swing/plaf/BorderUIResource.java,
	javax/swing/plaf/ComponentUI.java,
	javax/swing/plaf/FileChooserUI.java,
	javax/swing/plaf/IconUIResource.java,
	javax/swing/plaf/ListUI.java,
	javax/swing/plaf/PopupMenuUI.java,
	javax/swing/plaf/SplitPaneUI.java,
	javax/swing/plaf/TabbedPaneUI.java,
	javax/swing/plaf/TextUI.java,
	javax/swing/plaf/TreeUI.java,
	javax/swing/plaf/basic/BasicArrowButton.java,
	javax/swing/plaf/basic/BasicBorders.java,
	javax/swing/plaf/basic/BasicButtonUI.java,
	javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java,
	javax/swing/plaf/basic/BasicColorChooserUI.java,
	javax/swing/plaf/basic/BasicComboBoxEditor.java,
	javax/swing/plaf/basic/BasicComboBoxRenderer.java,
	javax/swing/plaf/basic/BasicComboBoxUI.java,
	javax/swing/plaf/basic/BasicComboPopup.java,
	javax/swing/plaf/basic/BasicDesktopIconUI.java,
	javax/swing/plaf/basic/BasicDesktopPaneUI.java,
	javax/swing/plaf/basic/BasicIconFactory.java,
	javax/swing/plaf/basic/BasicInternalFrameTitlePane.java,
	javax/swing/plaf/basic/BasicInternalFrameUI.java,
	javax/swing/plaf/basic/BasicListUI.java,
	javax/swing/plaf/basic/BasicLookAndFeel.java,
	javax/swing/plaf/basic/BasicMenuBarUI.java,
	javax/swing/plaf/basic/BasicMenuItemUI.java,
	javax/swing/plaf/basic/BasicMenuUI.java,
	javax/swing/plaf/basic/BasicOptionPaneUI.java,
	javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java,
	javax/swing/plaf/basic/BasicPopupMenuUI.java,
	javax/swing/plaf/basic/BasicProgressBarUI.java,
	javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java,
	javax/swing/plaf/basic/BasicRootPaneUI.java,
	javax/swing/plaf/basic/BasicScrollBarUI.java,
	javax/swing/plaf/basic/BasicSeparatorUI.java,
	javax/swing/plaf/basic/BasicSliderUI.java,
	javax/swing/plaf/basic/BasicSpinnerUI.java,
	javax/swing/plaf/basic/BasicSplitPaneDivider.java,
	javax/swing/plaf/basic/BasicSplitPaneUI.java,
	javax/swing/plaf/basic/BasicTabbedPaneUI.java,
	javax/swing/plaf/basic/BasicTableHeaderUI.java,
	javax/swing/plaf/basic/BasicTableUI.java,
	javax/swing/plaf/basic/BasicTextAreaUI.java,
	javax/swing/plaf/basic/BasicTextFieldUI.java,
	javax/swing/plaf/basic/BasicTextUI.java,
	javax/swing/plaf/basic/BasicToolBarSeparatorUI.java,
	javax/swing/plaf/basic/BasicToolBarUI.java,
	javax/swing/plaf/basic/BasicToolTipUI.java,
	javax/swing/plaf/basic/BasicTreeUI.java,
	javax/swing/plaf/basic/BasicViewportUI.java,
	javax/swing/plaf/basic/ComboPopup.java,
	javax/swing/table/AbstractTableModel.java,
	javax/swing/table/DefaultTableCellRenderer.java,
	javax/swing/table/DefaultTableColumnModel.java,
	javax/swing/table/DefaultTableModel.java,
	javax/swing/table/JTableHeader.java,
	javax/swing/table/TableCellEditor.java,
	javax/swing/table/TableCellRenderer.java,
	javax/swing/table/TableColumn.java,
	javax/swing/table/TableColumnModel.java,
	javax/swing/text/AbstractDocument.java,
	javax/swing/text/Caret.java,
	javax/swing/text/DefaultCaret.java,
	javax/swing/text/DefaultEditorKit.java,
	javax/swing/text/DefaultHighlighter.java,
	javax/swing/text/EditorKit.java,
	javax/swing/text/JTextComponent.java,
	javax/swing/text/LayeredHighlighter.java,
	javax/swing/text/PasswordView.java,
	javax/swing/text/SimpleAttributeSet.java,
	javax/swing/text/StyleConstants.java,
	javax/swing/text/StyleContext.java,
	javax/swing/text/StyledEditorKit.java,
	javax/swing/text/TextAction.java,
	javax/swing/text/View.java,
	javax/swing/tree/AbstractLayoutCache.java,
	javax/swing/tree/DefaultTreeCellRenderer.java,
	javax/swing/tree/DefaultTreeModel.java,
	javax/swing/tree/DefaultTreeSelectionModel.java,
	javax/swing/tree/FixedHeightLayoutCache.java,
	javax/swing/tree/TreeCellRenderer.java,
	javax/swing/tree/TreeSelectionModel.java,
	javax/swing/tree/VariableHeightLayoutCache.java,
	javax/swing/undo/AbstractUndoableEdit.java,
	javax/swing/undo/UndoableEditSupport.java:
	Imports cleaned up.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/Container.java,
	java/awt/Font.java,
	java/awt/font/TextLayout.java:
	Imports cleaned up.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java
	(getLabel): Added @deprecated tag.
	(setLabel): Likewise.
	* javax/swing/FocusManager.java
	(disableSwingFocusManager): Likewise.
	(isFocusManagerEnabled): Likewise.
	* javax/swing/JComponent.java
	(isManagingFocus): Added version to @deprecated tag.
	(getNextFocusableComponent): Moved @deprecated tag to bottom of
	javadoc.
	(getConditionForKeyStroke): Likewise.
	(getActionForKeyStroke): Likewise.
	* javax/swing/JDesktopPane.java
	(LIVE_DRAG_MODE): Added @specnote tag.
	(OUTLINE_DRAG_MODE): Likewise.
	* javax/swing/JInternalFrame.java
	(MENU_BAR_PROPERTY): Fixed value.
	(getMenuBar): Added @deprecated tag.
	(setMenuBar): Likewise.
	* javax/swing/JViewport.java
	(isBackingStoreEnabled): Likewise.
	(setBackingStoreEnabled): Likewise.
	* javax/swing/plaf/basic/BasicDesktopPaneUI.java
	(closeKey): Likewise.
	(maximizeKey): Likewise.
	(minimizeKey): Likewise.
	(navigateKey): Likewise.
	(navigateKey2): Likewise.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(openMenuKey): Likewise.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(keyboardDownRightListener): Likewise.
	(keyboardEndListener): Likewise.
	(keyboardHomeListener): Likewise.
	(keyboardResizeToggleListener): Likewise.
	(keyboardUpLeftListener): Likewise.
	(dividerResizeToggleKey): Likewise.
	(downKey): Likewise.
	(endKey): Likewise.
	(homeKey): Likewise.
	(leftKey): Likewise.
	(rightKey): Likewise.
	(upKey): Likewise.
	(createKeyboardUpLeftListener): Likewise.
	(createKeyboardDownRightListener): Likewise.
	(createKeyboardHomeListener): Likewise.
	(createKeyboardEndListener): Likewise.
	(createKeyboardResizeToggleListener): Likewise.
	(getDividerBorderSize): Likewise.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(downKey): Likewise.
	(leftKey): Likewise.
	(rightKey): Likewise.
	(upKey): Likewise.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create): Use the
	GTK_TEXT_VIEW macro.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(connect_awt_hook_cb): Mark unused variable unused.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c (selection_get):
	Do the cast right.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create): According to
	the gtk API gtk_combo_box_new_text actually returns a GtkWidget.
	Remove unused var menu.
	(selection_changed): Remove unused value.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkButtonPeer_setNativeBounds): Fix pointer
	warning with using an intermediate variable.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(area_updated): Fix unused var warning for BE archs.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_connectSignals): Remove unused
	var.
	(realize_cb): Mark unused variable unused.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
	(seek_glyphstring_idx): Fix a C90 warning.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c
	(Java_gnu_java_awt_peer_gtk_GThreadNativeMethodRunner_nativeRun):
	Mark unused arguments unused.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_initState),
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_setGlyphCodes),
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_glyphCharIndex),
	(Java_gnu_java_awt_peer_gtk_GdkGlyphVector_glyphIsHorizontal):
	Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c
	(Java_gnu_java_awt_peer_gtk_GdkFontMetrics_getPeerFontMetrics),
	(Java_gnu_java_awt_peer_gtk_GdkFontMetrics_getPeerTextMetrics):
	Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter):
	Likewise.
	(filenameFilterCallback): Remove unused var.
	(handle_response): Declare str_fileName and remove last else statement.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c:
	New File.
	(nativeGetNumFontsFamilies) New function.
	(nativeGetFontFamilies) Likewise.
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
	(getAvailableFontFamilyNames): Implement.
	* Makefile.am (gtk_c_source_files): Add GdkGraphicsEnvironment.c.
	* Makefile.in: Regenerate.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/ClasspathFontPeer.java
	(setStandardAttributes(String,Map)): If size attribute doesn't
	exist, default to size 12.  Clamp size value to a minimum of 1.

2004-11-30  Jeroen Frijters  <jeroen@frijters.net>

	* javax/swing/JDialog.java
	(decorated): Likewise.
	* javax/swing/JFrame.java
	(defaultLookAndFeelDecorated): Likewise.

2004-11-30  Jeroen Frijters  <jeroen@frijters.net>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(offset, regular): Made final.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(DECREASE_HIGHLIGHT, INCREASE_HIGHLIGHT, NO_HIGHLIGHT,
	POSITIVE_SCROLL, NEGATIVE_SCROLL): Made final.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/BitwiseXORComposite.java,
	gnu/java/awt/ClasspathToolkit.java,
	gnu/java/awt/image/XBMDecoder.java,
	gnu/java/awt/peer/GLightweightPeer.java,
	gnu/java/awt/peer/gtk/GdkGlyphVector.java:
	Reorganized import statements.

2004-11-30  Jeroen Frijters  <jeroen@frijters.net>

	* java/awt/Button.java
	(next_button_number): Removed useless initializer.
	* java/awt/Frame.java
	(next_frame_number): Likewise.
	* java/awt/Panel.java
	(next_panel_number): Likewise,
	* java/awt/Scrollbar.java
	(next_scrollbar_number): Likewise.
	* java/awt/TextArea.java
	(next_text_number): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/ByteLookupTable.java
	(ByteLookupTable) :Fixed HTML entities in javadocs.
	(lookupPixel): Fix case when dst is null.
	* java/awt/image/ShortLookupTable.java
	(ShortLookupTable) :Fixed HTML entities in javadocs.
	(lookupPixel): Fix case when dst is null.
	* java/awt/image/DataBufferByte.java,
	java/awt/image/DataBufferDouble.java,
	java/awt/image/DataBufferFloat.java,
	java/awt/image/DataBufferInt.java,
	java/awt/image/DataBufferShort.java,
	java/awt/image/DataBufferUShort.java:
	Fix initialization of bankData in constructors.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(setNativeBounds): Set GtkEventBox, GtkButton and GtkLabel size
	requests.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(setNativeBounds): Make package private.  Set size request even
	if GTK parent is NULL.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
	(setNativeBounds): Set GtkEventBox and GtkLabel size requests.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	Workaround for bug #17952.
	*  jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(request_frame_extents): Check window->window != NULL.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* jni/gtk-peer/gdkfont.h: Include gtkpeer.h not gtkcairopeer.h.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c: Use
	native_text_layout_state_table here.

	* jni/gtk-peer/gdkfont.h: Mark native_text_layout_state_table extern.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
	(setChars): Only call pango_itemize() when vec->glyphitems != NULL.
	Only call pango_shape() when gi->glyphs->num_glyphs > 0.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GtkToolkit.java:
	Merged import statements.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(isBufferedImageGraphics): Simplified.

2004-11-30  Paul Jenner  <psj.home@ntlworld.com>

	* javax/swing/JTree.java
	(isRootVisible): Fixed typo in method name.
	* javax/swing/JScrollBar.java
	(setValues): Likewise.
	* javax/swing/JScrollPane.java
	(createScrollListener): Call JScrollBar.setValues.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (endValidate):
	Don't call setParentAndBounds on GtkWindowPeers.

	* java/awt/Component.java (static): Don't set default keyboard
	focus manager.
	* java/awt/KeyboardFocusManager.java
	(getCurrentKeyboardFocusManager): If current keyboard focus
	manager is null set a default.

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(gtkWidgetSetBackground): New method.
	(block_expose_events_cb): New function.
	(connectSignals): Block the AWT's expose event processing on
	button press and release.
	(gtkSetLabel): Set text on proper widget.
	(gtkWidgetModifyFont): Modify font on proper widget.
	(gtkWidgetSetBackground): Set normal, active and prelight
	colours.
	(gtkWidgetSetForeground): Set forground colour of proper widget.
	(gtkActivate): Activate the correct widget.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (clearRect):
	Only clear rectangle if the backing component is not an event
	box.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(beginNativeRepaintID): New variable.
	(endNativeRepaintID): Likewise.
	(gtkInit): Initialize new fields with method IDs.
	* jni/gtk-peer/gtkpeer.h (beginNativeRepaintID): Declare extern.
	(endNativeRepaintID): Likewise.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/swing/JList.java (init): Revert accidental commit.

	* gnu/java/awt/peer/gtk/GdkGraphics.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (GdkGraphics):
	Call initComponentGraphics or connectSignals depending on
	component's realization status.
	(realize_cb): New function.
	(initComponentGraphics): New method.
	(connectSignals): New method.
	(clipRect): Return immediately if component is not realized.
	(setClip): Likewise.
	(translate): Likewise.
	(drawImage variants): Return false immediately if component is
	not realized.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(connectSignals): New method.
	(GdkGraphics2D): Call initComponentGraphics2D or connectSignals
	depending on component's realization status.  Move other
	initialization calls to ...
	(initComponentGraphics2D): New method.
	(realize_cb): New function.
	(cairoSetMatrix): Return immediately if gr is NULL.
	(cairoNewPath): Likewise.
	(cairoRectangle): Likewise.
	(cairoClip): Likewise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetRepaintArea): Remove method.
	(isRealized): New method.
	(GtkComponentPeer): Move setParent, connectJObject and setCursor
	calls to setParentAndBounds.  Call setParentAndBounds.
	(setParentAndBounds): New method.
	(setComponentBounds): Return immediately if bounds are all zero.
	(repaint): Remove call to gtkWidgetRepaintArea.  Return
	immediately if requested paint region is 0x0.
	(setCursor): New method.
	(gtkWidgetSetParent): Only set widget's parent if its parent is
	currently NULL.
	(setNativeBounds): Only set widget's bounds if it has a parent.
	(connectSignals): Don't call gtk_widget_realize.  Connect
	"realize" signal to connect_awt_hook_cb handler.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (isValidating):
	New field.
	(beginValidate): Set isValidating true.
	(endValidate): Set parents and bounds for children first, then
	for this.  Set isValidating false.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(connectJObject): Remove method.
	(connectSignals): Don't call gtk_widget_realize.
	* gnu/java/awt/peer/gtk/GtkListPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
	(connectJObject): Remove method.
	(connectSignals): Don't call gtk_widget_realize.
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
	(connectJObject): Remove method.
	* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
	(connectJObject): Remove method.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(create): Don't call gtk_widget_realize.
	(connectJObject): Remove method.
	(connectSignals): Don't call gtk_widget_realize.  Connect
	"realize" signal to connect_awt_hook_cb handler.
	(nativeSetBounds): Don't attempt to move GDK window if it is
	NULL.
	* java/awt/Container.java (addImpl): Don't call comp.addNotify
	if peer is not null.
	(validateTree): Create peers for all children before calling
	doLayout.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(connectSignals): Don't call gtk_widget_realize.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(connect_awt_hook_cb): New function.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(initComponentGraphicsID): New variable.
	(initComponentGraphics2DID): Likewise.
	(setCursorID): Likewise.
	(gtkInit): Initialize new fields with method IDs.
	* jni/gtk-peer/gtkpeer.h (initComponentGraphicsID): Declare
	extern.
	(initComponentGraphics2DID): Declare extern.
	(setCursorID): Likewise.
	(connect_awt_hook_cb): Declare function.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java,
	gnu/java/awt/peer/gtk/GdkGlyphVector.java,
	gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
	gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
	gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	gnu/java/awt/peer/gtk/GtkClipboard.java,
	gnu/java/awt/peer/gtk/GtkDialogPeer.java,
	gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
	gnu/java/awt/peer/gtk/GtkFontPeer.java,
	gnu/java/awt/peer/gtk/GtkListPeer.java,
	gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
	gnu/java/awt/peer/gtk/GtkToolkit.java,
	gnu/java/awt/peer/gtk/GtkWindowPeer.java:
	Import statements reworked.  Some little reformattings.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/image/AffineTransformOp.java
	(TYPE_BILINEAR): Initialize with 2.
	* java/awt/print/Printable.java: Jalopied.
	(PAGE_EXISTS): Initialize with 0;
	(NO_SUCH_PAGE): Initialized with 1.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* Makefile.am: Add BufferedImageFilter.java.
	* Makefile.in: Regenerate.

2004-11-30  Graydon Hoare  <graydon@redhat.com>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(install_font_peer): Minor bug fixes to track cairo font semantics.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/BufferedImageFilter.java: Implement.

2004-11-30  Graydon Hoare  <graydon@redhat.com>

	* Makefile.am
	(jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c)
	(jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c)
	(gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java)
	(gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.java): Remove.
	(jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c)
	(jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c)
	(gnu/java/awt/peer/gtk/GdkTextLayout.java)
	(gnu/java/awt/peer/gtk/GdkFontPeer.java)
	(gnu/java/awt/peer/ClasspathTextLayoutPeer.java): Add
	* Makefile.in: Regenerate.
	* gnu/awt/xlib/XToolkit.java
	(getClasspathTextLayoutPeer): Add stub.
	* gnu/java/awt/ClasspathToolkit.java
	(getClasspathTextLayoutPeer) Add.
	* gnu/java/awt/peer/ClasspathFontPeer.java
	(copyStyleToAttrs)
	(copySizeToAttrs): Make public.
	* gnu/java/awt/peer/ClasspathTextLayoutPeer.java: New file.
	* gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java: Remove.
	* gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.java: Remove.
	* gnu/java/awt/peer/gtk/GdkFontMetrics.java: Rewrite.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java: New file.
	* gnu/java/awt/peer/gtk/GdkGlyphVector.java: Adjust type names.
	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(getFontPeer): New function.
	(drawString): Pass font peer to native side.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(cairoSetFont)
	(cairoShowGlyphs)
	(PainterThread): Remove.
	(GdkGraphics2D): Set hints during construction.
	(shifted)
	(walkPath)
	(draw)
	(setRenderingHint)
	(setRenderingHints): Reimplement normalization logic.
	(getDefaultHints)
	(updateBufferedImage)
	(isBufferedImageGraphics)
	(updateImagePixels)
	(drawImage): Make final.
	(drawImage): Always paint synchronously.
	(drawString)
	(drawGlyphVector): Rewrite.
	(releasePeerGraphicResource)
	(getPeerTextMetrics)
	(getPeerFontMetrics)
	(drawGdkGlyphVector)
	(drawGdkTextLayout)
	(cairoDrawGdkGlyphVector)
	(cairoDrawGdkTextLayout)
	(cairoDrawString)
	(getFontPeer): New functions.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java: New file.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getFontMetrics): Get metrics via toolkit, to hit cache.
	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java: Use getFontMetrics.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (LRUCache): New class.
	(fontCache)
	(metricsCache)
	(imageCache): New members.
	(getFontMetrics)
	(getImage)
	(getClasspathFontPeer): Use caches.
	(getFontPeer): Route through getClasspathFontPeer.
	* java/awt/Font.java (attrsToMap): Remove, adjust ctors.
	* java/awt/font/TextLayout.java: Implement in terms of peer.
	* javax/swing/plaf/basic/BasicSliderUI.java
	(paintThumb): Use polyline rather than polygon.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java:
	Update comment but, alas, still do not switch to using TextLayouts.
	* javax/swing/text/Utilities.java (drawTabbedText):
	Draw text run-at-a-time, not char-at-a-time.
	* jni/gtk-peer/gdkfont.h: Publicize some of the font interface, add
	layout table.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c:
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c:
	Remove files.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c: Rewrite to
	incorporate brains of old GdkClasspathFontPeerMetrics.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c: Rewrite to
	incorporate brains of old GdkClasspathFontPeer.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c: New file.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(drawString): Rewrite to use persistent layout in peer font.
	Comment out extraneous gdk_flush calls.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(metrics_cairo)
	(metrics_surface): New static variables.
	(paint_glyph_run)
	(install_font_peer): New helper functions.
	(releasePeerGraphicResource)
	(getPeerTextMetrics)
	(getPeerFontMetrics)
	(cairoDrawGdkTextLayout)
	(cairoDrawGdkGlyphVector): New native methods.
	(cairoDrawString): Rewrite, leaving layout-based version
	commented out for the time being.
	* jni/gtk-peer/gtkpeer.h (graphics): Add fields for pango stuff.

2004-11-30  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/geom/AffineTransform.java:
	Fixed javadocs overall.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentColorModel.java: Remove FIXME comment since
	it's correct.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java: Fix use of immutable
	BigIntegers.

2004-11-30  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java (MessageIcon):
	Renamed from 'messageIcon'.
	(errorIcon, infoIcon, warningIcon, questionIcon): Updated.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/RescaleOp.java: Fix formatting.

2004-11-30   Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(SCROLL_DOWN): made final.
	(SCROLL_UP): made final.

2004-11-30   Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicComboPopup.java:
	Added javadocs for undocumented fields.
	(show): scroll down to the selected item and
	highlight selected item.
	(startAutoScrolling): Implemented.
	(stopAutoScrolling): Implemented.
	(autoScrollUp): Implemented.
	(autoScrollDown): Implemented.
	(InvocationMouseHandler.mouseReleased): Implemented.
	(InvocationMouseMotionHandler.mouseDragged): Implemented.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/RescaleOp.java: Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java (getRGBs,
	convertToIntDiscrete): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java: Add class docs.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java (isValid, getValidPixels):
	Implement.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/MenuBar.java,
	java/awt/peer/MenuBarPeer.java:
	Revert accidentally commited changes.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/AWTKeyStroke.java,
	java/awt/Canvas.java,
	java/awt/CardLayout.java,
	java/awt/CheckboxMenuItem.java,
	java/awt/Component.java,
	java/awt/Container.java,
	java/awt/DefaultKeyboardFocusManager.java,
	java/awt/EventDispatchThread.java,
	java/awt/FileDialog.java,
	java/awt/FlowLayout.java,
	java/awt/Font.java,
	java/awt/Frame.java,
	java/awt/Graphics2D.java,
	java/awt/GraphicsEnvironment.java,
	java/awt/GridBagConstraints.java,
	java/awt/GridBagLayout.java,
	java/awt/GridLayout.java,
	java/awt/Image.java,
	java/awt/KeyboardFocusManager.java,
	java/awt/Label.java,
	java/awt/List.java,
	java/awt/MediaTracker.java,
	java/awt/Menu.java,
	java/awt/MenuBar.java,
	java/awt/MenuComponent.java,
	java/awt/Panel.java,
	java/awt/PopupMenu.java,
	java/awt/ScrollPane.java,
	java/awt/Scrollbar.java,
	java/awt/SystemColor.java,
	java/awt/TextArea.java,
	java/awt/TextField.java,
	java/awt/Toolkit.java,
	java/awt/Window.java,
	java/awt/color/ICC_Profile.java,
	java/awt/datatransfer/DataFlavor.java,
	java/awt/datatransfer/StringSelection.java,
	java/awt/datatransfer/SystemFlavorMap.java,
	java/awt/dnd/Autoscroll.java,
	java/awt/dnd/DropTarget.java,
	java/awt/dnd/DropTargetContext.java,
	java/awt/dnd/DropTargetDragEvent.java,
	java/awt/dnd/peer/DropTargetContextPeer.java,
	java/awt/event/AdjustmentEvent.java,
	java/awt/event/InputEvent.java,
	java/awt/event/InvocationEvent.java,
	java/awt/event/KeyEvent.java,
	java/awt/event/MouseEvent.java,
	java/awt/font/TextLayout.java,
	java/awt/geom/GeneralPath.java,
	java/awt/geom/Point2D.java,
	java/awt/im/InputContext.java,
	java/awt/im/spi/InputMethodContext.java,
	java/awt/image/AffineTransformOp.java,
	java/awt/image/BufferedImage.java,
	java/awt/image/ColorModel.java,
	java/awt/image/ComponentColorModel.java,
	java/awt/image/CropImageFilter.java,
	java/awt/image/DirectColorModel.java,
	java/awt/image/MemoryImageSource.java,
	java/awt/image/PackedColorModel.java,
	java/awt/image/PixelGrabber.java,
	java/awt/image/RasterOp.java,
	java/awt/peer/MenuBarPeer.java:
	Some fixes for checkstyle. Import statement and modifier order
	redordering.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTable.java
	(setModel): Reimplemented.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java
	(append): Re-implemented.
	(insert): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JSpinner.java
	(serialVersionUID): New static field.
	* javax/swing/JToggleButton.java
	(JToggleButton): Fixed email addresses.
	* javax/swing/SpinnerNumberModel.java
	(serialVersionUID): Added javadoc.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java:
	Don't use JTextComponent.doc directly. GCJ from java-gui-branch has a
	bug here which is fixed in HEAD ...

2004-11-30  Andrew John Hughes  <address@hidden>

	* javax/swing/JTextArea.java: Added additional
	documentation.

2004-11-30  Andrew John Hughes  <address@hidden>

	* javax/swing/JRadioButton.java:
	Implemented additional constructors and accessibility
	classes.  Added documentation and fixed a typo in
	AbstractButton.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/IndexColorModel.java (IndexColorModel): Implement
	missing constructor.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentColorModel.java (ComponentColorModel):
	Implement missing 1.4 constructor.

2004-11-30  Andrew John Hughes  <address@hidden>

	* javax/swing/JToggleButton.java:
	Implemented additional constructors and accessibility
	classes.  Added documentation and fixed a typo in
	AbstractButton.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ColorModel.java (getDataElement,
	getDataElements): Document since 1.4.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/BandedSampleModel.java: Implement.
	* Makefile.am: Add java/awt/image/BandedSampleModel.java.
	* Makefile.in: Regenerated.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* java/awt/Window.java: Fixed whitespace difference with GNU
	classpath.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* Makefile.am: Add javax/swing/SpinnerListModel.java.
	* Makefile.in: Regenerated.

2004-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/swing/SpinnerListModel.java, javax/swing/SpinnerModel.java
	Implemented SpinnerListModel.  Added documentation to
	SpinnerModel.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
	(init_dpi_conversion_factor): Apply the patch from main correctly.
	2004-06-26  Andreas Tobler  <a.tobler@schweiz.ch>

2004-11-30  Tom Tromey  <tromey@redhat.com>

	Bug 9948.
	* javax/swing/JDesktopPane.java (LIVE_DRAG_MODE): Now final.
	(OUTLINE_DRAG_MODE): LIVE_DRAG_MODE.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(NON_CONTINUOUS_DIVIDER): Now final.  Initialize.

2004-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/Canvas.java
	(AccessibleAWTCanvas): added serialization UID
	* java/awt/Label.java
	(AccessibleAWTLabel): added serialization UID
	* javax/swing/JRootPane.java
	(AccessibleJRootPane): added comment to existing UID
	* javax/swing/JSpinner.java
	(DefaultEditor): added serialization UID
	(NumberEditor): added serialization UID
	* javax/swing/text/html/HTML.java
	(UnknownTag): added serialization UID

2004-11-30  Jeroen Frijters  <jeroen@frijters.net>

	* javax/swing/JInternalFrame.java
	(CONTENT_PANE_PROPERTY,FRAME_ICON_PROPERTY,GLASS_PANE_PROPERTY,
	IS_CLOSED_PROPERTY,IS_ICON_PROPERTY,IS_MAXIMUM_PROPERTY,
	IS_SELECTED_PROPERTY,LAYERED_PANE_PROPERTY,MENU_BAR_PROPERTY,
	ROOT_PANE_PROPERTY,TITLE_PROPERTY): Made final as per API spec.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(CLOSE_CMD,ICONIFY_CMD,MAXIMIZE_CMD,MOVE_CMD,RESTORE_CMD,SIZE_CMD):
	Made final as per API spec.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* jni/gtk-peer/gtkpeer.h: Remove duplicated copyright string.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/Arc2D.java: Reformatted.
	(setArc): Correct documentation to say 'upper left corner'.
	(setArcByTangent,contains,intersects): Implemented.
	(containsAngle): Corrected to handle negative extents.
	(ArcIterator): Set to private.
	(ArcIterator): Corrected for CHORD-type arcs, negative extents.
	(intersects): Fix: Now checks the arc segment.
	(contains): Cleaned up.
	* java/awt/geom/CubicCurve2a.javaD: Fix insideness-test. Reindent.
	(contains): Implemented.
	(intersects): Implemented.
	* java/awt/geom/QuadCurve2D.java: Fix insideness-test. Reindent.
	* java/awt/geom/GeneralPath: Fix insideness-test. Reindent and
	document.  Fully (re)implemented using separate xpoints and ypoints
	float[] coords.

2004-11-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Introduce AC_C_BIGENDIAN_CROSS for WORDS_BIGENDIAN.
	* configure: Regenerate.
	* include/config.h.in: Likewise.
	* jni/gtk-peer/gtkpeer.h (SWAPU32): Introduce macro to swap pixels.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.c: Moved SWAPU32
	macro to gtkpeer.h.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_getImagePixels): Convert
	pixels from  0xBBGGRRAA to 0xAARRGGBB only on Little Endian
	architectures.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c (area_updated):
	Likewise.

2004-11-30  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/SystemColor.java: Fix @link doc entries.

2004-11-30  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/RenderingHints.java: Documented.
	(RenderingHints): Accept null init Map.
	(putAll): Preprocess map to generate appropriate exceptions.
	(remove): Cast object to Key and remove from hintMap.

2004-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/MenuComponent.java, java/awt/MenuBar.java:
	Implementation of accessibility classes and methods
	for these two components.

2004-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/awt/KeyboardFocusManager.java:
	Added missing documentation.

2004-11-30  Andrew John Hughes <gnu_andrew@member.fsf.org>

	* java/awt/Label.java, java/awt/Canvas.java:
	Added accessibility classes to AWT Label and Canvas,
	as well as additional documentation for Canvas.

2004-11-30  David Gilbert  <address@bogus.example.com>

	* java/awt/image/DataBuffer.java: Update API documentation.
	* java/awt/image/DataBufferByte.java: Likewise.
	* java/awt/image/DataBufferDouble.java: Likewise.
	* java/awt/image/DataBufferFloat.java: Likewise.
	* java/awt/image/DataBufferInt.java: Likewise.
	* java/awt/image/DataBufferShort.java: Likewise.
	* java/awt/image/DataBufferUShort.java: Likewise.

2004-11-30  Dalibor Topic  <robilad@kaffe.org>

	* java/awt/Component.java (postEvent):
	Only delegate to parent if a parent exists.
	Reported by: Stephane Meslin-Weber <steph@tangency.co.uk>

2004-11-30  Sven de Marothy  <sven@physto.se>

	*java/awt/AWTEventMulticaster.java,
	java/awt/Adjustable.java,
	java/awt/Point.java,
	java/awt/Polygon.java,
	java/awt/Rectangle.java,
	java/awt/Shape.java,
	java/awt/geom/Area.java,
	java/awt/geom/Ellipse2D.java,
	java/awt/geom/PathIterator.java,
	java/awt/geom/Point2D.java,
	java/awt/geom/Rectangle2D.java,
	java/lang/Comparable.java,
	java/util/Arrays.java:
	Fixed documentation errors

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentSampleModel.java: Add documentation.


2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ComponentSampleModel.java (constructor):
	Initialize numBanks when figuring out the max bank index.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/Raster.java (createPackedRaster): Implement
	MultiPixelPackedSampleModel codepath.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/MultiPixelPackedSampleModel.java: Implement.
	* Makefile.am: Add MultiPixelPackedSampleModel.java.
	* Makefile.in: Regenerate.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/Raster.java (getNumBands): Implement.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/Raster.java
	(createPackedRaster(int,int,int,int,int,Point)): Implement for
	bands>1.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/SinglePixelPackedSampleModel.java
	(SinglePixelPackedSampleModel): Throw exception for unsupported
	datatype.

2004-11-30  Jerry Quinn  <jlquinn@optonline.net>

	* java/awt/image/ColorModel.java (getDataElement): Implemented.
	Update javadoc.
	(getDataElements): Add missing version.  Remove bogus version.
	Update javadoc.

2004-11-30  Olga Rodimina  <rodimina@redhat.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java:
	(paintCurrentValue): Pass correct parameters to
	getListCellRendererComponent().
	(ListDataHandler.intervalRemoved): Implemented.
	(PropertyChangeHandler.propertyChange): Handle changes in
	MODEL_CHANGED_PROPERTY of the JComboBox
	* javax/swing/plaf/basic/BasicComboPopup.java:
	(BasicComboPopup): Moved code that configures popup to
	configurePopup() and call it instead.
	(firePopupMenuWillBecomeVisible): Implemented.
	(firePopupMenuWillBecomeInvisible): Likewise.
	(firePopupMenuCanceled): Likewise.
	(configureList): Set list's visibleRowCount same as
	comboBox's visibleRowCount.
	(configurePopup): Implemented.
	(getPopupHeightForRowCount): Get item's from JComboBox's model and
	not from model of the JList.
	(ListMouseMotionHandler.mouseMoved): Implemented.
	(PropertyChangeHandler.propertyChange): Handles change in the
	JComboBox's model.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JComponent.java
	(isMaximumSizeSet): New method.
	(isMinimumSizeSet): Likewise.
	(isPreferredSizeSet): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JSpinner.java:
	Some Re-formatting.
	(spinner): New field.
	(DefaultEditor): New method.
	(getSpinner): Likewise.
	(NumberEdito): Likewise.
	(getModel): Likewise

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/InputVerifier.java:
	Re-formatted.
	* javax/swing/JComponent.java
	(inputVerifier): New property field.
	(getInputVerifier): New method.
	(setInputVerifier): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JComponent.java
	(JComponent): Added javadoc comment.
	(setBorder): Fire property change eventr.
	(setEnabled): Likewise.
	(setMaximumSize): Likewise.
	(setMinimumSize): Likewise.
	(setPreferredSize): Likewise.
	(setOpaque): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextField.java
	(action): New field.
	(actionCommand): Likewise.
	(actionPropertyChangeListener): Likewise.
	(setHorizontalAlignment): Abort soon if new value == old value. Fire
	event before repainting.
	(postActionEvent): New method.
	(getAction): Likewise.
	(setAction): Likewise.
	(getActionCommand): Likewise.
	(setActionCommand): Likewise.
	(createActionPropertyChangeListener): Likewise.
	(configurePropertiesFromAction): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/DebugGraphics.java:
	Re-formatted. Fixed some javadocs.
	* javax/swing/JApplet.java
	(rootPaneCheckingEnabled): Renamed from checking.
	* javax/swing/JCheckBox.java
	(BORDER_PAINTED_FLAT_CHANGED_PROPERTY): New statif field.
	* javax/swing/JFrame.java:
	Re-formatted a bit and reordered some methods.
	(rootPaneCheckingEnabled): Renamed from checking.
	(getPreferredSize): Simplified.
	* javax/swing/JTextArea.java
	(getColumnWidth): New method.
	(getLineCount): Likewise.
	(getLineStartOffset): Likewise.
	(getLineEndOffset): Likewise.
	(getLineOfOffset): Likewise.
	(getRowHeight): Likewise.
	(insert): Likewise.
	(replaceRange): Likewise.
	* javax/swing/JTextField.java
	(scrollOffset): new field.
	(getScrollOffset): New method.
	(setScrollOffset): Likewise.
	(getColumnWidth): Likewise.
	* javax/swing/JTree.java
	(ANCHOR_SELECTION_PATH_PROPERTY): New static field.
	(CELL_EDITOR_PROPERTY): Likewise.
	(CELL_RENDERER_PROPERTY): Likewise.
	(EDITABLE_PROPERTY): Likewise.
	(EXPANDS_SELECTED_PATHS_PROPERTY): Likewise.
	(INVOKES_STOP_CELL_EDITING_PROPERTY): Likewise.
	(LARGE_MODEL_PROPERTY): Likewise.
	(LEAD_SELECTION_PATH_PROPERTY): Likewise.
	(ROOT_VISIBLE_PROPERTY): Likewise.
	(ROW_HEIGHT_PROPERTY): Likewise.
	(SCROLLS_ON_EXPAND_PROPERTY): Likewise.
	(SELECTION_MODEL_PROPERTY): Likewise.
	(SHOWS_ROOT_HANDLES_PROPERTY): Likewise.
	(TOGGLE_CLICK_COUNT_PROPERTY): Likewise.
	(TREE_MODEL_PROPERTY): Likewise.
	(VISIBLE_ROW_COUNT_PROPERTY): Likewise.
	(cellEditor): New field.
	(invokesStopCellEditing): Likewise.
	(largeModel): Likewise.
	(rowHeight): Likewise.
	(scrollsOnExpand): Likewise.
	(selectionModel): Likewise.
	(toggleClickCount): Likewise.
	(visibleRowCount): Likewise.
	(setShowsRootHandles): Fixed typo in method name.
	(getCellEditor): New method.
	(setCellEditor): Likewise.
	(getSelectionModel): Likewise.
	(setSelectionModel): Likewise.
	(getVisibleRowCount): Likewise.
	(setVisibleRowCount): Likewise.
	(isLargeModel): Likewise.
	(setLargeModel): Likewise.
	(getRowHeight): Likewise.
	(setRowHeight): Likewise.
	(getInvokesStopCellEditing): Likewise.
	(setInvokesStopCellEditing): Likewise.
	(getToggleClickCount): Likewise.
	(setToggleClickCount): Likewise.
	(getScrollsOnExpand): Likewise.
	(setScrollsOnExpand): Likewise.
	* javax/swing/table/DefaultTableColumnModel.java
	(addColumnModelListener): Fixed javadoc.
	(removeColumnModelListener): Implemented. Fixed javadoc.
	(getColumnModelListeners): New method.
	* javax/swing/table/JTableHeader.java
	(columnModel): Made protected.
	(draggedColumn): Likewise.
	(draggedDistance): Likewise.
	(reorderingAllowed): Likewise.
	(resizingAllowed): Likewise.
	(resizingColumn): Likewise.
	(table): Likewise.
	(updateTableInRealTime): Likewise.
	(createDefaultColumnModel): Renamed from
	createDefaultTableColumnModel.
	(setDefaultRenderer): New method.
	* javax/swing/table/TableColumn.java
	(getPropertyChangeListeners): New method.
	* javax/swing/text/DefaultHighlighter.java
	(drawsLayeredHighlights): New field.
	(getDrawsLayeredHighlights): New method.
	(setDrawsLayeredHighlights): Likewise.
	* javax/swing/text/DocumentFilter.java
	(FilterBypass): New inner class.
	(insertString): New method.
	(remove): Likewise.
	(replace): Likewise.
	* javax/swing/text/JTextComponent.java
	(dragEnabled): New field.
	(getSelectedText): New method.
	(getDragEnabled): Likewise.
	(setDragEnabled): Likewise.
	(replaceSelection): Reimplemented.
	* javax/swing/text/NavigationFilter.java
	(FilterBypass): New inner class.
	(NavigationFilter): New method.
	(moveDot): Likewise.
	(setDot): Likewise.
	* javax/swing/text/SimpleAttributeSet.java
	(EMPTY): Made public final.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SpinnerNumberModel.java
	(getMinimum): New method.
	(setMinimum): Likewise.
	(getMaximum): Likewise.
	(setMaximum): Likewise.
	(getStepSize): Likewise.
	(setStepSize): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JMenu.java
	(getMenuListeners): New method.
	(fireMenuSelected): Simplified.
	* javax/swing/JRootPane.java
	(NONE): New static field.
	(FRAME): Likewise.
	(PLAIN_DIALOG): Likewise.
	(INFORMATION_DIALOG): Likewise.
	(ERROR_DIALOG): Likewise.
	(COLOR_CHOOSER_DIALOG): Likewise.
	(FILE_CHOOSER_DIALOG): Likewise.
	(QUESTION_DIALOG): Likewise.
	(WARNING_DIALOG): Likewise.
	(defaultButton): New field.
	(getDefaultButton): New method.
	(setDefaultButton): Likewise.
	* javax/swing/JScrollPane.java
	(getUI): New method.
	(setUI): Likewise.
	* javax/swing/JTable.java
	(getUI): Javadoc added.
	(setUI): New method.
	* javax/swing/JViewport.java
	(getUI): New method.
	(setUI): Likewise.
	* javax/swing/UIDefaults.java
	(removePropertyChangeListener): Made public.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JApplet.java, javax/swing/JFrame.java:
	Re-indented.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/AbstractButton.java:
	Little re-formatting.
	(changeEvent): Made protected.
	(fireStateChanged): Removed argument.
	(setHorizontalAlignment): Abort method when old value is equal too new
	value.
	(setHorizontalTextPosition): Likewise.
	(setVerticalAlignment): Likewise.
	(setVerticalTextPosition): Likewise.
	(setBorderPainted): Likewise.
	(setIcon): Likewise.
	(setText): Likewise.
	(setIconTextGap): Likewise.
	(setMargin): Likewise.
	(setPressedIcon): Likewise.
	(setFocusPainted): Likewise.
	(setDisabledSelectedIcon): Likewise.
	(setRolloverIcon): Likewise.
	(setRolloverSelectedIcon): Likewise.
	(setSelectedIcon): Likewise.
	(setContentAreaFilled): Likewise.

2004-11-30  Kim Ho  <kho@redhat.com>

	* javax/swing/plaf/basic/BasicArrowButton.java:
	Jalopy. Reimplement.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	Jalopy.
	(arrowIcon, upIcon, downIcon, leftIcon,
	rightIcon): Removed.
	(createIncreaseButton): Use BasicArrowButton.
	(createDecreaseButton): Ditto.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java:
	(createRightOneTouchButton): Remove button border.
	(createLeftOneTouchButton): Ditto.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JSpinner.java
	(setModel): New method.
	* javax/swing/SpringLayout.java
	(Constraints): May not be final.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* gnu/java/awt/peer/gtk/GtkClipboard.java,
	java/awt/datatransfer/Clipboard.java,
	java/awt/datatransfer/ClipboardOwner.java:
	Reformated to make it use our coding standard.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/SpinnerNumberModel.java
	(SpinnerNumberModel): Implements java.io.Serializable.
	(serialVersionUID): New field.
	(SpinnerNumberModel): Added missing @throws tags to javadocs.
	* javax/swing/UIManager.java
	(get): New method.
	(getBoolean): Likewise.
	(getBorder): Likewise.
	(getColor): Likewise.
	(getDimension): Likewise.
	(getFont): Likewise.
	(getIcon): Likewise.
	(getInsets): Likewise.
	(getInt): Likewise.
	(getString): Likewise.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JPasswordField.java:
	Reformated. Implemented construtors.
	* javax/swing/plaf/basic/BasicPasswordFieldUI.java
	(create): New method.
	* javax/swing/text/PlainView.java
	(selectedColor): Made package-private to allow access from sub-classes
	in same package too.
	(unselectedColor): Likewise.
	(font): Likewise.
	(drawSelectedText): Make protected.
	(drawUnselectedText): Likewise.
	* javax/swing/text/PasswordView.java: New file.
	* Makefile.am: Added javax/swing/text/PasswordView.java.
	* Makefile.in: Regenerated.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java (setMenuBar): Set menu
	bar's width.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (nativeSetHelpMenu):
	Add FIXME comment.
	(addHelpMenu): Elide call to nativeSetHelpMenu.
	* java/awt/Menu.java (isTearOff): Rename to tearOff.
	(menuSerializedDataVersion): Initialize to 1.
	(separatorLabel): Mark transient.
	(insert(MenuItem,int)): Implement.
	* java/awt/MenuBar.java (setHelpMenu): Call getPeer to retrieve
	peer.
	(countMenus): Count help menu.
	* java/awt/MenuComponent.java (nameExplicitlySet, newEventsOnly,
	accessibleContext): Add fields.
	* java/awt/MenuItem.java: Remove event mask FIXME.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
	(gtkWidgetModifyFont): Only set font if label is non-NULL.
	(setLabel): Don't treat "-" specially.

2004-11-30  Kim Ho  <kho@redhat.com>

	* javax/swing/colorchooser/DefaultHSBChooserPanel.java:
	(stateChanged): Only update the image and the track if
	the values are not being adjusted.
	(updateChooser): Grab the new mouse point from the
	spinner values. Update the image and track only if
	the values are not being adjusted.
	(getHSBValues): New method.
	* javax/swing/colorchooser/DefaultRGBChooserPanel.java:
	(SliderHandler::stateChanged): Changed internalChange
	to updateChange. Set sliderChange.
	(SpinnerHandler::stateChanged): Ditto. Set spinnerChange.
	(spinnerChange): New variable.
	(sliderChange): Ditto.
	(updateChange): Renamed from internalChange.
	(updateChooser): Do not update sliders if the sliders
	were the original source of the change. Ditto for spinners.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(mousePress): Don't scroll the JViewport if there will
	be extra space at the end of the run. Change layout() to
	revalidate().
	(calculateSize): Use the component's width/height unless
	it is smaller than the max tab width/height.
	(calculateTabRects): Subtract the tab run overlay.
	(rotateTabRuns): Don't rotate if there's only one run.
	(layoutContainer): Reuse the viewport point.
	(createLayoutManager): Set the viewport to use no layout.
	(paintTabArea): Don't paint the tabs that are not visible
	to the JViewport.
	(paintContentBorderTopEdge): Check for scroll tab layout before
	looking for gap.
	(paintContentBorderLeftEdge): Ditto.
	(paintContentBorderBottomEdge): Ditto.
	(paintContentBorderRightEdge): Ditto.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkButtonPeer.java (gtkWidgetSetFont):
	Rename ...
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	(setMenuBarWidth): New method.
	(setBounds): Set the menu bar width.
	(postConfigureEvent): Set the menu bar width if the window's
	width has changed.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (GtkMenuBarPeer):
	Don't call create.
	(setFont): New method.
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java (create): New
	method.
	(setFont): Likewise.
	(GtkMenuComponentPeer): Call create and setFont.
	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
	(connectSignals): Make package private.
	(gtkWidgetModifyFont): New method.
	(create): Likewise.
	(GtkMenuItemPeer): Don't call create.
	(setFont): New method.
	* java/awt/CheckboxMenuItem.java (addNotify): Fix peer == null
	condition.
	* java/awt/Container.java (validateTree): Fix comment typos.
	* java/awt/MenuComponent.java (getFont): Return parent's font if
	our font is null.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c
	(create): Remove call to deprecated
	gtk_check_menu_item_set_show_toggle function.

2004-11-30  Hans Boehm <Hans.Boehm@hp.com>

	* java/lang/natObject.cc (LOCK_LOG, LOG): Add debug tracing.
	(Almost everywhere): add LOG calls, fix, add comments.
	(_Jv_MonitorEnter): Replace masking of LOCKED bit with assertion.
	Add explicit check for LOCKED bit in slow case (PR 16662).
	(_Jv_MonitorExit): Add casts in debug-only code.
	Always release LOCKED bit before throwing exception.
	(_Jv_ObjectCheckMonitor): Lock may be held if lightweight lock
	isn't.  Handle easy cases without lock acquisition.
	(Object::wait): Use NotifyAll for lock inflation.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFramePeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	(gtkFixedMove): Remove method.

2004-11-30  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/Area.java: Implemented.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* java/awt/geom/Arc2D.java (ArcIterator): Make package private.

2004-11-30 Sven de Marothy <sven@physto.se>

	* java/awt/geom/Arc2D.java
	Reformatted.
	(setArc): Correct documentation to say 'upper left corner'.
	(setArcByTangent,contains,intersects): Implemented.
	(containsAngle): Corrected to handle negative extents.
	(ArcIterator): Set to private.
	(ArcIterator): Corrected for CHORD-type arcs, negative extents.
	* java/awt/geom/Ellipse2D.java
	Documented.
	(contains,intersects): Implemented.
	* java/awt/geom/Line2D.java
	(linesIntersect): Correct handling of special cases.

2004-11-30  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkGraphics.java (setColor): Use
	Color.BLACK if c == null, don't create new Color object each time.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (comp): New private
	field.
	(setColor): Use Color.BLACK when argument null.
	(setComposite): Set this.comp field.
	(getComposite): Return this.comp, or AlphaComposite.SrcOver when null.
	(DrawState.comp): New private field.
	(DrawState.save): Save Composite.
	(DrawState.restore): Restore comp field.
	* java/awt/FontMetrics.java (gRC): New static final private field.
	(getLineMetrics(String, Graphics)): New method.
	(getLineMetrics(String, int, int, Graphics)): Likewise.
	(getLineMetrics(char[], int, int, Graphics)): Likewise.
	(getLineMetrics(CharacterIterator, int, int, Graphics)): Likewise.
	* javax/swing/JMenu.java (JMenu(String, boolean)): Ignore tearoff
	argument. PR SWING/17294.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java (): Always use
	the fall-back code since none of the TextArea methods are really
	implemented now. PR SWING/17296.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c
	(GdkGlyphVector_setChars): Replace assert() with if block when
	pango_itemize() returns null. PR AWT/17295.
	(GdkGlyphVector_allInkExtents): Likewise when vec->glyphitems is null.

2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (gtk_c_source_files): Add
	gnu_java_awt_peer_gtk_GtkFramePeer.c.
	* Makefile.in: Regenerate.
	* gnu/java/awt/peer/gtk/GdkGraphics.java (getClipBounds): Remove
	comment.
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(create): Pack GtkButton in GtkEventBox.
	(connectJObject): Remove.
	(focus_in_cb): New function.
	(focus_out_cb): Likewise.
	(connectSignals): Connect focus-in-event and focus-out-event
	signals.
	(gtkSetFont): Rename to ...
	(gtkWidgetModifyFont): New method.
	(gtkWidgetRequestFocus): New method.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(gtkSetFont): Rename to ...
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(isInRepaint): New field.
	(gtkSetFont): Remove method.
	(addExposeFilter): Likewise.
	(removeExposeFilter): Likewise.
	(gtkWidgetQueueDrawArea): Rename to ...
	(gtkWidgetRepaintArea): New method.
	(beginNativeRepaint): New method.
	(endNativeRepaint): New method.
	(setComponentBounds): Move implementation here from
	GtkComponentPeer.
	(paint): Remove implementation.
	(repaint): Wrap call to gtkWidgetRepaintArea with calls to
	beginNativeRepaint and endNativeRepaint.
	(setBounds): Use menu bar height in bounds calculation.
	(postExposeEvent): Only post paint event if we're not doing a
	native repaint.
	(gtkWidgetSetParent): Replace gtk_layout_put with gtk_fixed_put.
	(setNativeBounds): Replace gtk_layout_move with gtk_fixed_move.
	(find_gtk_layout): Remove function.
	(filter_expose_event_handler): Likewise.
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java (postExposeEvent):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(setComponentBounds): Call GtkComponentPeer's
	setComponentBounds.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (getMenuBarHeight):
	New method.
	(moveLayout): Rename to ...
	(gtkFixedMove): New method.
	(gtkLayoutSetVisible): Rename to ...
	(gtkFixedSetVisible): New method.
	(setMenuBar): Rearrange, to make the three separate cases
	clearer.
	(postExposeEvent): Only post paint event if we're not doing a
	native repaint.
	* gnu/java/awt/peer/gtk/GtkGenericPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkImagePainter.java
	(GtkImagePainter(GtkImage,GdkGraphics,int,int,int,int,Color)):
	Call run directly, rather than spawning a new thread.
	(GtkImagePainter(GtkImage,GdkGraphics,int,int,int,int,int,int,int,int,Color)):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c (gtkSetFont):
	Rename to ...
	(gtkWidgetModifyFont): New method.
	(create): Rename ebox to eventbox.
	* gnu/java/awt/peer/gtk/GtkListPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c (gtkSetFont):
	Rename to ...
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
	(GtkMenuComponentPeer): Set the default font.
	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(gtkSetFont): Rename to ...
	(gtkWidgetModifyFont): New method.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c: Likewise.
	* java/awt/Component.java (locale): Initialize to default
	locale.
	* java/awt/Container.java (invalidateTree): Make
	package-private.
	(paint): Paint self first.
	(setMenuBar): Call invalidateTree.
	* java/awt/Panel.java (dispatchEventImpl): Remove method.
	* java/awt/Window.java (show): Call no-parameter variant of
	requestFocusInWindow.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (initState):
	Remove special case for window widget.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(grab_current_drawable): Likewise.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
	(create): Replace GtkLayout with GtkFixed.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
	(pre_event_handler): Remove special cases for GDK_EXPOSE events.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c: New file.
	Move all GtkFramePeer native method implementations here from
	gnu_java_awt_peer_gtk_GtkWindowPeer.c.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c (create):
	Replace GtkLayout with GtkFixed.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(find_layout): Remove function.
	(create): Replace GtkLayout with GtkFixed.
	(connectSignals): Remove find_layout call.
	(toBack): Replace XFlush with gdk_flush.
	(toFront): Replace XFlush with gdk_flush.
	Move GtkFramePeer native method implementations to
	gnu_java_awt_peer_gtk_GtkFramePeer.c.
	* jni/gtk-peer/gtkpeer.h: Remove declaration of find_gtk_layout.

2004-11-30  Michael Koch  <konqueror@gmx.de>

	* javax/swing/JTextArea.java
	(lineWrap): Renamed from "wrapping".
	(wrapStyleWord): NEw field.
	(getLineWrap): Re-edited javadoc comment.
	(setLineWrap): Likewise.
	(getWrapStyleWord): New method.
	(setWrapStyleWord): Likewise.

From-SVN: r91544
This commit is contained in:
Graydon Hoare 2004-11-30 23:59:12 +00:00
parent c21accc5d9
commit ea28b8f60f
429 changed files with 29663 additions and 8685 deletions

View file

@ -44,6 +44,7 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.HashMap;
import javax.swing.event.SwingPropertyChangeSupport;
/**

View file

@ -45,8 +45,6 @@ import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.beans.PropertyChangeEvent;
@ -240,7 +238,7 @@ public abstract class AbstractButton extends JComponent
PropertyChangeListener actionPropertyChangeListener;
/** ChangeEvent that is fired to button's ChangeEventListeners */
private ChangeEvent changeEvent = new ChangeEvent(this);
protected ChangeEvent changeEvent = new ChangeEvent(this);
/** Fired in a PropertyChangeEvent when the "borderPainted" property changes. */
public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted";
@ -441,8 +439,7 @@ public abstract class AbstractButton extends JComponent
{
return null; // TODO
}
}
}
/**
* Creates a new AbstractButton object.
@ -691,11 +688,8 @@ public abstract class AbstractButton extends JComponent
/**
* Calls {@link ChangeEvent.stateChanged} on each {@link ChangeListener}
* in the button's listener list.
*
* @param e The event signifying a change in one of the (non-bound)
* properties of the button's model.
*/
public void fireStateChanged(ChangeEvent e)
public void fireStateChanged()
{
ChangeListener[] listeners = getChangeListeners();
@ -785,8 +779,8 @@ public abstract class AbstractButton extends JComponent
{
if (index < -1 || (text != null && index >= text.length()))
throw new IllegalArgumentException();
else
mnemonicIndex = index;
mnemonicIndex = index;
}
/**
@ -892,14 +886,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setHorizontalAlignment(int a)
{
if (horizontalAlignment == a)
return;
int old = horizontalAlignment;
horizontalAlignment = a;
if (old != a)
{
firePropertyChange(HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, old, a);
revalidate();
repaint();
}
firePropertyChange(HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, old, a);
revalidate();
repaint();
}
/**
@ -929,14 +923,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setHorizontalTextPosition(int t)
{
if (horizontalTextPosition == t)
return;
int old = horizontalTextPosition;
horizontalTextPosition = t;
if (old != t)
{
firePropertyChange(HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, old, t);
revalidate();
repaint();
}
firePropertyChange(HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, old, t);
revalidate();
repaint();
}
/**
@ -964,14 +958,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setVerticalAlignment(int a)
{
if (verticalAlignment == a)
return;
int old = verticalAlignment;
verticalAlignment = a;
if (old != a)
{
firePropertyChange(VERTICAL_ALIGNMENT_CHANGED_PROPERTY, old, a);
revalidate();
repaint();
}
firePropertyChange(VERTICAL_ALIGNMENT_CHANGED_PROPERTY, old, a);
revalidate();
repaint();
}
/**
@ -1001,14 +995,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setVerticalTextPosition(int t)
{
if (verticalTextPosition == t)
return;
int old = verticalTextPosition;
verticalTextPosition = t;
if (old != t)
{
firePropertyChange(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY, old, t);
revalidate();
repaint();
}
firePropertyChange(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY, old, t);
revalidate();
repaint();
}
/**
@ -1032,14 +1026,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setBorderPainted(boolean b)
{
if (borderPainted == b)
return;
boolean old = borderPainted;
borderPainted = b;
if (b != old)
{
firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, old, b);
revalidate();
repaint();
}
borderPainted = b;
firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, old, b);
revalidate();
repaint();
}
/**
@ -1078,10 +1072,7 @@ public abstract class AbstractButton extends JComponent
action.removePropertyChangeListener(actionPropertyChangeListener);
actionPropertyChangeListener = null;
}
}
}
Action old = action;
action = a;
@ -1112,14 +1103,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setIcon(Icon i)
{
if (default_icon != i)
{
if (default_icon == i)
return;
Icon old = default_icon;
default_icon = i;
firePropertyChange(ICON_CHANGED_PROPERTY, old, i);
revalidate();
repaint();
}
}
/**
@ -1138,6 +1129,8 @@ public abstract class AbstractButton extends JComponent
* "text" property.
*
* @param label The new "label" property
*
* @deprecated use <code>setText(text)</code>
*/
public void setLabel(String label)
{
@ -1149,6 +1142,8 @@ public abstract class AbstractButton extends JComponent
* the "text" property.
*
* @return The current "label" property
*
* @deprecated use <code>getText()</code>
*/
public String getLabel()
{
@ -1163,15 +1158,15 @@ public abstract class AbstractButton extends JComponent
*/
public void setText(String t)
{
if (text == t)
return;
String old = text;
text = t;
if (t != old)
{
firePropertyChange(TEXT_CHANGED_PROPERTY, old, t);
firePropertyChange(TEXT_CHANGED_PROPERTY, old, t);
revalidate();
repaint();
}
}
/**
* Set the value of the {@link #iconTextGap} property.
@ -1180,14 +1175,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setIconTextGap(int i)
{
if (iconTextGap == i)
return;
int old = iconTextGap;
iconTextGap = i;
if (old != i)
{
fireStateChanged(new ChangeEvent(this));
revalidate();
repaint();
}
fireStateChanged();
revalidate();
repaint();
}
/**
@ -1207,7 +1202,7 @@ public abstract class AbstractButton extends JComponent
*
* @return The current "margin" property
*/
public Insets getMargin()
public Insets getMargin()
{
return margin;
}
@ -1221,15 +1216,15 @@ public abstract class AbstractButton extends JComponent
*/
public void setMargin(Insets m)
{
if (margin == m)
return;
Insets old = margin;
margin = m;
if (m != old)
{
firePropertyChange(MARGIN_CHANGED_PROPERTY, old, m);
revalidate();
firePropertyChange(MARGIN_CHANGED_PROPERTY, old, m);
revalidate();
repaint();
}
}
/**
* Return the button's "pressedIcon" property. The look and feel class
@ -1254,15 +1249,15 @@ public abstract class AbstractButton extends JComponent
*/
public void setPressedIcon(Icon pressedIcon)
{
if (pressed_icon == pressedIcon)
return;
Icon old = pressed_icon;
pressed_icon = pressedIcon;
if (pressed_icon != old)
{
firePropertyChange(PRESSED_ICON_CHANGED_PROPERTY, old, pressed_icon);
firePropertyChange(PRESSED_ICON_CHANGED_PROPERTY, old, pressed_icon);
revalidate();
repaint();
}
}
/**
* Return the button's "disabledIcon" property. The look and feel class
@ -1323,15 +1318,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setFocusPainted(boolean p)
{
if (focusPainted == p)
return;
boolean old = focusPainted;
focusPainted = p;
if (old != focusPainted)
{
firePropertyChange(FOCUS_PAINTED_CHANGED_PROPERTY, old, p);
revalidate();
repaint();
}
firePropertyChange(FOCUS_PAINTED_CHANGED_PROPERTY, old, p);
revalidate();
repaint();
}
/**
@ -1554,7 +1548,7 @@ public abstract class AbstractButton extends JComponent
{
public void stateChanged(ChangeEvent e)
{
AbstractButton.this.fireStateChanged(e);
AbstractButton.this.fireStateChanged();
AbstractButton.this.repaint();
}
};
@ -1612,13 +1606,13 @@ public abstract class AbstractButton extends JComponent
getModel().setArmed(true);
getModel().setPressed(true);
try
{
{
java.lang.Thread.sleep(pressTime);
}
}
catch (java.lang.InterruptedException e)
{
{
// probably harmless
}
}
getModel().setPressed(false);
getModel().setArmed(false);
}
@ -1644,21 +1638,19 @@ public abstract class AbstractButton extends JComponent
* <code>true</code>. This icon can be <code>null</code>, in which case
* it is synthesized from the button's selected icon.
*
* @param disabledSelectedIcon The new disabled selected icon
* @param icon The new disabled selected icon
*/
public void setDisabledSelectedIcon(Icon disabledSelectedIcon)
public void setDisabledSelectedIcon(Icon icon)
{
if (disabledSelectedIcon == icon)
return;
Icon old = disabledSelectedIcon;
disabledSelectedIcon = disabledSelectedIcon;
if (old != disabledSelectedIcon)
{
firePropertyChange(DISABLED_SELECTED_ICON_CHANGED_PROPERTY, old,
disabledSelectedIcon);
revalidate();
repaint();
disabledSelectedIcon = icon;
firePropertyChange(DISABLED_SELECTED_ICON_CHANGED_PROPERTY, old, icon);
revalidate();
repaint();
}
}
/**
* Return the button's rollover icon. The look and feel class should
@ -1681,15 +1673,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setRolloverIcon(Icon r)
{
if (rolloverIcon == r)
return;
Icon old = rolloverIcon;
rolloverIcon = r;
if (old != rolloverIcon)
{
firePropertyChange(ROLLOVER_ICON_CHANGED_PROPERTY, old,
rolloverIcon);
revalidate();
repaint();
}
firePropertyChange(ROLLOVER_ICON_CHANGED_PROPERTY, old, rolloverIcon);
revalidate();
repaint();
}
/**
@ -1715,17 +1706,15 @@ public abstract class AbstractButton extends JComponent
*/
public void setRolloverSelectedIcon(Icon r)
{
if (rolloverSelectedIcon == r)
return;
Icon old = rolloverSelectedIcon;
rolloverSelectedIcon = r;
if (old != rolloverSelectedIcon)
{
firePropertyChange(ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, old,
rolloverSelectedIcon);
revalidate();
repaint();
firePropertyChange(ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, old, r);
revalidate();
repaint();
}
}
/**
* Return the button's selected icon. The look and feel class should
@ -1752,15 +1741,14 @@ public abstract class AbstractButton extends JComponent
*/
public void setSelectedIcon(Icon s)
{
if (selectedIcon == s)
return;
Icon old = selectedIcon;
selectedIcon = s;
if (old != selectedIcon)
{
firePropertyChange(SELECTED_ICON_CHANGED_PROPERTY, old,
selectedIcon);
revalidate();
repaint();
}
firePropertyChange(SELECTED_ICON_CHANGED_PROPERTY, old, s);
revalidate();
repaint();
}
/**
@ -1777,9 +1765,9 @@ public abstract class AbstractButton extends JComponent
Object[] objs = new Object[1];
objs[0] = getText();
return objs;
}
}
else
{
{
return null;
}
}
@ -1800,9 +1788,9 @@ public abstract class AbstractButton extends JComponent
*/
public boolean imageUpdate(Image img, int infoflags, int x, int y, int w,
int h)
{
{
return current_icon == img;
}
}
/**
* Returns the value of the button's "contentAreaFilled" property. This
@ -1814,9 +1802,9 @@ public abstract class AbstractButton extends JComponent
* @return The current value of the "contentAreaFilled" property
*/
public boolean isContentAreaFilled()
{
{
return contentAreaFilled;
}
}
/**
* Sets the value of the button's "contentAreaFilled" property. This
@ -1828,16 +1816,16 @@ public abstract class AbstractButton extends JComponent
* @param b The new value of the "contentAreaFilled" property
*/
public void setContentAreaFilled(boolean b)
{
{
if (contentAreaFilled == b)
return;
boolean old = contentAreaFilled;
contentAreaFilled = b;
if (b != old)
{
firePropertyChange(CONTENT_AREA_FILLED_CHANGED_PROPERTY, old, b);
revalidate();
repaint();
}
}
firePropertyChange(CONTENT_AREA_FILLED_CHANGED_PROPERTY, old, b);
revalidate();
repaint();
}
/**
* Paints the button's border, if the button's "borderPainted" property is
@ -1846,10 +1834,10 @@ public abstract class AbstractButton extends JComponent
* @param g The graphics context used to paint the border
*/
protected void paintBorder(Graphics g)
{
{
if (isBorderPainted())
super.paintBorder(g);
}
}
/**
* Returns a string, used only for debugging, which identifies or somehow
@ -1862,7 +1850,6 @@ public abstract class AbstractButton extends JComponent
return "AbstractButton";
}
/**
* Set the "UI" property of the button, which is a look and feel class
* responsible for handling the button's input events and painting it.
@ -1870,9 +1857,9 @@ public abstract class AbstractButton extends JComponent
* @param ui The new "UI" property
*/
public void setUI(ButtonUI ui)
{
{
super.setUI(ui);
}
}
/**
* Set the "UI" property of the button, which is a look and feel class
@ -1883,7 +1870,7 @@ public abstract class AbstractButton extends JComponent
public ButtonUI getUI()
{
return (ButtonUI) ui;
}
}
/**
* Set the "UI" property to a class constructed, via the {@link

View file

@ -40,6 +40,7 @@ package javax.swing;
import java.io.Serializable;
import java.util.EventObject;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.EventListenerList;

View file

@ -1,5 +1,5 @@
/* AbstractListModel.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,15 +35,16 @@ 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 java.io.Serializable;
import java.util.EventListener;
import javax.swing.event.EventListenerList;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
/**
* AbstractListModel
*

View file

@ -35,9 +35,11 @@ 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 java.util.EventListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;

View file

@ -44,7 +44,6 @@ import java.io.Serializable;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

View file

@ -1,5 +1,5 @@
/* BorderFactory.java
Copyright (C) 2002 Free Software Foundation, Inc.
/* BorderFactory.java --
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -40,6 +40,7 @@ package javax.swing;
import java.awt.Color;
import java.awt.Font;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
@ -51,6 +52,11 @@ import javax.swing.border.TitledBorder;
public class BorderFactory
{
private BorderFactory()
{
// Do nothing.
}
/**
* Creates a line border withe the specified color.
*

View file

@ -38,13 +38,14 @@ exception statement from your version. */
package javax.swing;
import java.awt.AWTError;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.LayoutManager;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import java.awt.LayoutManager;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.AWTError;
/**
* A component that uses a {@link BoxLayout} as Layout Manager.

View file

@ -35,11 +35,13 @@ 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 java.awt.ItemSelectable;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import javax.swing.event.ChangeListener;
public interface ButtonModel extends ItemSelectable

View file

@ -35,9 +35,11 @@ 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 java.util.EventObject;
import javax.swing.event.CellEditorListener;
/**

View file

@ -35,6 +35,7 @@ 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 java.awt.Component;
@ -43,6 +44,7 @@ import java.awt.Graphics;
import java.awt.Rectangle;
import java.io.IOException;
import java.io.ObjectOutputStream;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;

File diff suppressed because it is too large Load diff

View file

@ -36,15 +36,16 @@ 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 java.io.Serializable;
import java.util.EventListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
/**
* A default implementation of BoundedRangeModel.
*

View file

@ -35,6 +35,7 @@ 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 java.awt.event.ActionEvent;
@ -44,11 +45,11 @@ import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.io.Serializable;
import java.util.EventListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
/**
* The purpose of this class is to model the dynamic state of an abstract
* button. The concrete button type holding this state may be a a "toggle"

View file

@ -35,6 +35,7 @@ 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 java.awt.Component;
@ -44,6 +45,7 @@ import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.Serializable;
import java.util.EventObject;
import javax.swing.table.TableCellEditor;
import javax.swing.tree.TreeCellEditor;

View file

@ -37,19 +37,15 @@ exception statement from your version. */
package javax.swing;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Rectangle;
import java.beans.PropertyVetoException;
import java.io.Serializable;
import javax.swing.JDesktopPane;
import javax.swing.JInternalFrame;
import javax.swing.JInternalFrame.JDesktopIcon;
import javax.swing.JInternalFrame.JDesktopIcon;
/**
* DefaultDesktopManager is the default implementation of DesktopManager for

View file

@ -35,15 +35,16 @@ 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 java.awt.Component;
import java.awt.Rectangle;
import java.io.Serializable;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
/**
* DefaultListCellRenderer. This class is responsible for rendering list
* cells.

View file

@ -35,16 +35,17 @@ 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 java.io.Serializable;
import java.util.EventListener;
import java.util.BitSet;
import java.util.EventListener;
import javax.swing.event.EventListenerList;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
/**
* <p>This class provides a default implementation of {@link
* ListSelectioModel}, which is used by {@link javax.swing.JList} and

View file

@ -1,5 +1,5 @@
/* DefaultSingleSelectionModel.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,10 +35,12 @@ 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 java.io.Serializable;
import java.util.EventListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
@ -77,7 +79,7 @@ public class DefaultSingleSelectionModel
/**
* getSelectedIndex
* @returns int
* @return int
*/
public int getSelectedIndex ()
{
@ -111,7 +113,7 @@ public class DefaultSingleSelectionModel
/**
* isSelected
* @returns boolean
* @return boolean
*/
public boolean isSelected ()
{
@ -120,7 +122,8 @@ public class DefaultSingleSelectionModel
/**
* addChangeListener
* @param listener TODO
*
* @param listener the listener to add
*/
public void addChangeListener (ChangeListener listener)
{
@ -129,7 +132,8 @@ public class DefaultSingleSelectionModel
/**
* removeChangeListener
* @param listener TODO
*
* @param listener the listener to remove
*/
public void removeChangeListener (ChangeListener listener)
{
@ -159,8 +163,12 @@ public class DefaultSingleSelectionModel
/**
* getListeners
* @param listenerClass TODO
* @returns EventListener[]
*
* @param listenerClass the type fo listener
*
* @return an array of listeners
*
* @since 1.3
*/
public EventListener[] getListeners (Class listenerClass)
{
@ -169,6 +177,8 @@ public class DefaultSingleSelectionModel
/**
* getChangeListeners
*
* @since 1.4
*/
public ChangeListener[] getChangeListeners ()
{

View file

@ -1,5 +1,5 @@
/* FocusManager.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -148,6 +148,7 @@ public abstract class FocusManager extends DefaultKeyboardFocusManager
/**
* disableSwingFocusManager
* @deprecated 1.4
*/
public static void disableSwingFocusManager() {
// TODO
@ -155,7 +156,8 @@ public abstract class FocusManager extends DefaultKeyboardFocusManager
/**
* isFocusManagerEnabled
* @returns boolean
* @return boolean
* @deprecated 1.4
*/
public static boolean isFocusManagerEnabled() {
return false; // TODO

View file

@ -1,5 +1,5 @@
/* GrayFilter.java -- Java class for filtering Pixels to produce Gray Pictures
Copyright (C) 1999 Free Software Foundation, Inc.
Copyright (C) 1999, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -39,9 +39,9 @@ exception statement from your version. */
package javax.swing;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.FilteredImageSource;
import java.awt.image.RGBImageFilter;
import java.awt.Toolkit;
public class GrayFilter extends RGBImageFilter
{

View file

@ -44,7 +44,6 @@ import java.io.Serializable;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

View file

@ -1,5 +1,5 @@
/* InputVerifier.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -37,43 +37,39 @@ exception statement from your version. */
package javax.swing;
/**
* InputVerifier
* @author Andrew Selkirk
* @version 1.0
* @author Andrew Selkirk
* @version 1.0
*/
public abstract class InputVerifier {
public abstract class InputVerifier
{
/**
* Creates a <code>InputVerifier</code>
*/
public InputVerifier()
{
}
//-------------------------------------------------------------
// Initialization ---------------------------------------------
//-------------------------------------------------------------
/**
* verify
*
* @param component the component to verify
*
* @return <code>true</code> if valid, <code>false</code> otherwise.
*/
public abstract boolean verify(JComponent component);
/**
* Constructor InputVerifier
*/
public InputVerifier() {
} // InputVerifier()
//-------------------------------------------------------------
// Methods ----------------------------------------------------
//-------------------------------------------------------------
/**
* verify
* @param component TODO
* @returns boolean
*/
public abstract boolean verify(JComponent component);
/**
* shouldYieldFocus
* @param component TODO
* @returns boolean
*/
public boolean shouldYieldFocus(JComponent component) {
return verify(component);
} // shouldYieldFocus()
} // InputVerifier
/**
* shouldYieldFocus
*
* @param component the component to verify
*
* @return <code>true</code> if valid, <code>false</code> otherwise.
*/
public boolean shouldYieldFocus(JComponent component)
{
return verify(component);
}
}

View file

@ -1,4 +1,4 @@
/* JApplet.java --
/* JApplet.java --
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -47,169 +47,200 @@ import java.awt.Graphics;
import java.awt.LayoutManager;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import javax.accessibility.AccessibleContext;
public class JApplet extends Applet implements RootPaneContainer
public class JApplet extends Applet
implements RootPaneContainer
{
private static final long serialVersionUID = 7269359214497372587L;
public final static int HIDE_ON_CLOSE = 0;
public final static int EXIT_ON_CLOSE = 1;
public final static int DISPOSE_ON_CLOSE = 2;
public final static int DO_NOTHING_ON_CLOSE = 3;
private int close_action = EXIT_ON_CLOSE;
private boolean checking;
protected JRootPane rootPane;
public JApplet()
{
frameInit();
}
public JApplet(String title)
{
frameInit();
}
public static final int HIDE_ON_CLOSE = 0;
public static final int EXIT_ON_CLOSE = 1;
public static final int DISPOSE_ON_CLOSE = 2;
public static final int DO_NOTHING_ON_CLOSE = 3;
private int close_action = EXIT_ON_CLOSE;
protected void frameInit()
{
super.setLayout(new BorderLayout(1, 1));
getRootPane(); // will do set/create
}
protected JRootPane rootPane;
protected boolean rootPaneCheckingEnabled;
public JApplet()
{
frameInit();
}
public JApplet(String title)
{
frameInit();
}
protected void frameInit()
{
super.setLayout(new BorderLayout(1, 1));
getRootPane(); // will do set/create
}
public Dimension getPreferredSize()
{
Dimension d = super.getPreferredSize();
System.out.println("JFrame.getPrefSize(): " + d + " , comp="+ getComponentCount () + ", layout=" + getLayout());
System.out.println("JFrame.getPrefSize(): " + d + " , comp="
+ getComponentCount() + ", layout=" + getLayout());
return d;
}
public void setLayout(LayoutManager manager)
{ super.setLayout(manager); }
public void setLayout(LayoutManager manager)
{
super.setLayout(manager);
}
public void setLayeredPane(JLayeredPane layeredPane)
{ getRootPane().setLayeredPane(layeredPane); }
public JLayeredPane getLayeredPane()
{ return getRootPane().getLayeredPane(); }
public JRootPane getRootPane()
{
if (rootPane == null)
setRootPane(createRootPane());
return rootPane;
}
public void setLayeredPane(JLayeredPane layeredPane)
{
getRootPane().setLayeredPane(layeredPane);
}
public void setRootPane(JRootPane root)
{
if (rootPane != null)
remove(rootPane);
rootPane = root;
add(rootPane, BorderLayout.CENTER);
}
public JLayeredPane getLayeredPane()
{
return getRootPane().getLayeredPane();
}
public JRootPane createRootPane()
{ return new JRootPane(); }
public JRootPane getRootPane()
{
if (rootPane == null)
setRootPane(createRootPane());
return rootPane;
}
public Container getContentPane()
{ return getRootPane().getContentPane(); }
public void setRootPane(JRootPane root)
{
if (rootPane != null)
remove(rootPane);
public void setContentPane(Container contentPane)
{ getRootPane().setContentPane(contentPane); }
public Component getGlassPane()
{ return getRootPane().getGlassPane(); }
public void setGlassPane(Component glassPane)
{ getRootPane().setGlassPane(glassPane); }
rootPane = root;
add(rootPane, BorderLayout.CENTER);
}
public JRootPane createRootPane()
{
return new JRootPane();
}
/////////////////////////////////////////////////////////////////////////////////
protected void addImpl(Component comp, Object constraints, int index)
{ super.addImpl(comp, constraints, index); }
public AccessibleContext getAccessibleContext()
{ return null; }
int getDefaultCloseOperation()
{ return close_action; }
public Container getContentPane()
{
return getRootPane().getContentPane();
}
public JMenuBar getJMenuBar()
{ return getRootPane().getJMenuBar(); }
public void setJMenuBar(JMenuBar menubar)
{ getRootPane().setJMenuBar(menubar); }
protected String paramString()
{ return "JFrame"; }
public void setContentPane(Container contentPane)
{
getRootPane().setContentPane(contentPane);
}
protected void processKeyEvent(KeyEvent e)
{ super.processKeyEvent(e); }
public Component getGlassPane()
{
return getRootPane().getGlassPane();
}
protected void processWindowEvent(WindowEvent e)
{
// System.out.println("PROCESS_WIN_EV-1: " + e);
public void setGlassPane(Component glassPane)
{
getRootPane().setGlassPane(glassPane);
}
// super.processWindowEvent(e);
protected void addImpl(Component comp, Object constraints, int index)
{
super.addImpl(comp, constraints, index);
}
// System.out.println("PROCESS_WIN_EV-2: " + e);
switch (e.getID())
{
case WindowEvent.WINDOW_CLOSING:
{
switch(close_action)
{
case EXIT_ON_CLOSE:
{
System.out.println("user requested exit on close");
System.exit(1);
break;
}
case DISPOSE_ON_CLOSE:
{
System.out.println("user requested dispose on close");
//dispose();
break;
}
case HIDE_ON_CLOSE:
public AccessibleContext getAccessibleContext()
{
return null;
}
case DO_NOTHING_ON_CLOSE:
break;
}
break;
}
case WindowEvent.WINDOW_CLOSED:
case WindowEvent.WINDOW_OPENED:
case WindowEvent.WINDOW_ICONIFIED:
case WindowEvent.WINDOW_DEICONIFIED:
case WindowEvent.WINDOW_ACTIVATED:
case WindowEvent.WINDOW_DEACTIVATED:
break;
}
}
int getDefaultCloseOperation()
{
return close_action;
}
public void remove(Component comp)
{ getContentPane().remove(comp); }
public JMenuBar getJMenuBar()
{
return getRootPane().getJMenuBar();
}
void setDefaultCloseOperation(int operation)
{ close_action = operation; }
public void setJMenuBar(JMenuBar menubar)
{
getRootPane().setJMenuBar(menubar);
}
protected String paramString()
{
return "JFrame";
}
protected void processKeyEvent(KeyEvent e)
{
super.processKeyEvent(e);
}
protected boolean isRootPaneCheckingEnabled()
{ return checking; }
protected void processWindowEvent(WindowEvent e)
{
// System.out.println("PROCESS_WIN_EV-1: " + e);
// super.processWindowEvent(e);
// System.out.println("PROCESS_WIN_EV-2: " + e);
switch (e.getID())
{
case WindowEvent.WINDOW_CLOSING:
{
switch (close_action)
{
case EXIT_ON_CLOSE:
{
System.out.println("user requested exit on close");
System.exit(1);
break;
}
case DISPOSE_ON_CLOSE:
{
System.out.println("user requested dispose on close");
//dispose();
break;
}
case HIDE_ON_CLOSE:
case DO_NOTHING_ON_CLOSE:
break;
}
break;
}
case WindowEvent.WINDOW_CLOSED:
case WindowEvent.WINDOW_OPENED:
case WindowEvent.WINDOW_ICONIFIED:
case WindowEvent.WINDOW_DEICONIFIED:
case WindowEvent.WINDOW_ACTIVATED:
case WindowEvent.WINDOW_DEACTIVATED:
break;
}
}
public void remove(Component comp)
{
getContentPane().remove(comp);
}
protected void setRootPaneCheckingEnabled(boolean enabled)
{ checking = enabled; }
void setDefaultCloseOperation(int operation)
{
close_action = operation;
}
public void update(Graphics g)
{ paint(g); }
protected boolean isRootPaneCheckingEnabled()
{
return rootPaneCheckingEnabled;
}
protected void setRootPaneCheckingEnabled(boolean enabled)
{
rootPaneCheckingEnabled = enabled;
}
public void update(Graphics g)
{
paint(g);
}
}

View file

@ -48,6 +48,9 @@ import javax.accessibility.AccessibleContext;
public class JCheckBox extends JToggleButton
{
private static final long serialVersionUID = -5246739313864538930L;
public static final String BORDER_PAINTED_FLAT_CHANGED_PROPERTY =
"borderPaintedFlat";
private boolean borderPaintedFlat;

View file

@ -35,15 +35,16 @@ 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 java.io.IOException;
import java.io.ObjectOutputStream;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
/**
* This class represents JCheckBoxMenuItem. Its behaviour is very similar
* to JCheckBoxButton. Just like the JCheckBoxButton, user can check and

View file

@ -35,6 +35,7 @@ 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 java.awt.AWTError;
@ -46,13 +47,11 @@ import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.ObjectOutputStream;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.swing.colorchooser.AbstractColorChooserPanel;
import javax.swing.colorchooser.ColorChooserComponentFactory;
import javax.swing.colorchooser.ColorSelectionModel;
import javax.swing.colorchooser.DefaultColorSelectionModel;
import javax.swing.plaf.ColorChooserUI;

View file

@ -35,10 +35,9 @@ 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 java.awt.Component;
import java.awt.Dimension;
import java.awt.ItemSelectable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@ -50,12 +49,12 @@ import java.beans.PropertyChangeListener;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleAction;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleSelection;
import javax.swing.JComponent;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import javax.swing.event.PopupMenuListener;

View file

@ -35,6 +35,7 @@ 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 java.awt.AWTEvent;
@ -68,7 +69,7 @@ import java.io.Serializable;
import java.util.EventListener;
import java.util.Hashtable;
import java.util.Locale;
import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
@ -79,7 +80,6 @@ import javax.swing.event.EventListenerList;
import javax.swing.event.SwingPropertyChangeSupport;
import javax.swing.plaf.ComponentUI;
/**
* Every component in swing inherits from this class (JLabel, JButton, etc).
* It contains generic methods to manage events, properties and sizes. Actual
@ -323,6 +323,9 @@ public abstract class JComponent extends Container implements Serializable
private InputMap inputMap_whenAncestorOfFocused;
private InputMap inputMap_whenInFocusedWindow;
private ActionMap actionMap;
private InputVerifier inputVerifier;
private TransferHandler transferHandler;
/**
* A lock held during recursive painting; this is used to serialize
@ -379,6 +382,9 @@ public abstract class JComponent extends Container implements Serializable
public static final int WHEN_IN_FOCUSED_WINDOW = 2;
/**
* Creates a new <code>JComponent</code> instance.
*/
public JComponent()
{
super();
@ -611,8 +617,8 @@ public abstract class JComponent extends Container implements Serializable
boolean newValue)
{
if (changeSupport != null)
changeSupport.firePropertyChange(propertyName, new Boolean(oldValue),
new Boolean(newValue));
changeSupport.firePropertyChange(propertyName, Boolean.valueOf(oldValue),
Boolean.valueOf(newValue));
}
/**
@ -796,13 +802,15 @@ public abstract class JComponent extends Container implements Serializable
* Set the value of the {@link #border} property, revalidate
* and repaint this component.
*
* @param border The new value of the property
* @param newBorder The new value of the property
*
* @see #getBorder
*/
public void setBorder(Border border)
public void setBorder(Border newBorder)
{
this.border = border;
Border oldBorder = border;
border = newBorder;
firePropertyChange("border", oldBorder, newBorder);
revalidate();
repaint();
}
@ -856,9 +864,10 @@ public abstract class JComponent extends Container implements Serializable
*/
protected Graphics getComponentGraphics(Graphics g)
{
g.setFont(this.getFont());
g.setColor(this.getForeground());
return g;
Graphics g2 = g.create();
g2.setFont(this.getFont());
g2.setColor(this.getForeground());
return g2;
}
@ -1017,12 +1026,51 @@ public abstract class JComponent extends Container implements Serializable
}
/**
* Return the value of the {@link #nextFocusableComponent} property.
* Checks if a maximum size was explicitely set on the component.
*
* @return <code>true</code> if a maximum size was set,
* <code>false</code> otherwise
*
* @deprecated See {@link java.awt.FocusTraversalPolicy}
* @since 1.3
*/
public boolean isMaximumSizeSet()
{
return maximumSize != null;
}
/**
* Checks if a minimum size was explicitely set on the component.
*
* @return <code>true</code> if a minimum size was set,
* <code>false</code> otherwise
*
* @since 1.3
*/
public boolean isMinimumSizeSet()
{
return minimumSize != null;
}
/**
* Checks if a preferred size was explicitely set on the component.
*
* @return <code>true</code> if a preferred size was set,
* <code>false</code> otherwise
*
* @since 1.3
*/
public boolean isPreferredSizeSet()
{
return preferredSize != null;
}
/**
* Return the value of the {@link #nextFocusableComponent} property.
*
* @return The current value of the property, or <code>null</code>
* if none has been set.
*
* @deprecated See {@link java.awt.FocusTraversalPolicy}
*/
public Component getNextFocusableComponent()
{
@ -1257,7 +1305,7 @@ public abstract class JComponent extends Container implements Serializable
* @return <code>true</code> if you want this component to manage its own
* focus, otherwise (by default) <code>false</code>
*
* @deprecated Use {@link Component.setFocusTraversalKeys(int,Set)} and
* @deprecated 1.4 Use {@link Component.setFocusTraversalKeys(int,Set)} and
* {@link Container.setFocusCycleRoot(boolean)} instead
*/
public boolean isManagingFocus()
@ -1641,9 +1689,6 @@ public abstract class JComponent extends Container implements Serializable
}
/**
* @deprecated As of 1.3 KeyStrokes can be registered with multiple
* simultaneous conditions.
*
* Return the condition that determines whether a registered action
* occurs in response to the specified keystroke.
*
@ -1653,6 +1698,9 @@ public abstract class JComponent extends Container implements Serializable
* #WHEN_ANCESTOR_OF_FOCUSED_COMPONENT}, {@link #WHEN_FOCUSED}, or {@link
* #WHEN_IN_FOCUSED_WINDOW}
*
* @deprecated As of 1.3 KeyStrokes can be registered with multiple
* simultaneous conditions.
*
* @see #registerKeyboardAction
* @see #unregisterKeyboardAction
* @see #resetKeyboardActiond
@ -1673,14 +1721,14 @@ public abstract class JComponent extends Container implements Serializable
}
/**
* @deprecated Use {@link #getActionMap()}
*
* Get the ActionListener (typically an {@link Action} object) which is
* associated with a particular keystroke.
*
* @param aKeyStroke The keystroke to retrieve the action of
*
* @return The action associated with the specified keystroke
*
* @deprecated Use {@link #getActionMap()}
*/
public ActionListener getActionForKeyStroke(KeyStroke ks)
{
@ -1907,11 +1955,13 @@ public abstract class JComponent extends Container implements Serializable
* Set the value of the {@link #enabled} property, revalidate
* and repaint this component.
*
* @param e The new value of the property
* @param enable The new value of the property
*/
public void setEnabled(boolean e)
public void setEnabled(boolean enable)
{
super.setEnabled(e);
boolean oldEnabled = isEnabled();
super.setEnabled(enable);
firePropertyChange("enabeld", oldEnabled, enable);
revalidate();
repaint();
}
@ -1963,7 +2013,9 @@ public abstract class JComponent extends Container implements Serializable
*/
public void setMaximumSize(Dimension max)
{
Dimension oldMaximumSize = maximumSize;
maximumSize = max;
firePropertyChange("maximumSize", oldMaximumSize, maximumSize);
revalidate();
repaint();
}
@ -1976,7 +2028,9 @@ public abstract class JComponent extends Container implements Serializable
*/
public void setMinimumSize(Dimension min)
{
Dimension oldMinimumSize = minimumSize;
minimumSize = min;
firePropertyChange("minimumSize", oldMinimumSize, minimumSize);
revalidate();
repaint();
}
@ -1989,7 +2043,9 @@ public abstract class JComponent extends Container implements Serializable
*/
public void setPreferredSize(Dimension pref)
{
Dimension oldPreferredSize = preferredSize;
preferredSize = pref;
firePropertyChange("preferredSize", oldPreferredSize, preferredSize);
}
/**
@ -2015,6 +2071,32 @@ public abstract class JComponent extends Container implements Serializable
requestFocusEnabled = e;
}
/**
* Get the value of the {@link #transferHandler} property.
*
* @return The current value of the property
*
* @see ComponentUI#setTransferHandler
*/
public TransferHandler getTransferHandler()
{
return transferHandler;
}
/**
* Set the value of the {@link #transferHandler} property.
*
* @param newHandler The new value of the property
*
* @see ComponentUI#getTransferHandler
*/
void setTransferHandler (TransferHandler newHandler)
{
transferHandler = newHandler;
}
/**
* Set the value of the {@link #opaque} property, revalidate and repaint
* this component.
@ -2025,7 +2107,9 @@ public abstract class JComponent extends Container implements Serializable
*/
public void setOpaque(boolean isOpaque)
{
boolean oldOpaque = opaque;
opaque = isOpaque;
firePropertyChange("opaque", oldOpaque, opaque);
revalidate();
repaint();
}
@ -2119,4 +2203,26 @@ public abstract class JComponent extends Container implements Serializable
{
defaultLocale = l;
}
/**
* Returns the currently set input verifier for this component.
*
* @return the input verifier, or <code>null</code> if none
*/
public InputVerifier getInputVerifier()
{
return inputVerifier;
}
/**
* Sets the input verifier to use by this component.
*
* @param verifier the input verifier, or <code>null</code>
*/
public void setInputVerifier(InputVerifier verifier)
{
InputVerifier oldVerifier = inputVerifier;
inputVerifier = verifier;
firePropertyChange("inputVerifier", oldVerifier, verifier);
}
}

View file

@ -35,18 +35,17 @@ 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 java.awt.Component;
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.io.ObjectOutputStream;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.swing.plaf.DesktopPaneUI;
/**
* JDesktopPane is a container (usually for JInternalFrames) that simulates a
* desktop. Typically, the user will create JInternalFrames and place thme in
@ -63,14 +62,18 @@ public class JDesktopPane extends JLayeredPane implements Accessible
/**
* This specifies that when dragged, a JInternalFrame should be completely
* visible.
*
* @specnote final since 1.5.0.
*/
public static int LIVE_DRAG_MODE = 0;
public static final int LIVE_DRAG_MODE = 0;
/**
* This specifies that when dragged, a JInternalFrame should only be visible
* as an outline.
*
* @specnote final since 1.5.0.
*/
public static int OUTLINE_DRAG_MODE = 1;
public static final int OUTLINE_DRAG_MODE = 1;
/** The selected frame in the JDesktopPane. */
private transient JInternalFrame selectedFrame;
@ -151,7 +154,10 @@ public class JDesktopPane extends JLayeredPane implements Accessible
// FIXME: Unsupported mode.
if (mode == OUTLINE_DRAG_MODE)
throw new IllegalArgumentException("Outline drag modes are unsupported.");
{
// throw new IllegalArgumentException("Outline drag modes are unsupported.");
mode = LIVE_DRAG_MODE;
}
dragMode = mode;
}

View file

@ -35,9 +35,9 @@ 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 java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dialog;
@ -45,14 +45,13 @@ import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
import java.awt.LayoutManager;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import java.awt.IllegalComponentStateException;
import java.awt.LayoutManager;
import java.awt.event.WindowEvent;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
/**
* Unlike JComponent derivatives, JDialog inherits from java.awt.Dialog. But
* also lets a look-and-feel component to its work.
@ -77,7 +76,7 @@ public class JDialog extends Dialog implements Accessible, WindowConstants,
private int close_action = HIDE_ON_CLOSE;
/** Whether JDialogs are decorated by the Look and Feel. */
private static boolean decorated = false;
private static boolean decorated;
/**
* Creates a new non-modal JDialog with no title

View file

@ -35,12 +35,13 @@ 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 java.awt.Dimension;
import java.awt.event.KeyEvent;
import java.io.InputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import javax.accessibility.AccessibleContext;
@ -153,16 +154,9 @@ public class JEditorPane extends JTextComponent
}
protected InputStream getStream(URL page)
throws IOException
{
try
{
return page.openStream();
}
catch (Exception e)
{
System.out.println("Hhmmm, failed to open stream: " + e);
}
return null;
return page.openStream();
}
public String getText()
@ -209,6 +203,7 @@ public class JEditorPane extends JTextComponent
* This method initializes from a stream.
*/
public void read(InputStream in, Object desc)
throws IOException
{
}

View file

@ -1,5 +1,5 @@
/* JFileChooser.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -44,6 +44,7 @@ import java.io.File;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;

View file

@ -42,6 +42,7 @@ import java.awt.event.FocusEvent;
import java.io.Serializable;
import java.text.Format;
import java.text.ParseException;
import javax.swing.text.Document;
import javax.swing.text.DocumentFilter;
import javax.swing.text.NavigationFilter;

View file

@ -57,19 +57,139 @@ import javax.accessibility.AccessibleContext;
*
* @author Ronald Veldema (rveldema@cs.vu.nl)
*/
public class JFrame extends Frame implements WindowConstants, RootPaneContainer
public class JFrame extends Frame
implements WindowConstants, RootPaneContainer
{
private static final long serialVersionUID = -3362141868504252139L;
protected AccessibleContext accessibleContext;
private int close_action = HIDE_ON_CLOSE;
private static boolean defaultLookAndFeelDecorated = false;
private static boolean defaultLookAndFeelDecorated;
private int close_action = HIDE_ON_CLOSE;
protected AccessibleContext accessibleContext;
protected JRootPane rootPane;
protected boolean rootPaneCheckingEnabled;
public static void setDefaultLookAndFeelDecorated(boolean d)
public JFrame()
{
defaultLookAndFeelDecorated = d;
super("JFrame");
frameInit();
}
public JFrame(String title)
{
super(title);
frameInit();
}
protected void frameInit()
{
super.setLayout(new BorderLayout(1, 1));
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
getRootPane(); // will do set/create
}
public Dimension getPreferredSize()
{
return super.getPreferredSize();
}
public JMenuBar getJMenuBar()
{
return getRootPane().getJMenuBar();
}
public void setJMenuBar(JMenuBar menubar)
{
getRootPane().setJMenuBar(menubar);
}
public void setLayout(LayoutManager manager)
{
super.setLayout(manager);
}
public void setLayeredPane(JLayeredPane layeredPane)
{
getRootPane().setLayeredPane(layeredPane);
}
public JLayeredPane getLayeredPane()
{
return getRootPane().getLayeredPane();
}
public JRootPane getRootPane()
{
if (rootPane == null)
setRootPane(createRootPane());
return rootPane;
}
public void setRootPane(JRootPane root)
{
if (rootPane != null)
remove(rootPane);
rootPane = root;
add(rootPane, BorderLayout.CENTER);
}
public JRootPane createRootPane()
{
return new JRootPane();
}
public Container getContentPane()
{
return getRootPane().getContentPane();
}
public void setContentPane(Container contentPane)
{
getRootPane().setContentPane(contentPane);
}
public Component getGlassPane()
{
return getRootPane().getGlassPane();
}
public void setGlassPane(Component glassPane)
{
getRootPane().setGlassPane(glassPane);
}
protected void addImpl(Component comp, Object constraints, int index)
{
super.addImpl(comp, constraints, index);
}
public void remove(Component comp)
{
getContentPane().remove(comp);
}
protected boolean isRootPaneCheckingEnabled()
{
return rootPaneCheckingEnabled;
}
protected void setRootPaneCheckingEnabled(boolean enabled)
{
rootPaneCheckingEnabled = enabled;
}
public void update(Graphics g)
{
paint(g);
}
protected void processKeyEvent(KeyEvent e)
{
super.processKeyEvent(e);
}
public static void setDefaultLookAndFeelDecorated(boolean decorated)
{
defaultLookAndFeelDecorated = decorated;
}
public static boolean isDefaultLookAndFeelDecorated()
@ -77,202 +197,83 @@ public class JFrame extends Frame implements WindowConstants, RootPaneContainer
return defaultLookAndFeelDecorated;
}
/***************************************************
*
* initia
*
*
*************/
public JFrame()
{
super("JFrame");
frameInit();
}
public JFrame(String title)
{
super(title);
frameInit();
}
/***************************************************
*
*
* methods, this part is shared with JDialog, JFrame
*
*
*************/
private boolean checking;
protected JRootPane rootPane;
protected void frameInit()
{
super.setLayout(new BorderLayout(1, 1));
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
getRootPane(); // will do set/create
}
public Dimension getPreferredSize()
{
Dimension d = super.getPreferredSize();
return d;
}
public JMenuBar getJMenuBar()
{ return getRootPane().getJMenuBar(); }
public void setJMenuBar(JMenuBar menubar)
{ getRootPane().setJMenuBar(menubar); }
public void setLayout(LayoutManager manager)
{ super.setLayout(manager); }
public void setLayeredPane(JLayeredPane layeredPane)
{ getRootPane().setLayeredPane(layeredPane); }
public JLayeredPane getLayeredPane()
{ return getRootPane().getLayeredPane(); }
public JRootPane getRootPane()
{
if (rootPane == null)
setRootPane(createRootPane());
return rootPane;
}
public void setRootPane(JRootPane root)
{
if (rootPane != null)
remove(rootPane);
rootPane = root;
add(rootPane, BorderLayout.CENTER);
}
public JRootPane createRootPane()
{ return new JRootPane(); }
public Container getContentPane()
{ return getRootPane().getContentPane(); }
public void setContentPane(Container contentPane)
{ getRootPane().setContentPane(contentPane); }
public Component getGlassPane()
{ return getRootPane().getGlassPane(); }
public void setGlassPane(Component glassPane)
{ getRootPane().setGlassPane(glassPane); }
protected void addImpl(Component comp, Object constraints, int index)
{ super.addImpl(comp, constraints, index); }
public void remove(Component comp)
{ getContentPane().remove(comp); }
protected boolean isRootPaneCheckingEnabled()
{ return checking; }
protected void setRootPaneCheckingEnabled(boolean enabled)
{ checking = enabled; }
public void update(Graphics g)
{ paint(g); }
protected void processKeyEvent(KeyEvent e)
{ super.processKeyEvent(e); }
/////////////////////////////////////////////////////////////////////////////////
public AccessibleContext getAccessibleContext()
{
return accessibleContext;
}
public int getDefaultCloseOperation()
{ return close_action; }
protected String paramString()
{ return "JFrame"; }
public int getDefaultCloseOperation()
{
return close_action;
}
protected String paramString()
{
return "JFrame";
}
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
switch (e.getID())
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
switch (e.getID())
{
case WindowEvent.WINDOW_CLOSING:
{
switch (close_action)
{
case WindowEvent.WINDOW_CLOSING:
{
switch(close_action)
{
case EXIT_ON_CLOSE:
{
System.exit(0);
break;
}
case DISPOSE_ON_CLOSE:
{
dispose();
break;
}
case HIDE_ON_CLOSE:
{
setVisible(false);
break;
}
case DO_NOTHING_ON_CLOSE:
break;
}
break;
}
case WindowEvent.WINDOW_CLOSED:
case WindowEvent.WINDOW_OPENED:
case WindowEvent.WINDOW_ICONIFIED:
case WindowEvent.WINDOW_DEICONIFIED:
case WindowEvent.WINDOW_ACTIVATED:
case WindowEvent.WINDOW_DEACTIVATED:
case EXIT_ON_CLOSE:
{
System.exit(0);
break;
}
case DISPOSE_ON_CLOSE:
{
dispose();
break;
}
case HIDE_ON_CLOSE:
{
setVisible(false);
break;
}
case DO_NOTHING_ON_CLOSE:
break;
}
}
/**
* Defines what happens when this frame is closed. Can be one off
* <code>EXIT_ON_CLOSE</code>,
* <code>DISPOSE_ON_CLOSE</code>,
* <code>HIDE_ON_CLOSE</code> or
* <code>DO_NOTHING_ON_CLOSE</code>.
* The default is <code>HIDE_ON_CLOSE</code>.
* When <code>EXIT_ON_CLOSE</code> is specified this method calls
* <code>SecurityManager.checkExit(0)</code> which might throw a
* <code>SecurityException</code>. When the specified operation is
* not one of the above a <code>IllegalArgumentException</code> is
* thrown.
*/
public void setDefaultCloseOperation(int operation)
{
SecurityManager sm = System.getSecurityManager();
if (sm != null && operation == EXIT_ON_CLOSE)
sm.checkExit(0);
break;
}
case WindowEvent.WINDOW_CLOSED:
case WindowEvent.WINDOW_OPENED:
case WindowEvent.WINDOW_ICONIFIED:
case WindowEvent.WINDOW_DEICONIFIED:
case WindowEvent.WINDOW_ACTIVATED:
case WindowEvent.WINDOW_DEACTIVATED:
break;
}
}
if (operation != EXIT_ON_CLOSE && operation != DISPOSE_ON_CLOSE
&& operation != HIDE_ON_CLOSE && operation != DO_NOTHING_ON_CLOSE)
throw new IllegalArgumentException("operation = " + operation);
close_action = operation;
}
/**
* Defines what happens when this frame is closed. Can be one off
* <code>EXIT_ON_CLOSE</code>,
* <code>DISPOSE_ON_CLOSE</code>,
* <code>HIDE_ON_CLOSE</code> or
* <code>DO_NOTHING_ON_CLOSE</code>.
* The default is <code>HIDE_ON_CLOSE</code>.
* When <code>EXIT_ON_CLOSE</code> is specified this method calls
* <code>SecurityManager.checkExit(0)</code> which might throw a
* <code>SecurityException</code>. When the specified operation is
* not one of the above a <code>IllegalArgumentException</code> is
* thrown.
*/
public void setDefaultCloseOperation(int operation)
{
SecurityManager sm = System.getSecurityManager();
if (sm != null && operation == EXIT_ON_CLOSE)
sm.checkExit(0);
if (operation != EXIT_ON_CLOSE && operation != DISPOSE_ON_CLOSE
&& operation != HIDE_ON_CLOSE && operation != DO_NOTHING_ON_CLOSE)
throw new IllegalArgumentException("operation = " + operation);
close_action = operation;
}
}

View file

@ -35,9 +35,9 @@ 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 java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
@ -45,6 +45,7 @@ import java.awt.KeyboardFocusManager;
import java.awt.LayoutManager;
import java.awt.Rectangle;
import java.beans.PropertyVetoException;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
@ -54,7 +55,6 @@ import javax.swing.event.InternalFrameListener;
import javax.swing.plaf.DesktopIconUI;
import javax.swing.plaf.InternalFrameUI;
/**
* This class implements a Swing widget that looks and acts like a native
* frame. The frame can be dragged, resized, closed, etc. Typically,
@ -341,67 +341,67 @@ public class JInternalFrame extends JComponent implements Accessible,
* The property fired in a PropertyChangeEvent when the contentPane property
* changes.
*/
public static String CONTENT_PANE_PROPERTY = "contentPane";
public static final String CONTENT_PANE_PROPERTY = "contentPane";
/**
* The property fired in a PropertyChangeEvent when the frameIcon property
* changes.
*/
public static String FRAME_ICON_PROPERTY = "frameIcon";
public static final String FRAME_ICON_PROPERTY = "frameIcon";
/**
* The property fired in a PropertyChangeEvent when the glassPane property
* changes.
*/
public static String GLASS_PANE_PROPERTY = "glassPane";
public static final String GLASS_PANE_PROPERTY = "glassPane";
/**
* The property fired in a PropertyChangeEvent when the closed property
* changes.
*/
public static String IS_CLOSED_PROPERTY = "closed";
public static final String IS_CLOSED_PROPERTY = "closed";
/**
* The property fired in a PropertyChangeEvent when the icon property
* changes.
*/
public static String IS_ICON_PROPERTY = "icon";
public static final String IS_ICON_PROPERTY = "icon";
/**
* The property fired in a PropertyChangeEvent when the maximum property
* changes.
*/
public static String IS_MAXIMUM_PROPERTY = "maximum";
public static final String IS_MAXIMUM_PROPERTY = "maximum";
/**
* The property fired in a PropertyChangeEvent when the selected property
* changes.
*/
public static String IS_SELECTED_PROPERTY = "selected";
public static final String IS_SELECTED_PROPERTY = "selected";
/**
* The property fired in a PropertyChangeEvent when the layeredPane property
* changes.
*/
public static String LAYERED_PANE_PROPERTY = "layeredPane";
public static final String LAYERED_PANE_PROPERTY = "layeredPane";
/**
* The property fired in a PropertyChangeEvent when the jMenuBar property
* changes.
*/
public static String MENU_BAR_PROPERTY = "jMenuBar";
public static final String MENU_BAR_PROPERTY = "JMenuBar";
/**
* The property fired in a PropertyChangeEvent when the rootPane property
* changes.
*/
public static String ROOT_PANE_PROPERTY = "rootPane";
public static final String ROOT_PANE_PROPERTY = "rootPane";
/**
* The property fired in a PropertyChangeEvent when the title property
* changes.
*/
public static String TITLE_PROPERTY = "title";
public static final String TITLE_PROPERTY = "title";
/** Whether the JInternalFrame is closable. */
protected boolean closable;
@ -879,6 +879,8 @@ public class JInternalFrame extends JComponent implements Accessible,
* JInternalFrame.
*
* @return The JMenuBar for this JInternalFrame.
*
* @deprecated 1.0.3
*/
public JMenuBar getMenuBar()
{
@ -1482,6 +1484,8 @@ public class JInternalFrame extends JComponent implements Accessible,
* JInternalFrame.
*
* @param m The JMenuBar to use with this JInternalFrame.
*
* @deprecated 1.0.3
*/
public void setMenuBar(JMenuBar m)
{
@ -1702,6 +1706,6 @@ public class JInternalFrame extends JComponent implements Accessible,
boolean newValue)
throws PropertyVetoException
{
super.fireVetoableChange(name, new Boolean(oldValue), new Boolean(newValue));
super.fireVetoableChange(name, Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
}
} // class JInternalFrame
}

View file

@ -35,22 +35,20 @@ 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 java.awt.Component;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.KeyEvent;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.swing.Icon;
import javax.swing.plaf.LabelUI;
/**
* <p>
* A swing widget that displays a text message and/or an icon.
* </p>
*/
public class JLabel extends JComponent implements Accessible, SwingConstants
{

View file

@ -35,6 +35,7 @@ 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 java.awt.Component;
@ -42,6 +43,7 @@ import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import javax.accessibility.Accessible;
/**

View file

@ -1,5 +1,5 @@
/* JList.java --
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,6 +35,7 @@ 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 java.awt.Color;
@ -44,6 +45,7 @@ import java.awt.Dimension;
import java.awt.Point;
import java.awt.Rectangle;
import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.swing.event.ListDataEvent;
@ -52,7 +54,6 @@ import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.plaf.ListUI;
/**
* <p>This class is a facade over three separate objects: {@link
* javax.swing.ListModel}, {@link javax.swing.ListSelectionModel} and

View file

@ -35,11 +35,11 @@ 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 java.awt.Component;
import java.awt.Point;
import java.awt.Window;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
@ -49,18 +49,15 @@ import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.EventListener;
import java.util.Hashtable;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleSelection;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
import javax.swing.plaf.MenuItemUI;
/**
* <p>
* This class represents a menu that can be added to a menu bar or
@ -140,7 +137,8 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
*/
public JMenu(String text, boolean tearoff)
{
throw new Error("not implemented");
// FIXME: tearoff not implemented
this(text);
}
private void writeObject(ObjectOutputStream stream) throws IOException
@ -643,6 +641,18 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
listenerList.remove(MenuListener.class, listener);
}
/**
* Returns all registered <code>MenuListener</code> objects.
*
* @return an array of listeners
*
* @since 1.4
*/
public MenuListener[] getMenuListeners()
{
return (MenuListener[]) listenerList.getListeners(MenuListener.class);
}
/**
* This method fires MenuEvents to all menu's MenuListeners. In this case
* menuSelected() method of MenuListeners is called to indicated that the menu
@ -650,10 +660,10 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
*/
protected void fireMenuSelected()
{
EventListener[] ll = listenerList.getListeners(MenuListener.class);
MenuListener[] listeners = getMenuListeners();
for (int i = 0; i < ll.length; i++)
((MenuListener) ll[i]).menuSelected(menuEvent);
for (int index = 0; index < listeners.length; ++index)
listeners[index].menuSelected(menuEvent);
}
/**

View file

@ -35,35 +35,18 @@ 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 java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleSelection;
import javax.accessibility.AccessibleStateSet;
import javax.accessibility.AccessibleValue;
import javax.swing.UIManager;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.MenuDragMouseEvent;
import javax.swing.event.MenuDragMouseListener;
import javax.swing.event.MenuKeyEvent;
import javax.swing.event.MenuKeyListener;
import javax.swing.plaf.MenuBarUI;
import javax.swing.plaf.MenuItemUI;
/**
* <p>
@ -480,8 +463,7 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
public void updateUI()
{
MenuBarUI ui = ((MenuBarUI) UIManager.getUI(this));
setUI(ui);
setUI((MenuBarUI) UIManager.getUI(this));
invalidate();
}
}

View file

@ -35,6 +35,7 @@ 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 java.awt.Component;
@ -47,10 +48,10 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.EventListener;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.swing.UIManager;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.MenuDragMouseEvent;
@ -528,19 +529,20 @@ public class JMenuItem extends AbstractButton implements Accessible,
*/
public void menuSelectionChanged(boolean changed)
{
Component parent = this.getParent();
if (changed)
{
model.setArmed(true);
if (this.getParent() instanceof JPopupMenu)
((JPopupMenu) this.getParent()).setSelected(this);
if (parent != null && parent instanceof JPopupMenu)
((JPopupMenu) parent).setSelected(this);
}
else
{
model.setArmed(false);
if (this.getParent() instanceof JPopupMenu)
((JPopupMenu) this.getParent()).getSelectionModel().clearSelection();
if (parent != null && parent instanceof JPopupMenu)
((JPopupMenu) parent).getSelectionModel().clearSelection();
}
}

View file

@ -35,22 +35,20 @@ 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 java.awt.Component;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.Frame;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.swing.Icon;
import javax.swing.JInternalFrame;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
import javax.swing.plaf.OptionPaneUI;
/**
* This class creates different types of JDialogs and JInternalFrames that can
* ask users for input or pass on information. JOptionPane can be used by

View file

@ -35,15 +35,16 @@ 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 java.awt.FlowLayout;
import java.awt.LayoutManager;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.swing.plaf.PanelUI;
/**
* An instance of JPanel can be added to a panel, frame etc
*

View file

@ -35,10 +35,12 @@ 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 java.io.IOException;
import java.io.ObjectOutputStream;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.swing.text.BadLocationException;
@ -75,164 +77,186 @@ public class JPasswordField extends JTextField
}
}
/**
* uiClassID
*/
private static final String uiClassID = "PasswordFieldUI";
/**
* echoChar. Default is 0.
*/
private char echoChar = 0;
/**
* echoChar. Default is 0
*/
private char echoChar = 0;
/**
* Constructor JPasswordField
*/
public JPasswordField()
{
this(null, null, 0);
}
/**
* Creates a <code>JPasswordField</code> object.
*
* @param text the initial text
*/
public JPasswordField(String text)
{
this(null, text, 0);
}
//-------------------------------------------------------------
// Initialization ---------------------------------------------
//-------------------------------------------------------------
/**
* Creates a <code>JPasswordField</code> object.
*
* @param columns the number of columns
*/
public JPasswordField(int columns)
{
this(null, null, columns);
}
/**
* Constructor JPasswordField
*/
public JPasswordField() {
// TODO
} // JPasswordField()
/**
* Creates a <code>JPasswordField</code> object.
*
* @param text the initial text
* @param columns the number of columns
*/
public JPasswordField(String text, int columns)
{
this(null, text, columns);
}
/**
* Constructor JPasswordField
* @param text TODO
*/
public JPasswordField(String text) {
// TODO
} // JPasswordField()
/**
* Creates a <code>JPasswordField</code> object.
*
* @param document the document to use
* @param text the initial text
* @param columns the number of columns
*/
public JPasswordField(Document document, String text, int columns)
{
super(document, text, columns);
}
/**
* Constructor JPasswordField
* @param columns TODO
*/
public JPasswordField(int columns) {
// TODO
} // JPasswordField()
/**
* writeObject
*
* @param stream the stream to write to
*
* @exception IOException if an error occurs
*/
private void writeObject(ObjectOutputStream stream) throws IOException
{
// TODO: Implement me.
}
/**
* Constructor JPasswordField
* @param text TODO
* @param columns TODO
*/
public JPasswordField(String text, int columns) {
// TODO
} // JPasswordField()
/**
* Returns the <code>UIClassID</code>
*
* @return the string "PasswordFieldUI"
*/
public String getUIClassID()
{
return "PasswordFieldUI";
}
/**
* Constructor JPasswordField
* @param document TODO
* @param text TODO
* @param columns TODO
*/
public JPasswordField(Document document, String text, int columns) {
// TODO
} // JPasswordField()
/**
* getEchoChar
*
* @return the echo char
*/
public char getEchoChar()
{
return echoChar;
}
/**
* setEchoChar
*
* @param echo the echo char
*/
public void setEchoChar(char echo)
{
this.echoChar = echo;
}
//-------------------------------------------------------------
// Methods ----------------------------------------------------
//-------------------------------------------------------------
/**
* echoCharIsSet
*
* @return <code>true</code> if the echo char is set,
* <code>false</code> otherwise.
*/
public boolean echoCharIsSet()
{
return echoChar == 0;
}
/**
* writeObject
* @param stream TODO
* @exception IOException TODO
*/
private void writeObject(ObjectOutputStream stream) throws IOException {
// TODO
} // writeObject()
/**
* Copies the selected text into the clipboard. This operation is not
* allowed in a password input field.
*/
public void copy()
{
UIManager.getLookAndFeel().provideErrorFeedback(this);
}
/**
* copy
*/
public void copy() {
// TODO
} // copy()
/**
* Cuts the selected text and puts it into the clipboard. This operation
* is not allowed in a password input field.
*/
public void cut()
{
UIManager.getLookAndFeel().provideErrorFeedback(this);
}
/**
* getUIClassID
* @returns String
*/
public String getUIClassID() {
return uiClassID;
} // getUIClassID()
/**
* getText
*
* @return String
*
* @deprecated
*/
public String getText()
{
return null; // TODO
}
/**
* getEchoChar
* @returns char
*/
public char getEchoChar() {
return echoChar;
} // getEchoChar()
/**
* getText
*
* @param offset TODO
* @param length TODO
*
* @return String
*
* @exception BadLocationException TODO
*
* @deprecated
*/
public String getText(int offset, int length) throws BadLocationException
{
return null; // TODO
}
/**
* setEchoChar
* @param echo TODO
*/
public void setEchoChar(char echo) {
this.echoChar = echo;
// TODO
} // setEchoChar()
/**
* getPassword
*
* @return char[]
*/
public char[] getPassword()
{
return null; // TODO
}
/**
* echoCharIsSet
* @returns boolean
*/
public boolean echoCharIsSet() {
return (echoChar == 0);
} // echoCharIsSet()
/**
* cut
*/
public void cut() {
// TODO
} // cut()
/**
* getText
* @returns String
* @deprecated
*/
public String getText() {
return null; // TODO
} // getText()
/**
* getText
* @param offset TODO
* @param length TODO
* @exception BadLocationException TODO
* @returns String
* @deprecated
*/
public String getText(int offset, int length) throws BadLocationException {
return null; // TODO
} // getText()
/**
* getPassword
* @returns char[]
*/
public char[] getPassword() {
return null; // TODO
} // getPassword()
/**
* paramString
* @returns String
*/
protected String paramString() {
return null; // TODO
} // paramString()
/**
* paramString
*
* @return String
*/
protected String paramString()
{
return null; // TODO
}
/**
* getAccessibleContext
* @return AccessibleContext
*
* @return the <code>AccessibleContext</code> object
*/
public AccessibleContext getAccessibleContext()
{

View file

@ -35,21 +35,17 @@ 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 java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.Panel;
import java.awt.Point;
import java.awt.Window;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
@ -58,7 +54,7 @@ import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.EventListener;
import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
@ -66,7 +62,6 @@ import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
import javax.swing.plaf.PopupMenuUI;
/**
* JPopupMenu is a container that is used to display popup menu's menu
* items. By default JPopupMenu is a lightweight container, however if it

View file

@ -39,70 +39,219 @@ exception statement from your version. */
package javax.swing;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.swing.plaf.ButtonUI;
/**
* The <code>JRadioButton</code> component provides a visually selectable
* button with mutually exclusive behaviour within a <code>ButtonGroup</code>.
* A series of radio buttons can be used to provide options to the user,
* where the user can only select one of the available options. The state
* of the button is provided by the superclass, <code>JToggleButton</code>.
* <code>JRadioButton</code> adds the additional behaviour, that if two
* or more radio buttons are grouped together, the selection of one implies
* the deselection of the other buttons within the group.
* <p>
*
* Buttons are grouped by adding each instance to a <code>ButtonGroup</code>.
* The existence of such a grouping is not reflected visually, so other means
* should be used to denote this. For instance, the grouped buttons can be placed
* within the same panel, possibly with an appropriate border to denote
* the connection between the components.
*
* @author Michael Koch <konqueror@gmx.de>
* @author Graydon Hoare <graydon@redhat.com>
* @author Andrew John Hughes <gnu_andrew@member.fsf.org>
* @see JToggleButton
* @see ButtonGroup
* @since 1.2
*/
public class JRadioButton extends JToggleButton
{
/**
* Compatible with Sun's JDK.
*/
private static final long serialVersionUID = 7751949583255506856L;
/**
* This class provides accessibility support for the toggle button.
*/
protected class AccessibleJRadioButton
extends AccessibleJToggleButton
{
/**
* Constructor for the accessible toggle button.
*/
protected AccessibleJRadioButton()
{
/* Call the superclass to register for events */
super();
}
/**
* Returns the accessible role for the toggle button.
*
* @return An instance of <code>AccessibleRole</code>, describing
* the role of the toggle button.
*/
public AccessibleRole getAccessibleRole()
{
return AccessibleRole.RADIO_BUTTON;
}
}
/**
* Constructs an unselected radio button with no text or icon.
*/
public JRadioButton()
{
this(null, null);
this(null, null, false);
}
/**
* Constructs a radio button using the labelling, state
* and icon specified by the supplied action.
*
* @param a the action to use to define the properties of the button.
*/
public JRadioButton(Action a)
{
this();
setAction(a);
}
/**
* Constructs an unselected radio button with the supplied icon
* and no text.
*
* @param icon the icon to use.
*/
public JRadioButton(Icon icon)
{
this(null, icon);
this(null, icon, false);
}
/**
* Constructs a radio button with the supplied icon and state.
*
* @param icon the icon to use.
* @param selected if true, the radio button is initially in the
* selected state. Otherwise, the button is unselected.
*/
public JRadioButton(Icon icon, boolean selected)
{
this(null, icon, selected);
}
/**
* Constructs an unselected radio button using the supplied text
* and no icon.
*
* @param text the text to use.
*/
public JRadioButton(String text)
{
this(text, null);
this(text, null, false);
}
/**
* Constructs a radio button with the supplied text and state.
*
* @param text the text to use.
* @param selected if true, the radio button is initially in the
* selected state. Otherwise, the button is unselected.
*/
public JRadioButton(String text, boolean selected)
{
this(text, null, selected);
}
/**
* Constructs an unselected radio button with the supplied text
* and icon.
*
* @param text the text to use.
* @param icon the icon to use.
*/
public JRadioButton(String text, Icon icon)
{
super(text, icon);
this(text, icon, false);
}
/**
* Constructs a radio button with the supplied text, icon and state.
*
* @param text the text to use.
* @param icon the icon to use.
* @param selected if true, the radio button is initially in the
* selected state. Otherwise, the button is unselected.
*/
public JRadioButton(String text, Icon icon, boolean selected)
{
super(text, icon, selected);
borderPainted = false;
contentAreaFilled = false;
}
public JRadioButton(String text, Icon icon, boolean selected)
/**
* Returns the accessible context for this <code>JRadioButton</code>,
* in the form of an instance of <code>AccessibleJRadioButton</code>.
* The context is created, if necessary.
*
* @return the associated context
*/
public AccessibleContext getAccessibleContext()
{
/* Create the context if this is the first request */
if (accessibleContext == null)
{
/* Create the context */
accessibleContext = new AccessibleJRadioButton();
}
return accessibleContext;
}
public AccessibleContext getAccessibleContext()
{
//Gets the AccessibleContext associated with this JRadioButton.
return null;
}
public String getUIClassID()
{
//Returns a string that specifies the name of the Look and Feel
//class that renders this component.
return "RadioButtonUI";
}
/**
* Returns a string specifying the name of the Look and Feel UI class
* that renders this component.
*
* @return the Look and Feel UI class for <code>JRadioButton</code>s
* as a <code>String</code>.
*/
public String getUIClassID()
{
return "RadioButtonUI";
}
protected String paramString()
{
return "JRadioButton";
}
/**
* Returns a string representation of this component for debugging use.
* Users should not depend on anything as regards the content or formatting
* of this string, except for the fact that the returned string may never be
* null (only empty).
*
* @return the component in <code>String</code> form for debugging.
*/
protected String paramString()
{
return "JRadioButton";
}
/**
* This method resets the radio button's UI delegate to the default UI for
* the current look and feel.
*/
public void updateUI()
{
/*
I can't see any difference between this and the superclass one,
but Sun reimplements it... there is no RadioButtonUI class for it
to be cast to.
*/
setUI((ButtonUI) UIManager.getUI(this));
}
}

View file

@ -35,16 +35,15 @@ 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 java.io.IOException;
import java.io.ObjectOutputStream;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/**
* This class represents JRadioButtonMenuItem. Its behaviour is very similar

View file

@ -35,6 +35,7 @@ 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 java.awt.BorderLayout;
@ -44,6 +45,7 @@ import java.awt.Dimension;
import java.awt.LayoutManager;
import java.awt.LayoutManager2;
import java.io.Serializable;
import javax.accessibility.AccessibleRole;
import javax.swing.plaf.RootPaneUI;
@ -62,7 +64,9 @@ public class JRootPane extends JComponent
// The class used to obtain the accessible role for this object.
protected static class AccessibleJRootPane
{
/** DOCUMENT ME! */
/**
* For compatability with Sun's JDK
*/
private static final long serialVersionUID = 1082432482784468088L;
/**
@ -306,6 +310,16 @@ public class JRootPane extends JComponent
/** DOCUMENT ME! */
private static final long serialVersionUID = 8690748000348575668L;
public static final int NONE = 0;
public static final int FRAME = 1;
public static final int PLAIN_DIALOG = 2;
public static final int INFORMATION_DIALOG = 3;
public static final int ERROR_DIALOG = 4;
public static final int COLOR_CHOOSER_DIALOG = 5;
public static final int FILE_CHOOSER_DIALOG = 6;
public static final int QUESTION_DIALOG = 7;
public static final int WARNING_DIALOG = 8;
/** DOCUMENT ME! */
protected Component glassPane;
@ -318,6 +332,8 @@ public class JRootPane extends JComponent
/** DOCUMENT ME! */
protected Container contentPane;
protected JButton defaultButton;
/**
* DOCUMENT ME!
*
@ -466,7 +482,7 @@ public class JRootPane extends JComponent
*
* @return DOCUMENT ME!
*/
protected JComponent createContentPane()
protected Container createContentPane()
{
JPanel p = new JPanel();
p.setName(this.getName() + ".contentPane");
@ -538,4 +554,19 @@ public class JRootPane extends JComponent
{
return "RootPaneUI";
}
public JButton getDefaultButton()
{
return defaultButton;
}
public void setDefaultButton(JButton newButton)
{
if (defaultButton == newButton)
return;
JButton oldButton = defaultButton;
defaultButton = newButton;
firePropertyChange("defaultButton", oldButton, newButton);
}
}

View file

@ -542,7 +542,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
* @param newMin The new minimum.
* @param newMax The new maximum.
*/
public void setValue(int newValue, int newExtent, int newMin, int newMax)
public void setValues(int newValue, int newExtent, int newMin, int newMax)
{
if (!isEnabled())
newValue = model.getValue();

View file

@ -497,14 +497,14 @@ public class JScrollPane
|| vsb.getMaximum() != vs.height
|| vsb.getValue() != vr.y
|| vsb.getVisibleAmount() != vr.height))
vsb.setValue(vr.y, vr.height, 0, vs.height);
vsb.setValues(vr.y, vr.height, 0, vs.height);
if (hsb != null
&& (hsb.getMinimum() != 0
|| hsb.getMaximum() != vs.width
|| hsb.getValue() != vr.width
|| hsb.getVisibleAmount() != vr.height))
hsb.setValue(vr.x, vr.width, 0, vs.width);
hsb.setValues(vr.x, vr.width, 0, vs.width);
}
else
{
@ -593,7 +593,6 @@ public class JScrollPane
return new JViewport();
}
public String getUIClassID()
{
return "ScrollPaneUI";
@ -605,6 +604,25 @@ public class JScrollPane
setUI(b);
}
/**
* This method returns the scrollpane's UI delegate.
*
* @return The scrollpane's UI delegate.
*/
public ScrollPaneUI getUI()
{
return (ScrollPaneUI) ui;
}
/**
* This method sets the scrollpane's UI delegate.
*
* @param ui The scrollpane's UI delegate.
*/
public void setUI(ScrollPaneUI ui)
{
super.setUI(ui);
}
class ScrollBar
extends JScrollBar

View file

@ -35,20 +35,18 @@ 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 java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.EventListener;
import javax.swing.border.EtchedBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
@ -113,21 +111,41 @@ public class JSpinner extends JComponent
PropertyChangeListener,
LayoutManager
{
private JSpinner spinner;
/**
* Creates a new DefaultEditor object.
* For compatability with Sun's JDK 1.4.2 rev. 5
*/
private static final long serialVersionUID = -5317788736173368172L;
/**
* Creates a new <code>DefaultEditor</code> object.
*
* @param spinner DOCUMENT ME!
* @param spinner the <code>JSpinner</code> associated with this editor
*/
public DefaultEditor(JSpinner spinner)
{
this.spinner = spinner;
spinner.addChangeListener(this);
} /* TODO */
}
/**
* Returns the <code>JSpinner</code> object for this editor.
*/
public JSpinner getSpinner()
{
return spinner;
}
/**
* DOCUMENT ME!
*/
public void commitEdit()
throws ParseException
{
} /* TODO */
/**
* DOCUMENT ME!
*
@ -147,6 +165,7 @@ public class JSpinner extends JComponent
{
return null;
} /* TODO */
/**
* DOCUMENT ME!
*
@ -155,6 +174,7 @@ public class JSpinner extends JComponent
public void layoutContainer(Container parent)
{
} /* TODO */
/**
* DOCUMENT ME!
*
@ -166,6 +186,7 @@ public class JSpinner extends JComponent
{
return null;
} /* TODO */
/**
* DOCUMENT ME!
*
@ -177,22 +198,25 @@ public class JSpinner extends JComponent
{
return null;
} /* TODO */
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
* @param event DOCUMENT ME!
*/
public void propertyChange(PropertyChangeEvent evt)
public void propertyChange(PropertyChangeEvent event)
{
} /* TODO */
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
* @param event DOCUMENT ME!
*/
public void stateChanged(ChangeEvent evt)
public void stateChanged(ChangeEvent event)
{
} /* TODO */
/* no-ops */
public void removeLayoutComponent(Component child)
{
@ -214,6 +238,11 @@ public class JSpinner extends JComponent
*/
public static class NumberEditor extends DefaultEditor
{
/**
* For compatability with Sun's JDK
*/
private static final long serialVersionUID = 3791956183098282942L;
/**
* Creates a new NumberEditor object.
*
@ -224,6 +253,16 @@ public class JSpinner extends JComponent
super(spinner);
}
/**
* Creates a new NumberEditor object.
*
* @param spinner DOCUMENT ME!
*/
public NumberEditor(JSpinner spinner, String decimalFormatPattern)
{
super(spinner);
}
/**
* DOCUMENT ME!
*
@ -233,6 +272,11 @@ public class JSpinner extends JComponent
{
return null;
}
public SpinnerNumberModel getModel()
{
return (SpinnerNumberModel) getSpinner().getModel();
}
}
/** DOCUMENT ME! */
@ -336,6 +380,29 @@ public class JSpinner extends JComponent
return model;
}
/**
* Sets a new underlying model.
*
* @param newModel the new model to set
*
* @exception IllegalArgumentException if newModel is <code>null</code>
*/
public void setModel(SpinnerModel newModel)
{
if (newModel == null)
throw new IllegalArgumentException();
if (model == newModel)
return;
SpinnerModel oldModel = model;
model = newModel;
firePropertyChange("model", oldModel, newModel);
if (editor == null)
setEditor(createEditor(model));
}
/**
* Gets the next value without changing the current value.
*

View file

@ -40,15 +40,14 @@ package javax.swing;
import java.awt.Component;
import java.awt.Graphics;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleStateSet;
import javax.accessibility.AccessibleValue;
import javax.swing.UIManager;
import javax.swing.plaf.SplitPaneUI;
/**
* This class implements JSplitPane. It is used to divide two components. By
* dragging the SplitPane's divider, the user can resize the two components.

View file

@ -35,6 +35,7 @@ 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 java.awt.Color;
@ -44,6 +45,7 @@ import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.io.Serializable;
import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
@ -53,7 +55,6 @@ import javax.swing.event.ChangeListener;
import javax.swing.plaf.TabbedPaneUI;
import javax.swing.plaf.UIResource;
/**
* <p>
* This is a container for components. One component is displayed at a time.

View file

@ -56,8 +56,8 @@ import javax.swing.event.TableColumnModelListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.plaf.TableUI;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellEditor;
@ -675,6 +675,11 @@ public class JTable extends JComponent
return renderer;
}
public void setDefaultRenderer(Class columnClass, TableCellRenderer rend)
{
defaultRenderersByColumnClass.put(columnClass, rend);
}
public TableCellRenderer getDefaultRenderer(Class columnClass)
{
if (defaultRenderersByColumnClass.containsKey(columnClass))
@ -1148,16 +1153,32 @@ public class JTable extends JComponent
*/
public void setModel(TableModel m)
{
// Throw exception is m is null.
if (m == null)
throw new IllegalArgumentException();
TableModel tmp = dataModel;
if (autoCreateColumnsFromModel)
createColumnsFromModel();
if (tmp != null)
tmp.removeTableModelListener(this);
// Don't do anything if setting the current model again.
if (dataModel == m)
return;
// Remove table as TableModelListener from old model.
if (dataModel != null)
dataModel.removeTableModelListener(this);
if (m != null)
m.addTableModelListener(this);
dataModel = m;
{
// Set property.
dataModel = m;
// Add table as TableModelListener to new model.
dataModel.addTableModelListener(this);
// Automatically create columns.
if (autoCreateColumnsFromModel)
createColumnsFromModel();
}
// Repaint table.
revalidate();
repaint();
}
@ -1540,17 +1561,31 @@ public class JTable extends JComponent
doLayout();
}
public String getUIClassID()
{
return "TableUI";
}
/**
* This method returns the table's UI delegate.
*
* @return The table's UI delegate.
*/
public TableUI getUI()
{
return (TableUI) ui;
}
/**
* This method sets the table's UI delegate.
*
* @param ui The table's UI delegate.
*/
public void setUI(TableUI ui)
{
super.setUI(ui);
}
public void updateUI()
{
setUI((TableUI) UIManager.getUI(this));

View file

@ -35,22 +35,86 @@ 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 java.awt.Dimension;
import java.awt.FontMetrics;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.Element;
import javax.swing.text.JTextComponent;
import javax.swing.text.PlainDocument;
/**
* The <code>JTextArea</code> component provides a multi-line area for displaying
* and editing plain text. The component is designed to act as a lightweight
* replacement for the heavyweight <code>java.awt.TextArea</code> component,
* which provides similar functionality using native widgets.
* <p>
*
* This component has additional functionality to the AWT class. It follows
* the same design pattern as seen in other text components, such as
* <code>JTextField</code>, <code>JTextPane</code> and <code>JEditorPane</code>,
* and embodied in <code>JTextComponent</code>. These classes separate the text
* (the model) from its appearance within the onscreen component (the view). The
* text is held within a <code>javax.swing.text.Document</code> object, which can
* also maintain relevant style information where necessary. As a result, it is the
* document that should be monitored for textual changes, via
* <code>DocumentEvent</code>s delivered to registered
* <code>DocumentListener</code>s, rather than this component.
* <p>
*
* Unlike <code>java.awt.TextArea</code>, <code>JTextArea</code> does not
* handle scrolling. Instead, this functionality is delegated to a
* <code>JScrollPane</code>, which can contain the text area and handle
* scrolling when required. Likewise, the word wrapping functionality
* of the AWT component is converted to a property of this component
* and the <code>rows</code> and <code>columns</code> properties
* are used in calculating the preferred size of the scroll pane's
* view port.
*
* @author Michael Koch <konqueror@gmx.de>
* @author Andrew John Hughes <gnu_andrew@member.fsf.org>
* @see java.awt.TextArea
* @see javax.swing.JTextComponent
* @see javax.swing.JTextField
* @see javax.swing.JTextPane
* @see javax.swing.JEditorPane
* @see javax.swing.text.Document
* @see javax.swing.text.DocumentEvent
* @see javax.swing.text.DocumentListener
*/
public class JTextArea extends JTextComponent
{
/**
* Compatible with Sun's JDK
*/
private static final long serialVersionUID = -6141680179310439825L;
/**
* The number of rows used by the component.
*/
private int rows;
/**
* The number of columns used by the component.
*/
private int columns;
private boolean wrapping;
/**
* Whether line wrapping is enabled or not.
*/
private boolean lineWrap;
/**
* The number of characters equal to a tab within the text.
*/
private int tabSize = 8;
private boolean wrapStyleWord;
/**
* Creates a new <code>JTextArea</code> object.
*/
@ -125,13 +189,22 @@ public class JTextArea extends JTextComponent
}
/**
* Appends some text.
* Appends the supplied text to the current contents
* of the document model.
*
* @param toAppend the text to append
*/
public void append(String toAppend)
{
setText(getText() + toAppend);
try
{
getDocument().insertString(getText().length(), toAppend, null);
}
catch (BadLocationException exception)
{
/* This shouldn't happen in theory -- but, if it does... */
throw new RuntimeException("Unexpected exception occurred.", exception);
}
}
/**
@ -144,10 +217,16 @@ public class JTextArea extends JTextComponent
return new PlainDocument();
}
/**
* Returns true if the width of this component should be forced
* to match the width of a surrounding view port. When line wrapping
* is turned on, this method returns true.
*
* @return true if lines are wrapped.
*/
public boolean getScrollableTracksViewportWidth()
{
return wrapping ? true : super.getScrollableTracksViewportWidth();
return lineWrap ? true : super.getScrollableTracksViewportWidth();
}
/**
@ -211,35 +290,78 @@ public class JTextArea extends JTextComponent
}
/**
* Checks whethet line wrapping is enabled.
* Checks whether line wrapping is enabled.
*
* @return true if line wrapping is enabled, false otherwise
* @return <code>true</code> if line wrapping is enabled,
* <code>false</code> otherwise
*/
public boolean getLineWrap()
{
return wrapping;
return lineWrap;
}
/**
* Enables/disables line wrapping.
*
* @param wrapping true to enable line wrapping, false otherwise
* @param wrapping <code>true</code> to enable line wrapping,
* <code>false</code> otherwise
*/
public void setLineWrap(boolean flag)
{
if (wrapping == flag)
if (lineWrap == flag)
return;
boolean oldValue = wrapping;
wrapping = flag;
firePropertyChange("lineWrap", oldValue, wrapping);
boolean oldValue = lineWrap;
lineWrap = flag;
firePropertyChange("lineWrap", oldValue, lineWrap);
}
/**
* Checks whether word style wrapping is enabled.
*
* @return <code>true</code> if word style wrapping is enabled,
* <code>false</code> otherwise
*/
public boolean getWrapStyleWord()
{
return wrapStyleWord;
}
/**
* Enables/Disables word style wrapping.
*
* @param flag <code>true</code> to enable word style wrapping,
* <code>false</code> otherwise
*/
public void setWrapStyleWord(boolean flag)
{
if (wrapStyleWord == flag)
return;
boolean oldValue = wrapStyleWord;
wrapStyleWord = flag;
firePropertyChange("wrapStyleWord", oldValue, wrapStyleWord);
}
/**
* Returns the number of characters used for a tab.
* This defaults to 8.
*
* @return the current number of spaces used for a tab.
*/
public int getTabSize()
{
return tabSize;
}
/**
* Sets the number of characters used for a tab to the
* supplied value. If a change to the tab size property
* occurs (i.e. newSize != tabSize), a property change event
* is fired.
*
* @param newSize The new number of characters to use for a tab.
*/
public void setTabSize(int newSize)
{
if (tabSize == newSize)
@ -249,4 +371,110 @@ public class JTextArea extends JTextComponent
tabSize = newSize;
firePropertyChange("tabSize", oldValue, tabSize);
}
protected int getColumnWidth()
{
FontMetrics metrics = getToolkit().getFontMetrics(getFont());
return metrics.charWidth('m');
}
public int getLineCount()
{
return getDocument().getDefaultRootElement().getElementCount();
}
public int getLineStartOffset(int line)
throws BadLocationException
{
int lineCount = getLineCount();
if (line < 0 || line > lineCount)
throw new BadLocationException("Non-existing line number", line);
Element lineElem = getDocument().getDefaultRootElement().getElement(line);
return lineElem.getStartOffset();
}
public int getLineEndOffset(int line)
throws BadLocationException
{
int lineCount = getLineCount();
if (line < 0 || line > lineCount)
throw new BadLocationException("Non-existing line number", line);
Element lineElem = getDocument().getDefaultRootElement().getElement(line);
return lineElem.getEndOffset();
}
public int getLineOfOffset(int offset)
throws BadLocationException
{
Document doc = getDocument();
if (offset < doc.getStartPosition().getOffset()
|| offset >= doc.getEndPosition().getOffset())
throw new BadLocationException("offset outside of document", offset);
return doc.getDefaultRootElement().getElementIndex(offset);
}
protected int getRowHeight()
{
FontMetrics metrics = getToolkit().getFontMetrics(getFont());
return metrics.getHeight();
}
/**
* Inserts the supplied text at the specified position. Nothing
* happens in the case that the model or the supplied string is null
* or of zero length.
*
* @param string The string of text to insert.
* @param position The position at which to insert the supplied text.
* @throws IllegalArgumentException if the position is &lt; 0 or greater
* than the length of the current text.
*/
public void insert(String string, int position)
{
// Retrieve the document model.
Document doc = getDocument();
// Check the model and string for validity.
if (doc == null
|| string == null
|| string.length() == 0)
return;
// Insert the text into the model.
try
{
doc.insertString(position, string, null);
}
catch (BadLocationException e)
{
throw new IllegalArgumentException("The supplied position, "
+ position + ", was invalid.");
}
}
public void replaceRange(String text, int start, int end)
{
Document doc = getDocument();
if (start > end
|| start < doc.getStartPosition().getOffset()
|| end >= doc.getEndPosition().getOffset())
throw new IllegalArgumentException();
try
{
doc.remove(start, end);
doc.insertString(start, text, null);
}
catch (BadLocationException e)
{
// This cannot happen as we check offset above.
}
}
}

View file

@ -42,6 +42,9 @@ import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.accessibility.AccessibleStateSet;
import javax.swing.text.Document;
import javax.swing.text.JTextComponent;
@ -83,6 +86,16 @@ public class JTextField extends JTextComponent
private int align;
private int scrollOffset;
/** @since 1.3 */
private Action action;
/** @since 1.3 */
private String actionCommand;
private PropertyChangeListener actionPropertyChangeListener;
/**
* Creates a new instance of <code>JTextField</code>.
*/
@ -241,11 +254,14 @@ public class JTextField extends JTextComponent
public void setHorizontalAlignment(int newAlign)
{
if (align == newAlign)
return;
int oldAlign = align;
align = newAlign;
firePropertyChange("horizontalAlignment", oldAlign, newAlign);
invalidate();
repaint();
firePropertyChange("horizontalAlignment", oldAlign, newAlign);
}
public void setFont(Font newFont)
@ -272,4 +288,134 @@ public class JTextField extends JTextComponent
return size;
}
/**
* Returns the scroll offset in pixels.
*
* @return the scroll offset
*/
public int getScrollOffset()
{
return scrollOffset;
}
/**
* Sets the scroll offset in pixels.
*
* @param offset the scroll offset
*/
public void setScrollOffset(int offset)
{
scrollOffset = offset;
}
public void postActionEvent()
{
ActionEvent event = new ActionEvent(this, 0, actionCommand);
ActionListener[] listeners = getActionListeners();
for (int index = 0; index < listeners.length; ++index)
listeners[index].actionPerformed(event);
}
/**
* @since 1.3
*/
public Action getAction()
{
return action;
}
/**
* @since 1.3
*/
public void setAction(Action newAction)
{
if (action == newAction)
return;
if (action != null)
{
removeActionListener(action);
action.removePropertyChangeListener(actionPropertyChangeListener);
actionPropertyChangeListener = null;
}
Action oldAction = action;
action = newAction;
if (action != null)
{
addActionListener(action);
actionPropertyChangeListener =
createActionPropertyChangeListener(action);
action.addPropertyChangeListener(actionPropertyChangeListener);
}
firePropertyChange("horizontalAlignment", oldAction, newAction);
}
/**
* @since 1.3
*/
public String getActionCommand()
{
return actionCommand;
}
/**
* @since 1.3
*/
public void setActionCommand(String command)
{
this.actionCommand = command;
}
/**
* @since 1.3
*/
protected PropertyChangeListener createActionPropertyChangeListener(Action action)
{
return new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent event)
{
// Update properties "action" and "horizontalAlignment".
String name = event.getPropertyName();
if (name.equals("enabled"))
{
boolean enabled = ((Boolean) event.getNewValue()).booleanValue();
JTextField.this.setEnabled(enabled);
}
else if (name.equals(Action.SHORT_DESCRIPTION))
{
JTextField.this.setToolTipText((String) event.getNewValue());
}
}
};
}
/**
* @since 1.3
*/
protected void configurePropertiesFromAction(Action action)
{
if (action != null)
{
setEnabled(action.isEnabled());
setToolTipText((String) action.getValue(Action.SHORT_DESCRIPTION));
}
else
{
setEnabled(true);
setToolTipText(null);
}
}
protected int getColumnWidth()
{
FontMetrics metrics = getToolkit().getFontMetrics(getFont());
return metrics.charWidth('m');
}
}

View file

@ -35,11 +35,13 @@ 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 java.awt.Component;
import java.io.IOException;
import java.io.ObjectOutputStream;
import javax.swing.text.AttributeSet;
import javax.swing.text.Document;
import javax.swing.text.EditorKit;

View file

@ -38,17 +38,103 @@ exception statement from your version. */
package javax.swing;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleState;
import javax.swing.plaf.ButtonUI;
/**
* The <code>JToggleButton</code> component provides a stateful button,
* which can be either selected or unselected. This provides the basis
* for the implementations of radio buttons (<code>JRadioButton</code>)
* and check boxes (<code>JCheckBox</code>).
*
* @author Michael Koch <konqueror@gmx.de>
* @author Graydon Hoare <graydon@redhat.com>
* @author Andrew John Hughes <gnu_andrew@member.fsf.org>
* @see JRadioButton
* @see JCheckBox
* @since 1.2
*/
public class JToggleButton extends AbstractButton implements Accessible
{
/**
* This class provides accessibility support for the toggle button.
*/
protected class AccessibleJToggleButton
extends AccessibleAbstractButton
implements ItemListener
{
/**
* Constructor for the accessible toggle button.
*/
public AccessibleJToggleButton()
{
super();
/* Register the accessible toggle button as a listener for item events */
addItemListener(this);
}
/**
* Returns the accessible role for the toggle button.
*
* @return An instance of <code>AccessibleRole</code>, describing
* the role of the toggle button.
*/
public AccessibleRole getAccessibleRole()
{
return AccessibleRole.TOGGLE_BUTTON;
}
/**
* Monitors the toggle button for state changes and fires accessible
* property change events when they occur.
*
* @param event the event that occurred.
*/
public void itemStateChanged(ItemEvent event)
{
/* Fire a state property change event as the button's state has changed */
if (event.getStateChange() == ItemEvent.SELECTED)
{
/* State has changed from unselected (null) to selected */
firePropertyChange(ACCESSIBLE_STATE_PROPERTY, null, AccessibleState.SELECTED);
}
else
{
/* State has changed from selected to unselected (null) */
firePropertyChange(ACCESSIBLE_STATE_PROPERTY, AccessibleState.ENABLED, null);
}
}
}
/**
* The model handles the storage and maintenance of the state of
* the toggle button. This follows the same paradigm (the MVC
* or Model-View-Controller design pattern) employed by
* other Swing components, where the data associated with a component
* is stored separately from the display aspects.
*/
public static class ToggleButtonModel extends DefaultButtonModel
{
/**
* Compatible with Sun's JDK.
*/
private static final long serialVersionUID = -1589950750899943974L;
/**
* Sets the pressed state of the button. The selected state
* of the button also changes follwing the button being pressed.
*
* @param b true if the button is pressed down.
*/
public void setPressed(boolean b)
{
if (! isEnabled())
@ -63,44 +149,97 @@ public class JToggleButton extends AbstractButton implements Accessible
}
}
/**
* Compatible with Sun's JDK.
*/
private static final long serialVersionUID = -3128248873429850443L;
/**
* Constructs an unselected toggle button with no text or icon.
*/
public JToggleButton()
{
this(null, null);
this(null, null, false);
}
/**
* Constructs a toggle button using the labelling, state
* and icon specified by the supplied action.
*
* @param a the action to use to define the properties of the button.
*/
public JToggleButton(Action a)
{
this();
setAction(a);
}
/**
* Constructs an unselected toggle button with the supplied icon
* and no text.
*
* @param icon the icon to use.
*/
public JToggleButton(Icon icon)
{
this(null, icon);
this(null, icon, false);
}
public JToggleButton (Icon icon, boolean selected)
/**
* Constructs a toggle button with the supplied icon and state.
*
* @param icon the icon to use.
* @param selected if true, the toggle button is initially in the
* selected state. Otherwise, the button is unselected.
*/
public JToggleButton(Icon icon, boolean selected)
{
this(null, icon, selected);
}
/**
* Constructs an unselected toggle button using the supplied text
* and no icon.
*
* @param text the text to use.
*/
public JToggleButton(String text)
{
this(text, null);
this(text, null, false);
}
/**
* Constructs a toggle button with the supplied text and state.
*
* @param text the text to use.
* @param selected if true, the toggle button is initially in the
* selected state. Otherwise, the button is unselected.
*/
public JToggleButton(String text, boolean selected)
{
this(text, null, selected);
}
/**
* Constructs an unselected toggle button with the supplied text
* and icon.
*
* @param text the text to use.
* @param icon the icon to use.
*/
public JToggleButton(String text, Icon icon)
{
this(text, icon, false);
}
/**
* Constructs a toggle button with the supplied text, icon and state.
*
* @param text the text to use.
* @param icon the icon to use.
* @param selected if true, the toggle button is initially in the
* selected state. Otherwise, the button is unselected.
*/
public JToggleButton (String text, Icon icon, boolean selected)
{
super(text, icon);
@ -112,34 +251,54 @@ public class JToggleButton extends AbstractButton implements Accessible
/**
* Gets the AccessibleContext associated with this <code>JToggleButton</code>.
* The context is created, if necessary.
*
* @return the associated context
*/
public AccessibleContext getAccessibleContext()
{
return null;
/* Create the context if this is the first request */
if (accessibleContext == null)
{
/* Create the context */
accessibleContext = new AccessibleJToggleButton();
}
return accessibleContext;
}
/**
* Returns a string that specifies the name of the Look and Feel
* class that renders this component.
*
* @return The Look and Feel UI class in <code>String</code> form.
*/
public String getUIClassID()
{
return "ToggleButtonUI";
}
/**
* Returns a textual representation of this component for debugging.
* Users should not depend on anything as regards the content or formatting
* of this string, except for the fact that the returned string may never be
* null (only empty).
*
* @return the component in <code>String</code> form for debugging.
*/
protected String paramString()
{
return "JToggleButton";
}
/**
* This method resets the toggle button's UI delegate to the default UI for
* the current look and feel.
*/
public void updateUI()
{
ButtonUI b = (ButtonUI)UIManager.getUI(this);
setUI(b);
setUI((ButtonUI)UIManager.getUI(this));
}
}

View file

@ -35,25 +35,23 @@ 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 java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.beans.PropertyChangeListener;
import java.io.IOException;
import java.io.ObjectOutputStream;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleStateSet;
import javax.swing.plaf.ToolBarUI;
/**
* JToolBar is a component that provides a toolbar to Swing programs. Users
* can add buttons (or actions that will be represented by JButtons) as well

View file

@ -35,15 +35,16 @@ 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 java.awt.AWTEvent;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.swing.plaf.ToolTipUI;
/**
* This class is used to display ToolTips. ToolTips are small floating windows
* that display text when the mouse comes to rest over a Component. ToolTips

View file

@ -35,12 +35,16 @@ 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 java.awt.Dimension;
import java.awt.Rectangle;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.swing.event.TreeExpansionEvent;
@ -50,10 +54,15 @@ import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeWillExpandListener;
import javax.swing.plaf.TreeUI;
import javax.swing.tree.ExpandVetoException;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeCellEditor;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreeNode;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
public class JTree extends JComponent
@ -61,18 +70,43 @@ public class JTree extends JComponent
{
private static final long serialVersionUID = 7559816092864483649L;
public static final String ANCHOR_SELECTION_PATH_PROPERTY = "anchorSelectionPath";
public static final String CELL_EDITOR_PROPERTY = "cellEditor";
public static final String CELL_RENDERER_PROPERTY = "cellRenderer";
public static final String EDITABLE_PROPERTY = "editable";
public static final String EXPANDS_SELECTED_PATHS_PROPERTY = "expandsSelectedPaths";
public static final String INVOKES_STOP_CELL_EDITING_PROPERTY = "invokesStopCellEditing";
public static final String LARGE_MODEL_PROPERTY = "largeModel";
public static final String LEAD_SELECTION_PATH_PROPERTY = "leadSelectionPath";
public static final String ROOT_VISIBLE_PROPERTY = "rootVisible";
public static final String ROW_HEIGHT_PROPERTY = "rowHeight";
public static final String SCROLLS_ON_EXPAND_PROPERTY = "scrollsOnExpand";
public static final String SELECTION_MODEL_PROPERTY = "selectionModel";
public static final String SHOWS_ROOT_HANDLES_PROPERTY = "showsRootHandles";
public static final String TOGGLE_CLICK_COUNT_PROPERTY = "toggleClickCount";
public static final String TREE_MODEL_PROPERTY = "model";
public static final String VISIBLE_ROW_COUNT_PROPERTY = "visibleRowCount";
protected TreeCellEditor cellEditor;
protected TreeCellRenderer cellRenderer;
protected boolean editable;
protected boolean invokesStopCellEditing;
protected boolean largeModel;
protected boolean rootVisible;
protected int rowHeight;
protected boolean scrollsOnExpand;
protected TreeSelectionModel selectionModel;
protected boolean showsRootHandles;
protected int toggleClickCount;
protected TreeModel treeModel;
protected int visibleRowCount;
/**
* Creates a new <code>JTree</code> object.
*/
public JTree()
{
treeModel = createTreeModel(null);
this(createTreeModel(null));
}
/**
@ -82,7 +116,7 @@ public class JTree extends JComponent
*/
public JTree(Hashtable value)
{
treeModel = createTreeModel(value);
this(createTreeModel(value));
}
/**
@ -92,7 +126,7 @@ public class JTree extends JComponent
*/
public JTree(Object[] value)
{
treeModel = createTreeModel(value);
this(createTreeModel(value));
}
/**
@ -103,6 +137,8 @@ public class JTree extends JComponent
public JTree(TreeModel model)
{
treeModel = model;
setCellRenderer(new DefaultTreeCellRenderer());
updateUI();
}
/**
@ -124,6 +160,7 @@ public class JTree extends JComponent
*/
public JTree(TreeNode root, boolean asksAllowChildren)
{
this(new DefaultTreeModel(root, asksAllowChildren));
}
/**
@ -133,7 +170,81 @@ public class JTree extends JComponent
*/
public JTree(Vector value)
{
treeModel = createTreeModel(value);
this(createTreeModel(value));
}
public static class DynamicUtilTreeNode
extends DefaultMutableTreeNode
{
protected Object childValue;
protected boolean loadedChildren;
public DynamicUtilTreeNode(Object value,
Object children)
{
super(value);
childValue = children;
loadedChildren = false;
}
public int getChildCount()
{
loadChildren();
return super.getChildCount();
}
protected void loadChildren()
{
if (!loadedChildren)
{
createChildren(this, childValue);
loadedChildren = true;
}
}
public Enumeration children()
{
loadChildren();
return super.children();
}
public boolean isLeaf()
{
return (childValue == null ||
!(childValue instanceof Hashtable
|| childValue instanceof Vector
|| childValue.getClass().isArray()));
}
public static void createChildren(DefaultMutableTreeNode parent,
Object children)
{
if (children instanceof Hashtable)
{
Hashtable tab = (Hashtable) children;
Enumeration e = tab.keys();
while (e.hasMoreElements())
{
Object key = e.nextElement();
Object val = tab.get(key);
parent.add(new DynamicUtilTreeNode(key, val));
}
}
else if (children instanceof Vector)
{
Iterator i = ((Vector)children).iterator();
while (i.hasNext())
{
Object n = i.next();
parent.add(new DynamicUtilTreeNode(n,n));
}
}
else if (children.getClass().isArray())
{
Object[] arr = (Object[]) children;
for (int i = 0; i < arr.length; ++i)
parent.add(new DynamicUtilTreeNode(arr[i], arr[i]));
}
}
}
/**
@ -143,8 +254,7 @@ public class JTree extends JComponent
*/
protected static TreeModel createTreeModel(Object value)
{
// FIXME: Implement this.
return null;
return new DefaultTreeModel(new DynamicUtilTreeNode(value, value));
}
/**
@ -173,6 +283,8 @@ public class JTree extends JComponent
public void updateUI()
{
setUI((TreeUI) UIManager.getUI(this));
revalidate();
repaint();
}
/**
@ -441,7 +553,7 @@ public class JTree extends JComponent
* @return <code>true</code> if the root element is visible,
* <code>false</code> otherwise
*/
public boolean isRootVisbile()
public boolean isRootVisible()
{
return rootVisible;
}
@ -456,11 +568,21 @@ public class JTree extends JComponent
return showsRootHandles;
}
public void setShowRootHandles(boolean flag)
public void setShowsRootHandles(boolean flag)
{
showsRootHandles = flag;
}
public TreeCellEditor getCellEditor()
{
return cellEditor;
}
public void setCellEditor(TreeCellEditor editor)
{
cellEditor = editor;
}
public TreeCellRenderer getCellRenderer()
{
return cellRenderer;
@ -470,4 +592,80 @@ public class JTree extends JComponent
{
cellRenderer = newRenderer;
}
public TreeSelectionModel getSelectionModel()
{
return selectionModel;
}
public void setSelectionModel(TreeSelectionModel model)
{
selectionModel = model;
}
public int getVisibleRowCount()
{
return visibleRowCount;
}
public void setVisibleRowCount(int rows)
{
visibleRowCount = rows;
}
public boolean isLargeModel()
{
return largeModel;
}
public void setLargeModel(boolean large)
{
largeModel = large;
}
public int getRowHeight()
{
return rowHeight;
}
public void setRowHeight(int height)
{
rowHeight = height;
}
public boolean getInvokesStopCellEditing()
{
return invokesStopCellEditing;
}
public void setInvokesStopCellEditing(boolean invoke)
{
invokesStopCellEditing = invoke;
}
/**
* @since 1.3
*/
public int getToggleClickCount()
{
return toggleClickCount;
}
/**
* @since 1.3
*/
public void setToggleClickCount(int count)
{
toggleClickCount = count;
}
public boolean getScrollsOnExpand()
{
return scrollsOnExpand;
}
public void setScrollsOnExpand(boolean scroll)
{
scrollsOnExpand = scroll;
}
}

View file

@ -45,12 +45,10 @@ import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
import javax.accessibility.Accessible;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.ViewportUI;
/**
*
* <pre>
@ -129,6 +127,7 @@ public class JViewport extends JComponent
public JViewport()
{
setOpaque(true);
setScrollMode(BLIT_SCROLL_MODE);
updateUI();
}
@ -214,11 +213,17 @@ public class JViewport extends JComponent
getExtentSize());
}
/**
* @deprecated 1.4
*/
public boolean isBackingStoreEnabled()
{
return scrollMode == BACKINGSTORE_SCROLL_MODE;
}
/**
* @deprecated 1.4
*/
public void setBackingStoreEnabled(boolean b)
{
if (b && scrollMode != BACKINGSTORE_SCROLL_MODE)
@ -305,23 +310,11 @@ public class JViewport extends JComponent
return false;
}
public ChangeListener[] getChangeListeners()
{
return (ChangeListener[]) getListeners(ChangeListener.class);
}
public void paint(Graphics g)
{
paintComponent(g);
}
void fireStateChanged()
{
ChangeListener[] listeners = getChangeListeners();
for (int i = 0; i < listeners.length; ++i)
listeners[i].stateChanged(changeEvent);
}
public void addChangeListener(ChangeListener listener)
{
listenerList.add(ChangeListener.class, listener);
@ -332,6 +325,18 @@ public class JViewport extends JComponent
listenerList.remove(ChangeListener.class, listener);
}
public ChangeListener[] getChangeListeners()
{
return (ChangeListener[]) getListeners(ChangeListener.class);
}
protected void fireStateChanged()
{
ChangeListener[] listeners = getChangeListeners();
for (int i = 0; i < listeners.length; ++i)
listeners[i].stateChanged(changeEvent);
}
/**
* This method returns the String ID of the UI class of Separator.
*
@ -349,4 +354,24 @@ public class JViewport extends JComponent
{
setUI((ViewportUI) UIManager.getUI(this));
}
/**
* This method returns the viewport's UI delegate.
*
* @return The viewport's UI delegate.
*/
public ViewportUI getUI()
{
return (ViewportUI) ui;
}
/**
* This method sets the viewport's UI delegate.
*
* @param ui The viewport's UI delegate.
*/
public void setUI(ViewportUI ui)
{
super.setUI(ui);
}
}

View file

@ -62,10 +62,10 @@ public class JWindow extends Window implements Accessible, RootPaneContainer
{
private static final long serialVersionUID = 5420698392125238833L;
public final static int HIDE_ON_CLOSE = 0;
public final static int EXIT_ON_CLOSE = 1;
public final static int DISPOSE_ON_CLOSE = 2;
public final static int DO_NOTHING_ON_CLOSE = 3;
public static final int HIDE_ON_CLOSE = 0;
public static final int EXIT_ON_CLOSE = 1;
public static final int DISPOSE_ON_CLOSE = 2;
public static final int DO_NOTHING_ON_CLOSE = 3;
protected AccessibleContext accessibleContext;

View file

@ -36,6 +36,7 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package javax.swing;
import javax.swing.event.ListDataListener;
/**

View file

@ -35,12 +35,13 @@ 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 java.awt.Component;
import java.awt.Toolkit;
import javax.swing.text.JTextComponent;
import javax.swing.text.JTextComponent;
public abstract class LookAndFeel
{

View file

@ -35,6 +35,7 @@ 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 java.awt.Component;
@ -44,13 +45,11 @@ import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
/**
* This class manages current menu selectection. It provides
* methods to clear and set current selected menu path.

View file

@ -35,12 +35,13 @@ 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 java.awt.Component;
import java.io.FilterInputStream;
import java.io.InputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* ProgressMonitorInputStream

View file

@ -1,5 +1,5 @@
/* RepaintManager.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,6 +35,7 @@ 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 java.awt.Component;
@ -42,13 +43,12 @@ import java.awt.Dimension;
import java.awt.Image;
import java.awt.Rectangle;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
/**
* <p>The repaint manager holds a set of dirty regions, invalid components,
* and a double buffer surface. The dirty regions and invalid components
@ -309,6 +309,9 @@ public class RepaintManager
public synchronized void addDirtyRegion(JComponent component, int x, int y,
int w, int h)
{
if (w == 0 || h == 0)
return;
Rectangle r = new Rectangle(x, y, w, h);
if (dirtyComponents.containsKey(component))
r = r.union((Rectangle)dirtyComponents.get(component));

View file

@ -35,10 +35,11 @@ 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 java.awt.Container;
import java.awt.Component;
import java.awt.Container;
/**
* RootPaneContainer

View file

@ -43,9 +43,10 @@ import java.awt.Container;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.Rectangle;
import java.awt.Point;
import java.awt.Rectangle;
import java.io.Serializable;
import javax.swing.border.Border;
/**
@ -320,7 +321,6 @@ public class ScrollPaneLayout
insetsSize.setSize(insets.left + insets.right,
insets.top + insets.bottom);
maybeSetMinimumSize(viewport, viewportSize);
maybeSetMinimumSize(colHead, columnHeaderSize);
maybeSetMinimumSize(rowHead, rowHeaderSize);

View file

@ -0,0 +1,296 @@
/* SpinnerListModel.java -- A spinner model backed by a list or an array.
Copyright (C) 2004 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., 59 Temple Place, Suite 330, Boston, MA
02111-1307 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 java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* An implementation of <code>SpinnerModel</code> which uses the values
* contained within a list or an array. The backing list or array is
* only stored as a reference within the class. As a result, changes
* made elsewhere to the members of the list or array are reflected by
* this model.
* <p>
*
* The model itself inherits a list of <code>ChangeListener</code>s from
* <code>AbstractSpinnerModel</code>. As this code is unaware of changes
* made to the backing list or array, it is the responsibility of the
* application using the model to invoke <code>fireStateChanged()</code>,
* in order to notify any <code>ChangeListener</code>s, when the list or array
* changes. The model handles notification when the reference itself
* is changed via <code>setList()</code> or when the current value is
* set directly using <code>setValue()</code>.
*
* @author Andrew John Hughes <gnu_andrew@member.fsf.org>
* @see SpinnerModel
* @see AbstractSpinnerModel
* @see JSpinner
* @since 1.4
*/
public class SpinnerListModel
extends AbstractSpinnerModel
implements Serializable
{
/**
* For compatability with Sun's JDK
*/
private static final long serialVersionUID = 3358804052191994516L;
/**
* The backing list for this model.
*/
private List list;
/**
* The current index in the list.
*/
private transient int index;
/**
* Constructs a default <code>SpinnerListModel</code>. This
* is a model backed by a list containing only the single
* <code>String</code> element, "empty".
*/
public SpinnerListModel()
{
List defaultList;
/* Create an empty list */
defaultList = new ArrayList();
/* Add the string "empty" */
defaultList.add("empty");
/* Set the list */
setList(defaultList);
}
/**
* Constructs a <code>SpinnerListModel</code> using the supplied list.
* The model maintains a reference to this list, and returns
* consecutive elements in response to calls to <code>getNextValue()</code>.
* The initial value is that at position 0, so an initial call
* to <code>getValue()</code> returns the same as <code>list.get(0)</code>.
*
* @param list The list to use for this model.
* @throws IllegalArgumentException if the list is null or contains no
* elements.
* @see SpinnerListModel#getNextValue()
* @see SpinnerListModel#getValue()
*/
public SpinnerListModel(List list)
{
/* Retain a reference to the valid list */
setList(list);
}
/**
* Constructs a <code>SpinnerListModel</code> using the supplied array.
* The model stores a reference to the wrapper list returned by
* <code>Arrays.asList()</code>. The wrapper list reflects modifications
* in the underlying array, so these changes will also be reflected
* by the model. The model produces consecutive elements from the array
* in response to calls to <code>getNextValue()</code>. The initial
* value returned by <code>getValue()</code> is the same as
* <code>array[0]</code>.
*
* @param array The array to use for this model.
* @throws IllegalArgumentException if the array is null or contains
* no elements.
* @see Arrays#asList(Object[])
* @see SpinnerListModel#getNextValue()
* @see SpinnerListModel#getValue()
*/
public SpinnerListModel(Object[] array)
{
/* Check for a null or zero-sized array */
if (array == null || array.length == 0)
{
throw new IllegalArgumentException("The supplied array was invalid.");
}
/*
Retain a reference to a wrapper around the valid array
The array, in list form, will be tested again here, but we can't really
avoid this -- a null value to Arrays.asList will throw a NullPointerException
*/
setList(Arrays.asList(array));
}
/**
* Returns the backing list for this model.
*
* @return The backing list.
*/
public List getList()
{
return list;
}
/**
* Returns the next value from the list, which is the same as the element
* stored at the current index + 1. Null is returned if there are no more
* values to be returned (the end of the list has been reached). An
* ambiguity can occur here, as null may also be returned as a valid list
* element. This operation does not change the current value.
*
* @return The next value from the list or null.
*/
public Object getNextValue()
{
/* Check for a next value */
if (index < (list.size() - 1))
{
/* Return the element at the next index */
return list.get(index + 1);
}
else
{
/* Return null as this is the end of the list */
return null;
}
}
/**
* Returns the previous value from the list, which is the same as the element
* stored at the current index - 1. Null is returned if there are no more
* values to be returned (the start of the list has been reached). An
* ambiguity can occur here, as null may also be returned as a valid list
* element. This operation does not change the current value.
*
* @return The previous value from the list or null.
*/
public Object getPreviousValue()
{
/* Check for a previous value. */
if (index > 0)
{
/* Return the element at the previous position */
return list.get(index - 1);
}
else
{
/* Return null as this is the start of the list */
return null;
}
}
/**
* Returns the current value of the model. Initially, this will
* be the element at position 0. On later invocations, this will
* be the last element returned by <code>getNextValue()</code>
* or <code>getPreviousValue()</code>.
*
* @return The current value.
* @see SpinnerListModel#getPreviousValue()
* @see SpinnerListModel#getNextValue()
*/
public Object getValue()
{
return list.get(index);
}
/**
* Changes the backing list for this model. The model only stores
* a reference to the list, so any changes made to the list elsewhere
* will be reflected in the values returned by the model. A
* <code>ChangeEvent</code> is fired if the list being used actually
* changes (i.e. the new list is not referentially equal (!=) to the
* old one).
*
* @param list The new list to use.
* @throws IllegalArgumentException if the list is null or contains
* no elements.
* @see ChangeEvent
*/
public void setList(List list)
{
/* Check for null or zero size list */
if (list == null || list.size() == 0)
{
throw new IllegalArgumentException("The supplied list was invalid.");
}
/* Check for a change of referenced list */
if (this.list != list)
{
/* Store the new list */
this.list = list;
/* Notify listeners of a change */
fireStateChanged();
}
/* We reset the other values in either case */
/* Set the index to 0 */
index = 0;
}
/**
* Sets the current value of the model to be the one supplied.
* The value must exist within the backing list in order for
* the change to take place. Otherwise, an exception is thrown.
* The value used is the first occurrence of the value within
* the backing list. Listeners are notified of this change.
* Following the change, <code>getNextValue()</code> and
* <code>getPreviousValue()</code> return the objects following
* and prior to the supplied value, respectively.
*
* @param value The requested new value of the list.
* @throws IllegalArgumentException if the supplied value does
* not exist in the backing list.
* @see SpinnerListModel#getPreviousValue()
* @see SpinnerListModel#getNextValue()
*/
public void setValue(Object value)
{
int valueIndex;
/* Search for the value in the list */
valueIndex = list.indexOf(value);
/* Check for the value being found */
if (valueIndex == -1)
{
throw new IllegalArgumentException("The supplied value does not "
+ "exist in this list");
}
/* Make the indices match */
index = valueIndex;
/* Notify the listeners */
fireStateChanged();
}
}

View file

@ -1,5 +1,5 @@
/* SpinnerModel.java --
Copyright (C) 2003 Free Software Foundation, Inc.
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -45,10 +45,65 @@ import javax.swing.event.ChangeListener;
*/
public interface SpinnerModel
{
void setValue (Object value);
public Object getValue ();
public Object getNextValue ();
public Object getPreviousValue ();
void addChangeListener (ChangeListener listener);
void removeChangeListener (ChangeListener listener);
/**
* Sets the current value of the model to that specified.
* Implementations can choose to refuse to accept the value
* and throw an exception instead. For example, a date model
* may throw invalid dates, or a list model may throw out
* values which don't exist in the underlying list. Models
* may also throw out unusual values, such as null. The decision
* is left to the discretion of the implementator. If the
* operation succeeds, the implementation should also notify
* any registered <code>ChangeListener</code>s.
*
* @param value The new value of the model.
* @throws IllegalArgumentException if the model does not accept
* the given value.
*/
void setValue(Object value);
/**
* Returns the current value of the model.
*
* @return The current value.
*/
Object getValue();
/**
* Returns the next value from the model. If the model is bounded,
* this method may return null when the upper bound is met.
* The current value is not changed.
*
* @return The next value, or null if there are no more values
* to retrieve.
*/
Object getNextValue();
/**
* Returns the previous value from the model. If the model is
* bounded, this method may return null when the lower bound is
* met. The current value is not changed.
*
* @return The previous value, or null if there are no more
* values to retrieve.
*/
Object getPreviousValue();
/**
* Adds a <code>ChangeListener</code> to the list of registered
* listeners. Each listener is notified when the current value
* is changed.
*
* @param listener The new listener to register.
*/
void addChangeListener(ChangeListener listener);
/**
* Removes a given <code>ChangeListener</code> from the list
* of registered listeners.
*
* @param listener The listener to remove.
*/
void removeChangeListener(ChangeListener listener);
}

View file

@ -37,6 +37,8 @@ exception statement from your version. */
package javax.swing;
import java.io.Serializable;
/**
* SpinnerNumberModel
*
@ -44,7 +46,13 @@ package javax.swing;
* @version 1.0
*/
public class SpinnerNumberModel extends AbstractSpinnerModel
implements Serializable
{
/**
* For compatability with Sun's JDK
*/
private static final long serialVersionUID = 7279176385485777821L;
/** DOCUMENT ME! */
private Number value;
@ -73,6 +81,8 @@ public class SpinnerNumberModel extends AbstractSpinnerModel
* @param minimum the minimum value
* @param maximum the maximum value
* @param stepSize the step size
* @throws IllegalArgumentException if minimum &lt;= value &lt;= maximum does not
* hold
*/
public SpinnerNumberModel(double value, double minimum, double maximum,
double stepSize)
@ -88,6 +98,8 @@ public class SpinnerNumberModel extends AbstractSpinnerModel
* @param minimum the minimum value
* @param maximum the maximum value
* @param stepSize the step size
* @throws IllegalArgumentException if minimum &lt;= value &lt;= maximum does not
* hold
*/
public SpinnerNumberModel(int value, int minimum, int maximum, int stepSize)
{
@ -238,4 +250,49 @@ public class SpinnerNumberModel extends AbstractSpinnerModel
{
return value;
}
public Comparable getMinimum()
{
return minimum;
}
public void setMinimum(Comparable newMinimum)
{
if (minimum != newMinimum)
{
minimum = newMinimum;
fireStateChanged();
}
}
public Comparable getMaximum()
{
return maximum;
}
public void setMaximum(Comparable newMaximum)
{
if (maximum != newMaximum)
{
maximum = newMaximum;
fireStateChanged();
}
}
public Number getStepSize()
{
return stepSize;
}
public void setStepSize(Number newStepSize)
{
if (newStepSize == null)
throw new IllegalArgumentException();
if (stepSize != newStepSize)
{
stepSize = newStepSize;
fireStateChanged();
}
}
}

View file

@ -42,12 +42,9 @@ import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.LayoutManager2;
import java.util.HashMap;
import java.util.Map;
import javax.swing.Spring;
/**
* A very flexible layout manager. Components are laid out by defining the
* relationships between them. The relationships are expressed as
@ -91,7 +88,7 @@ public class SpringLayout implements LayoutManager2
*
* @author Roman Kennke (roman@ontographics.com)
*/
public final static class Constraints
public static class Constraints
{
// The constraints for each edge, and width and height.

View file

@ -35,6 +35,7 @@ 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 java.applet.Applet;
@ -56,10 +57,10 @@ import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.lang.reflect.InvocationTargetException;
import javax.swing.plaf.ActionMapUIResource;
import javax.swing.plaf.InputMapUIResource;
/**
* This class contains a number of static utility functions which are
* useful when drawing swing components, dispatching events, or calculating
@ -75,6 +76,11 @@ public class SwingUtilities implements SwingConstants
*/
private static OwnerFrame ownerFrame;
private SwingUtilities()
{
// Do nothing.
}
/**
* Calculates the portion of the base rectangle which is inside the
* insets.
@ -1014,4 +1020,170 @@ public class SwingUtilities implements SwingConstants
child.setParent(uiInputMap);
}
}
/**
* Subtracts a rectangle from another and return the area as an array
* of rectangles.
* Returns the areas of rectA which are not covered by rectB.
* If the rectangles do not overlap, or if either parameter is
* <code>null</code>, a zero-size array is returned.
* @param rectA The first rectangle
* @param rectB The rectangle to subtract from the first
* @return An array of rectangles representing the area in rectA
* not overlapped by rectB
*/
public static Rectangle[] computeDifference(Rectangle rectA, Rectangle rectB)
{
if (rectA == null || rectB == null)
return new Rectangle[0];
Rectangle[] r = new Rectangle[4];
int x1 = rectA.x;
int y1 = rectA.y;
int w1 = rectA.width;
int h1 = rectA.height;
int x2 = rectB.x;
int y2 = rectB.y;
int w2 = rectB.width;
int h2 = rectB.height;
// (outer box = rectA)
// -------------
// |_____0_____|
// | |rectB| |
// |_1|_____|_2|
// | 3 |
// -------------
int H0 = (y2 > y1) ? y2 - y1 : 0; // height of box 0
int H3 = (y2 + h2 < y1 + h1) ? y1 + h1 - y2 - h2 : 0; // height box 3
int W1 = (x2 > x1) ? x2 - x1 : 0; // width box 1
int W2 = (x1 + w1 > x2 + w2) ? x1 + w1 - x2 - w2 : 0; // w. box 2
int H12 = (H0 + H3 < h1) ? h1 - H0 - H3 : 0; // height box 1 & 2
if (H0 > 0)
r[0] = new Rectangle(x1, y1, w1, H0);
else
r[0] = null;
if (W1 > 0 && H12 > 0)
r[1] = new Rectangle(x1, y1 + H0, W1, H12);
else
r[1] = null;
if (W2 > 0 && H12 > 0)
r[2] = new Rectangle(x2 + w2, y1 + H0, W2, H12);
else
r[2] = null;
if (H3 > 0)
r[3] = new Rectangle(x1, y1 + H0 + H12, w1, H3);
else
r[3] = null;
// sort out null objects
int n = 0;
for (int i = 0; i < 4; i++)
if (r[i] != null)
n++;
Rectangle[] out = new Rectangle[n];
for (int i = 3; i >= 0; i--)
if (r[i] != null)
out[--n] = r[i];
return out;
}
/**
* Calculates the intersection of two rectangles.
*
* @param x upper-left x coodinate of first rectangle
* @param x upper-left y coodinate of first rectangle
* @param w width of first rectangle
* @param h height of first rectangle
* @param rect a Rectangle object of the second rectangle
* @throws a NullPointerException if rect is null.
*
* @return a rectangle corresponding to the intersection of the
* two rectangles. A zero rectangle is returned if the rectangles
* do not overlap.
*/
public static Rectangle computeIntersection(int x, int y, int w, int h,
Rectangle rect)
{
int x2 = (int) rect.getX();
int y2 = (int) rect.getY();
int w2 = (int) rect.getWidth();
int h2 = (int) rect.getHeight();
int dx = (x > x2) ? x : x2;
int dy = (y > y2) ? y : y2;
int dw = (x + w < x2 + w2) ? (x + w - dx) : (x2 + w2 - dx);
int dh = (y + h < y2 + h2) ? (y + h - dy) : (y2 + h2 - dy);
if (dw >= 0 && dh >= 0)
return new Rectangle(dx, dy, dw, dh);
return new Rectangle(0, 0, 0, 0);
}
/**
* Calculates the width of a given string.
*
* @param fm the <code>FontMetrics</code> object to use
* @param str the string
*
* @return the width of the the string.
*/
public static int computeStringWidth(FontMetrics fm, String str)
{
return fm.stringWidth(str);
}
/**
* Calculates the union of two rectangles.
*
* @param x upper-left x coodinate of first rectangle
* @param x upper-left y coodinate of first rectangle
* @param w width of first rectangle
* @param h height of first rectangle
* @param rect a Rectangle object of the second rectangle
* @throws a NullPointerException if rect is null.
*
* @return a rectangle corresponding to the union of the
* two rectangles. A rectangle encompassing both is returned if the
* rectangles do not overlap.
*/
public static Rectangle computeUnion(int x, int y, int w, int h,
Rectangle rect)
{
int x2 = (int) rect.getX();
int y2 = (int) rect.getY();
int w2 = (int) rect.getWidth();
int h2 = (int) rect.getHeight();
int dx = (x < x2) ? x : x2;
int dy = (y < y2) ? y : y2;
int dw = (x + w > x2 + w2) ? (x + w - dx) : (x2 + w2 - dx);
int dh = (y + h > y2 + h2) ? (y + h - dy) : (y2 + h2 - dy);
if (dw >= 0 && dh >= 0)
return new Rectangle(dx, dy, dw, dh);
return new Rectangle(0, 0, 0, 0);
}
/**
* Tests if a rectangle contains another.
* @param a first rectangle
* @param b second rectangle
* @return true if a contains b, false otherwise
* @throws NullPointerException
*/
public static boolean isRectangleContainingRectangle(Rectangle a, Rectangle b)
{
// Note: zero-size rects inclusive, differs from Rectangle.contains()
return b.width >= 0 && b.height >= 0 && b.width >= 0 && b.height >= 0
&& b.x >= a.x && b.x + b.width <= a.x + a.width && b.y >= a.y
&& b.y + b.height <= a.y + a.height;
}
}

View file

@ -35,14 +35,15 @@ 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 java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.Serializable;
import java.util.EventListener;
import javax.swing.event.EventListenerList;
import javax.swing.event.EventListenerList;
/**
* DOCUMENT ME!

View file

@ -37,28 +37,19 @@ exception statement from your version. */
package javax.swing;
import java.awt.AWTEvent;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.Panel;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JComponent;
import javax.swing.Popup;
import javax.swing.PopupFactory;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
/**
* This class is responsible for the registration of JToolTips to Components
@ -461,7 +452,13 @@ public class ToolTipManager extends MouseAdapter implements MouseMotionListener
{
currentPoint = event.getPoint();
if (currentTip != null)
currentTip.setTipText(((JComponent) currentComponent).getToolTipText(event));
{
if (currentComponent == null)
currentComponent = (Component) event.getSource();
String text = ((JComponent) currentComponent).getToolTipText(event);
currentTip.setTipText(text);
}
if (enterTimer.isRunning())
enterTimer.restart();
}
@ -473,7 +470,7 @@ public class ToolTipManager extends MouseAdapter implements MouseMotionListener
*/
private void showTip()
{
if (! enabled)
if (! enabled || currentComponent == null)
return;
if (currentTip == null

View file

@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
import java.io.Serializable;
import java.awt.event.InputEvent;
import java.awt.datatransfer.*;
public class TransferHandler implements Serializable
{
@ -48,8 +50,66 @@ public class TransferHandler implements Serializable
public static final int MOVE = 2;
public static final int COPY_OR_MOVE = 3;
static Action getCopyAction ()
{
return null;
}
static Action getCutAction ()
{
return null;
}
static Action getPasteAction ()
{
return null;
}
protected TransferHandler()
{
// Do nothing here.
}
public TransferHandler(String property)
{
}
public boolean canImport (JComponent c, DataFlavor[] flavors)
{
return false;
}
public Transferable createTransferable(JComponent c)
{
return null;
}
public void exportAsDrag (JComponent c, InputEvent e, int action)
{
}
protected void exportDone (JComponent c, Transferable data, int action)
{
}
public void exportToClipboard(JComponent c, Clipboard clip, int action)
{
}
public int getSourceActions (JComponent c)
{
return 0;
}
public Icon getVisualRepresentation (Transferable t)
{
return null;
}
public boolean importData (JComponent c, Transferable t)
{
return false;
}
}

View file

@ -35,13 +35,13 @@ 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 java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.lang.reflect.Method;
@ -51,7 +51,6 @@ import java.util.ListIterator;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.Set;
import javax.swing.border.Border;
import javax.swing.plaf.ComponentUI;
@ -479,7 +478,7 @@ public class UIDefaults extends Hashtable
propertyChangeSupport.addPropertyChangeListener(listener);
}
void removePropertyChangeListener(PropertyChangeListener listener)
public void removePropertyChangeListener(PropertyChangeListener listener)
{
propertyChangeSupport.removePropertyChangeListener(listener);
}

View file

@ -44,6 +44,8 @@ import java.awt.Font;
import java.awt.Insets;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
import java.util.Locale;
import javax.swing.border.Border;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.metal.MetalLookAndFeel;
@ -158,10 +160,43 @@ public class UIManager implements Serializable
}
public static LookAndFeel[] getAuxiliaryLookAndFeels()
{ return aux_installed; }
{
return aux_installed;
}
public static Object get(Object key)
{ return getLookAndFeel().getDefaults().get(key); }
{
return getLookAndFeel().getDefaults().get(key);
}
public static Object get(Object key, Locale locale)
{
return getLookAndFeel().getDefaults().get(key ,locale);
}
/**
* Returns a boolean value from the defaults table,
* <code>false</code> if key is not present.
*
* @since 1.4
*/
public static boolean getBoolean(Object key)
{
Boolean value = (Boolean) getLookAndFeel().getDefaults().get(key);
return value != null ? value.booleanValue() : false;
}
/**
* Returns a boolean value from the defaults table,
* <code>false</code> if key is not present.
*
* @since 1.4
*/
public static boolean getBoolean(Object key, Locale locale)
{
Boolean value = (Boolean) getLookAndFeel().getDefaults().get(key, locale);
return value != null ? value.booleanValue() : false;
}
/**
* Returns a border from the defaults table.
@ -171,6 +206,16 @@ public class UIManager implements Serializable
return (Border) getLookAndFeel().getDefaults().get(key);
}
/**
* Returns a border from the defaults table.
*
* @since 1.4
*/
public static Border getBorder(Object key, Locale locale)
{
return (Border) getLookAndFeel().getDefaults().get(key, locale);
}
/**
* Returns a drawing color from the defaults table.
*/
@ -179,6 +224,14 @@ public class UIManager implements Serializable
return (Color) getLookAndFeel().getDefaults().get(key);
}
/**
* Returns a drawing color from the defaults table.
*/
public static Color getColor(Object key, Locale locale)
{
return (Color) getLookAndFeel().getDefaults().get(key);
}
/**
* this string can be passed to Class.forName()
*/
@ -203,6 +256,14 @@ public class UIManager implements Serializable
return (Dimension) getLookAndFeel().getDefaults().get(key);
}
/**
* Returns a dimension from the defaults table.
*/
public static Dimension getDimension(Object key, Locale locale)
{
return (Dimension) getLookAndFeel().getDefaults().get(key, locale);
}
/**
* Retrieves a font from the defaults table of the current
* LookAndFeel.
@ -216,6 +277,19 @@ public class UIManager implements Serializable
return (Font) getLookAndFeel().getDefaults().get(key);
}
/**
* Retrieves a font from the defaults table of the current
* LookAndFeel.
*
* @param key an Object that specifies the font. Typically,
* this is a String such as
* <code>TitledBorder.font</code>.
*/
public static Font getFont(Object key, Locale locale)
{
return (Font) getLookAndFeel().getDefaults().get(key ,locale);
}
/**
* Returns an Icon from the defaults table.
*/
@ -224,6 +298,14 @@ public class UIManager implements Serializable
return (Icon) getLookAndFeel().getDefaults().get(key);
}
/**
* Returns an Icon from the defaults table.
*/
public static Icon getIcon(Object key, Locale locale)
{
return (Icon) getLookAndFeel().getDefaults().get(key, locale);
}
/**
* Returns an Insets object from the defaults table.
*/
@ -232,6 +314,14 @@ public class UIManager implements Serializable
return (Insets) getLookAndFeel().getDefaults().getInsets(key);
}
/**
* Returns an Insets object from the defaults table.
*/
public static Insets getInsets(Object key, Locale locale)
{
return (Insets) getLookAndFeel().getDefaults().getInsets(key, locale);
}
public static LookAndFeelInfo[] getInstalledLookAndFeels()
{
return installed;
@ -245,6 +335,14 @@ public class UIManager implements Serializable
return x.intValue();
}
public static int getInt(Object key, Locale locale)
{
Integer x = (Integer) getLookAndFeel().getDefaults().get(key, locale);
if (x == null)
return 0;
return x.intValue();
}
public static LookAndFeel getLookAndFeel()
{
return look_and_feel;
@ -267,6 +365,14 @@ public class UIManager implements Serializable
return (String) getLookAndFeel().getDefaults().get(key);
}
/**
* Returns a string from the defaults table.
*/
public static String getString(Object key, Locale locale)
{
return (String) getLookAndFeel().getDefaults().get(key, locale);
}
/**
* Returns the name of the LookAndFeel class that implements the
* native systems look and feel if there is one, otherwise the name

View file

@ -1,5 +1,5 @@
/* MatteBorder.java --
Copyright (C) 2003 Free Software Foundation, Inc.
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -42,8 +42,8 @@ import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import javax.swing.Icon;
import javax.swing.Icon;
/**
* A border that is filled with either a solid color or with repeated

View file

@ -1,5 +1,5 @@
/* AbstractColorChooserPanel.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,15 +35,16 @@ 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.colorchooser;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.Icon;
import javax.swing.JColorChooser;
import javax.swing.JPanel;
/**
* AbstractColorChooserPanel
*

View file

@ -1,5 +1,5 @@
/* ColorSelectionModel.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -39,6 +39,7 @@ exception statement from your version. */
package javax.swing.colorchooser;
import java.awt.Color;
import javax.swing.event.ChangeListener;
/**

View file

@ -1,5 +1,5 @@
/* DefaultColorSelectionModel.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,15 +35,16 @@ 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.colorchooser;
import java.awt.Color;
import java.io.Serializable;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
/**
* This is the default implementation of the ColorSelectionModel interface
* that JColorChoosers use.

View file

@ -35,23 +35,22 @@ 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.colorchooser;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.ComponentOrientation;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.LayoutManager;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.image.MemoryImageSource;
import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.Icon;
@ -66,7 +65,6 @@ import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/**
* This is the Default HSB Panel displayed in the JColorChooser.
*/
@ -377,7 +375,7 @@ class DefaultHSBChooserPanel extends AbstractColorChooserPanel
b)));
spinnerTrigger = false;
if (! handlingMouse)
if (! handlingMouse && slider != null && ! slider.getValueIsAdjusting())
{
updateImage();
updateTrack();
@ -419,11 +417,6 @@ class DefaultHSBChooserPanel extends AbstractColorChooserPanel
internalChange = true;
// spinnerTrigger, internalChange, and handlingMouse are used because of the
// we don't want things like: change spinner -> update chooser -> change spinner
// That's because the value from before and after the update can differ
// slightly because of the conversion.
// FIXME: Think of better way to deal with this.
if (! spinnerTrigger)
{
hSpinner.setValue(new Integer((int) (hsbVals[0] * 360)));
@ -438,8 +431,10 @@ class DefaultHSBChooserPanel extends AbstractColorChooserPanel
slider.setValue(((Number) hSpinner.getValue()).intValue());
if (! handlingMouse)
{
gradientPoint.x = (int) ((1 - hsbVals[1]) * imgWidth);
gradientPoint.y = (int) ((1 - hsbVals[2]) * imgHeight);
gradientPoint.x = (int) ((1
- ((Number) sSpinner.getValue()).intValue() / 100f) * imgWidth);
gradientPoint.y = (int) ((1
- ((Number) bSpinner.getValue()).intValue() / 100f) * imgHeight);
}
break;
case SLOCKED:
@ -447,8 +442,9 @@ class DefaultHSBChooserPanel extends AbstractColorChooserPanel
slider.setValue(((Number) sSpinner.getValue()).intValue());
if (! handlingMouse)
{
gradientPoint.x = (int) (hsbVals[0] * imgWidth);
gradientPoint.y = (int) ((1 - hsbVals[2]) * imgHeight);
gradientPoint.x = (int) (((Number) hSpinner.getValue()).intValue() / 360f * imgWidth);
gradientPoint.y = (int) ((1
- ((Number) bSpinner.getValue()).intValue() / 100f) * imgHeight);
}
break;
case BLOCKED:
@ -456,15 +452,19 @@ class DefaultHSBChooserPanel extends AbstractColorChooserPanel
slider.setValue(((Number) bSpinner.getValue()).intValue());
if (! handlingMouse)
{
gradientPoint.x = (int) (hsbVals[0] * imgWidth);
gradientPoint.y = (int) ((1 - hsbVals[1]) * imgHeight);
gradientPoint.x = (int) (((Number) hSpinner.getValue()).intValue() / 360f * imgWidth);
gradientPoint.y = (int) ((1
- ((Number) sSpinner.getValue()).intValue() / 100f) * imgHeight);
}
break;
}
internalChange = false;
updateImage();
updateTrack();
if (! handlingMouse && slider != null && ! slider.getValueIsAdjusting())
updateImage();
if (! handlingMouse || locked != HLOCKED)
updateTrack();
updateTextFields();
}
@ -857,4 +857,16 @@ class DefaultHSBChooserPanel extends AbstractColorChooserPanel
trackImage = createImage(new MemoryImageSource(trackWidth, imgHeight,
trackPix, 0, trackWidth));
}
/**
* This method returns the HSB values for the currently selected color.
*
* @return The HSB values for the currently selected color.
*/
private float[] getHSBValues()
{
Color c = getColorFromModel();
float[] f = Color.RGBtoHSB(c.getRed(), c.getGreen(), c.getBlue(), null);
return f;
}
}

View file

@ -35,6 +35,7 @@ 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.colorchooser;
import java.awt.Color;
@ -43,12 +44,12 @@ import java.awt.Dimension;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Insets;
import javax.swing.JColorChooser;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;
/**
* This is the default preview panel for the JColorChooser. The default
* preview panel is responsible for displaying the currently selected color

View file

@ -35,18 +35,17 @@ 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.colorchooser;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.Icon;
import javax.swing.JColorChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
@ -54,7 +53,6 @@ import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/**
* This is the default RGB panel for the JColorChooser. The color is selected
* using three sliders that represent the RGB values.
@ -73,11 +71,14 @@ public class DefaultRGBChooserPanel extends AbstractColorChooserPanel
*/
public void stateChanged(ChangeEvent e)
{
if (internalChange)
if (updateChange)
return;
int color = R.getValue() << 16 | G.getValue() << 8 | B.getValue();
sliderChange = true;
getColorSelectionModel().setSelectedColor(new Color(color));
sliderChange = false;
}
}
@ -93,23 +94,32 @@ public class DefaultRGBChooserPanel extends AbstractColorChooserPanel
*/
public void stateChanged(ChangeEvent e)
{
if (internalChange)
if (updateChange)
return;
int red = ((Number) RSpinner.getValue()).intValue();
int green = ((Number) GSpinner.getValue()).intValue();
int blue = ((Number) BSpinner.getValue()).intValue();
int color = red << 16 | green << 8 | blue;
spinnerChange = true;
getColorSelectionModel().setSelectedColor(new Color(color));
spinnerChange = false;
}
}
/** Whether the color change was initiated by the spinners. */
private transient boolean spinnerChange = false;
/** Whether the color change was initiated by the sliders. */
private transient boolean sliderChange = false;
/**
* Whether the color change was initiated from the slider or spinner rather
* than externally.
* Whether the change was forced by the chooser (meaning the color has
* already been changed).
*/
private transient boolean internalChange = false;
private transient boolean updateChange = false;
/** The ChangeListener for the sliders. */
private transient ChangeListener colorChanger;
@ -175,22 +185,28 @@ public class DefaultRGBChooserPanel extends AbstractColorChooserPanel
int green = rgb >> 8 & 0xff;
int blue = rgb & 0xff;
internalChange = true;
updateChange = true;
if (R != null)
R.setValue(red);
if (RSpinner != null)
RSpinner.setValue(new Integer(red));
if (G != null)
G.setValue(green);
if (GSpinner != null)
GSpinner.setValue(new Integer(green));
if (B != null)
B.setValue(blue);
if (BSpinner != null)
BSpinner.setValue(new Integer(blue));
if (! sliderChange)
{
if (R != null)
R.setValue(red);
if (G != null)
G.setValue(green);
if (B != null)
B.setValue(blue);
}
if (! spinnerChange)
{
if (GSpinner != null)
GSpinner.setValue(new Integer(green));
if (RSpinner != null)
RSpinner.setValue(new Integer(red));
if (BSpinner != null)
BSpinner.setValue(new Integer(blue));
}
internalChange = false;
updateChange = false;
revalidate();
repaint();

View file

@ -35,6 +35,7 @@ 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.colorchooser;
import java.awt.BorderLayout;
@ -48,12 +49,12 @@ import java.awt.LayoutManager;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.Icon;
import javax.swing.JColorChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* This class is the DefaultSwatchChooserPanel. This chooser panel displays a
* set of colors that can be picked. Recently picked items will go into a

View file

@ -1,5 +1,5 @@
/* AncestorEvent.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -40,6 +40,7 @@ package javax.swing.event;
import java.awt.AWTEvent;
import java.awt.Container;
import javax.swing.JComponent;
/**

View file

@ -1,5 +1,5 @@
/* HyperlinkEvent.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -40,6 +40,7 @@ package javax.swing.event;
import java.net.URL;
import java.util.EventObject;
import javax.swing.text.Element;
/**

View file

@ -1,5 +1,5 @@
/* InternalFrameEvent.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -39,6 +39,7 @@ exception statement from your version. */
package javax.swing.event;
import java.awt.AWTEvent;
import javax.swing.JInternalFrame;
/**

View file

@ -1,5 +1,5 @@
/* MenuDragMouseEvent.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,11 +35,12 @@ 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.event;
// Imports
import java.awt.event.MouseEvent;
import java.awt.Component;
import java.awt.event.MouseEvent;
import javax.swing.MenuElement;
import javax.swing.MenuSelectionManager;

View file

@ -1,5 +1,5 @@
/* MenuKeyEvent.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,11 +35,12 @@ 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.event;
// Imports
import java.awt.Component;
import java.awt.event.KeyEvent;
import javax.swing.MenuElement;
import javax.swing.MenuSelectionManager;

View file

@ -1,5 +1,5 @@
/* TableColumnModelEvent.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,10 +35,11 @@ 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.event;
// Imports
import java.util.EventObject;
import javax.swing.table.TableColumnModel;
/**

View file

@ -1,5 +1,5 @@
/* TableModelEvent.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -39,6 +39,7 @@ exception statement from your version. */
package javax.swing.event;
import java.util.EventObject;
import javax.swing.table.TableModel;
/**

View file

@ -1,5 +1,5 @@
/* TreeExpansionEvent.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,10 +35,11 @@ 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.event;
// Imports
import java.util.EventObject;
import javax.swing.tree.TreePath;
/**

View file

@ -1,5 +1,5 @@
/* TreeModelEvent.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -35,10 +35,11 @@ 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.event;
// Imports
import java.util.EventObject;
import javax.swing.tree.TreePath;
/**

View file

@ -35,9 +35,11 @@ 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.event;
import java.util.EventObject;
import javax.swing.tree.TreePath;
/**

View file

@ -1,5 +1,5 @@
/* TreeWillExpandListener.java --
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -39,6 +39,7 @@ exception statement from your version. */
package javax.swing.event;
import java.util.EventListener;
import javax.swing.tree.ExpandVetoException;
/**

Some files were not shown because too many files have changed in this diff Show more