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:
parent
c21accc5d9
commit
ea28b8f60f
429 changed files with 29663 additions and 8685 deletions
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ()
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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 < 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.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
296
libjava/javax/swing/SpinnerListModel.java
Normal file
296
libjava/javax/swing/SpinnerListModel.java
Normal 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();
|
||||
}
|
||||
|
||||
}
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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 <= value <= 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 <= value <= 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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!
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue