diff options
author | graydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-16 20:03:29 +0000 |
---|---|---|
committer | graydon <graydon@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-16 20:03:29 +0000 |
commit | 9a88c53bf3f17897356531c943b1613f38a1f9d2 (patch) | |
tree | a4155758493cddf09d676b0715a4317059dda9dc /libjava/javax/swing/text | |
parent | 1e89119c853abeb23c81639f8c93305c3b87bbe9 (diff) | |
download | ppe42-gcc-9a88c53bf3f17897356531c943b1613f38a1f9d2.tar.gz ppe42-gcc-9a88c53bf3f17897356531c943b1613f38a1f9d2.zip |
2005-02-15 Mark Wielaard <mark@klomp.org>
* java/awt/BasicStroke.java (hashCode): Check for null dash.
2005-02-15 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/peer/gtk/GtkArg.java,
gnu/java/awt/peer/gtk/GtkArgList.java:
Removed.
2005-02-15 Craig Black <craig.black@aonix.com>
* gnu/java/awt/peer/gtk/GtkCheckboxMenuItem.java
(postMenuActionEvent): Implement to notify ItemListeners.
* java/awt/CheckboxMenuItem.java
(dispatchEventImpl): Update state on ItemEvent.
* java/awt/MenuItem.java
(processActionEvent): Retarget event source.
2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
* gnu/java/awt/color/ClutProfileConverter.java,
gnu/java/awt/peer/ClasspathTextLayoutPeer.java,
gnu/java/awt/peer/gtk/GdkFontPeer.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/GdkRobotPeer.java,
gnu/java/awt/peer/gtk/GdkTextLayout.java,
gnu/java/awt/peer/gtk/GtkButtonPeer.java,
gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
gnu/java/awt/peer/gtk/GtkChoicePeer.java,
gnu/java/awt/peer/gtk/GtkComponentPeer.java,
gnu/java/awt/peer/gtk/GtkContainerPeer.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/GtkFramePeer.java,
gnu/java/awt/peer/gtk/GtkLabelPeer.java,
gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java,
gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,
gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,
gnu/java/awt/peer/gtk/GtkTextComponentPeer.java,
gnu/java/awt/peer/gtk/GtkToolkit.java,
gnu/java/awt/peer/gtk/GtkWindowPeer.java,
javax/swing/JPopupMenu.java,
javax/swing/JSpinner.java,
javax/swing/SortingFocusTraversalPolicy.java,
javax/swing/SwingUtilities.java,
javax/swing/plaf/basic/BasicComboBoxEditor.java,
javax/swing/plaf/basic/BasicComboBoxRenderer.java,
javax/swing/tree/DefaultMutableTreeNode.java:
Removed unused imports and expanded starred
imports.
2005-02-15 Mark Wielaard <mark@klomp.org>
* java/awt/AWTKeyStroke.java (getAWTKeyStroke(String)): Throw
IllegalArgumentException when the given String is null.
* javax/swing/KeyStroke.java (getKeyStroke(String)): Return null
when given keystoke sequence cannot be parsed.
* javax/swing/JRootPane.java (setJMenuBar): Remove current menubar
if one is installed. Only install the given menubar is not null.
* javax/swing/JViewport.java (getViewSize): Return an empty
Dimension when the view isn't set or preferred component size when
no viewSize is set.
* javax/swing/ViewportLayout.java (preferredLayoutSize): Return an
empty Dimension when there is no view set.
(minimumLayoutSize): Likewise.
(layoutContainer): Don't try to layout when there is no view.
2005-02-15 Anthony Green <green@redhat.com>
* jni/gtk-peer/gtk_jawt.c (classpath_jawt_get_drawable,
classpath_jawt_lock, classpath_jawt_unlock): New functions.
* jawt.c (_Jv_JAWT_Lock, _Jv_JAWT_Unlock): New functions.
(_Jv_GetDrawingSurface): Set visualID.
(_Jv_FreeDrawingSurfaceInfo): Clear visualID.
(JAWT_GetAWT): Set Lock and Unlock.
* include/jawt_md.h (struct _JAWT_X11DrawingSurfaceInfo): Add visualID.
* include/jawt.h (JAWT_VERSION_1_4, JAWT_LOCK_ERROR,
JAWT_LOCK_CLIP_CHANGED, JAWT_LOCK_BOUNDS_CHANGED,
JAWT_LOCK_SURFACE_CHANGED): New macros.
(struct _JAWT): Add Lock and Unlock.
2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
* jawt.c: New file.
* include/jawt.h: Likewise.
* include/jawt_md.h: Likewise.
* include/Makefile.am (tool_include__HEADERS): Add jawt.h and
jawt_md.h files.
* jni/classpath/classpath_jawt.h: Likewise.
* jni/gtk-peer/gtk_jawt.c: Likewise.
* Makefile.am: Build libjawt.so.
2005-02-15 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/peer/gtk/GdkGraphics2D.java:
Merged file header with classpath CVS head.
* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
Merged code formatting with classpath CVS head.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:
Removed debug code.
(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
Handle special JNI strings with 2 '\0' at the end.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
Merged file header with classpath CVS head.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c:
Merged code formatting with classpath CVS head.
2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c (create):
Use GTK's built-in file system backend. Use GTK_RESPONSE_ACCEPT.
(handle_response): Use GTK_RESPONSE_ACCEPT.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* Makefile.am: Fix library build breakage.
* Makefile.in: Regenerate.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTabbedPane.java
(Page.setDisplayedMnemonicIndex): Handle empty menmonic.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/tree/DefaultMutableTreeNode.java:
Reworked Javadocs all over.
(getPathToRoot): Fixed direction of result array initialization.
2005-02-15 Michael Koch <konqueror@gmx.de>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
Fix includes for cairo 0.3.0 snappshot.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c:
Merged file header from classpath CVS HEAD.
2005-02-15 Craig Black <craig.black@aonix.com>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
(copyState): Pass a JNI global reference to signal handler.
(realize_cb): Use and free JNI global reference.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
(create): Pass a JNI global reference to signal handler.
(selection_changed): Match declaration.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
(dispose): Do not remove entries from state tables until after widget is
destroyed.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/Container.javai (paramString):
If layoutMgr is null just return result of super.paramString().
* java/awt/Scrollbar.java: Reformatted.
* java/awt/im/InputContext.java (static):
Removed redundant initializations.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/ImageIcon.java,
javax/swing/UIManager.java,
javax/swing/text/EditorKit.java,
javax/swing/text/Segment.java:
More whitespace cleanups.
2005-02-15 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/EmbeddedWindow.java,
gnu/java/awt/image/ImageDecoder.java,
gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
java/awt/DefaultKeyboardFocusManager.java,
java/awt/Frame.java,
java/awt/image/RGBImageFilter.java,
javax/swing/AbstractButton.java,
javax/swing/ActionMap.java,
javax/swing/ComponentInputMap.java,
javax/swing/DefaultDesktopManager.java,
javax/swing/ImageIcon.java,
javax/swing/InputMap.java,
javax/swing/JButton.java,
javax/swing/JCheckBox.java,
javax/swing/JCheckBoxMenuItem.java,
javax/swing/JEditorPane.java,
javax/swing/JMenu.java,
javax/swing/JMenuItem.java,
javax/swing/JOptionPane.java,
javax/swing/JRootPane.java,
javax/swing/JTable.java,
javax/swing/MenuSelectionManager.java,
javax/swing/RepaintManager.java,
javax/swing/ScrollPaneLayout.java,
javax/swing/SortingFocusTraversalPolicy.java,
javax/swing/UIManager.java,
javax/swing/ViewportLayout.java,
javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java,
javax/swing/plaf/basic/BasicInternalFrameUI.java,
javax/swing/plaf/basic/BasicLabelUI.java,
javax/swing/plaf/basic/BasicListUI.java,
javax/swing/plaf/basic/BasicMenuItemUI.java,
javax/swing/plaf/basic/BasicMenuUI.java,
javax/swing/plaf/basic/BasicOptionPaneUI.java,
javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java,
javax/swing/plaf/basic/BasicRootPaneUI.java,
javax/swing/plaf/basic/BasicScrollPaneUI.java,
javax/swing/plaf/basic/BasicSplitPaneDivider.java,
javax/swing/plaf/basic/BasicTextUI.java,
javax/swing/table/TableColumnModel.java,
javax/swing/text/AbstractDocument.java,
javax/swing/text/EditorKit.java,
javax/swing/text/Position.java,
javax/swing/text/Segment.java,
javax/swing/text/StyledEditorKit.java,
javax/swing/text/ViewFactory.java:
Cleanup whitespace differences to classpath CVS HEAD.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
(finalize): Call finish from here.
(produce): Not from here.
* Makefile.am (gtk_c_source_files):
Remove jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c.
* Makefile.in: Regenerate.
* gnu/java/awt/peer/gtk/GdkGraphics2D.java
(cairoSetFont):
(cairoDrawGdkTextLayout):
(cairoDrawString):
(getPeerTextMetrics):
(getPeerFontMetrics): Remove.
(setFont): Don't call cairoSetFont.
(cairoDrawGlyphVector): Accept font peer argument.
(drawGlyphVector): Pass font peer to cairoDrawGlyphVector.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
(ensure_metrics_cairo):
(gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSetFont):
(gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawString):
(gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerFontMetrics):
(gnu_java_awt_peer_gtk_GdkGraphics2D_getPeerTextMetrics):
(metrics_cairo):
(metrics_surface): Remove.
(gnu_java_awt_peer_gtk_GdkGraphics2D_cairoDrawGlyphVector):
Pass and install font peer.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* Makefile.am: Create "split library" structure.
* Makefile.in: Regenerate.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
Release GDK lock during upcalls.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c: Remove.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics):
(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics): New methods.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c: Remove.
* gnu/java/awt/peer/gtk/GdkFontPeer.java
(getGlyphVector):
(getFontMetrics):
(getTextMetrics): New native methods.
* gnu/java/awt/peer/gtk/GdkFontMetrics.java: Remove native parts.
* gnu/java/awt/peer/gtk/GdkGlyphVector.java: Likewise.
* Makefile.am: Remove native entries for GdkFontMetrics, GdkGlyphVector.
* Makefile.in: Regenerate.
2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
* javax/swing/SwingUtilities.java:
(getAccessibleAt(java.awt.Component, java.awt.Point)):
Implemented and documented.
(getAccessibleChild(java.awt.Component, int)): Likewise.
(getAccessibleChildrenCount(java.awt.Component)): Likewise.
(getAccessibleIndexInParent(java.awt.Component)): Likewise.
(getAccessibleStateSet(java.awt.Component)): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/SwingUtilities.java
(getFontMetrics): Removed.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/Container.java
(paramString): Implemented.
* javax/swing/AbstractButton.java
(paramString): Implemented.
* javax/swing/JComponent.java
(paramString): Implemented.
* javax/swing/JMenu.java
(paramString): Implemented.
* javax/swing/JMenuBar.java
(paramString): Implemented.
* javax/swing/JMenuItem.java
(paramString): Implemented.
* javax/swing/JPopupMenu.java
(paramString): Implemented.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JMenu.java
(uiClassID): Removed.
(JMenu): Set invoker on popup menu.
(getUIClassID): Return id directly.
(getItemCount): Simply return getMenuComponentCount().
Fixed javadoc.
(isTopLevelMenu): Simplified.
* javax/swing/JMenuItem.java
(uiClassID): Removed.
(getUIClassID): Return id directly.
* javax/swing/JPopupMenu.java
(uiClassID): Removed.
(JPopupMenu): Always initialize correctly.
(getSubElements): Only return components implementing MenuElement
interface.
(HeavyWeightPopup.hide): Removed.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/image/ReplicateScaleFilter.java
(replicatePixels): Made private.
* javax/swing/colorchooser/DefaultRGBChooserPanel.java
(DefaultRGBChooserPanel): Made package private.
* javax/swing/colorchooser/DefaultSwatchChooserPanel.java
(RecentSwatchPanel): Likewise.
* javax/swing/event/MouseInputAdapter.java: Reformatted.
(MouseInputAdapter): Made abstract.
* javax/swing/tree/DefaultMutableTreeNode.java
(random): Removed.
(growTree): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/dnd/DropTarget.java (addDropTargetListener):
Clarified comments.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JComponent.java (getComponentGraphics):
Removed accidently commited code.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* java/awt/dnd/DropTarget.java
(addDropTargetListener): Despite documentation, do not throw.
* javax/swing/JComponent.java: Set a default DropTarget.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractAction.java
(ENABLED_PROPERTY): Removed.
(setEnabled): Replaced constant with real string.
* javax/swing/AbstractButton.java
(createActionPropertyChangeListener.propertyChange): Likewise.
* javax/swing/JComboBox.java
(DEFAULT_MAXIMUM_ROW_COUNT): Made private.
(EDITABLE_CHANGED_PROPERTY): Removed.
(MAXIMUM_ROW_COUNT_CHANGED_PROPERTY):Likewise.
(ENABLED_CHANGED_PROPERTY):Likewise.
(RENDERER_CHANGED_PROPERTY):Likewise.
(EDITOR_CHANGED_PROPERTY):Likewise.
(MODEL_CHANGED_PROPERTY):Likewise.
(uiClassID):Likewise.
(getUIClassID): Replaced constant with real string.
(setModel):Likewise.
(setEditable):Likewise.
(setMaximumRowCount):Likewise.
(setRenderer):Likewise.
(setEditor):Likewise.
(setEnabled):Likewise.
* javax/swing/JLabel.java
(DISABLED_ICON_CHANGED_PROPERTY): Removed.
(DISPLAYED_MNEMONIC_CHANGED_PROPERTY): Likewise.
(DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY): Likewise.
(HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY): Likewise.
(HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY): Likewise.
(ICON_CHANGED_PROPERTY): Likewise.
(ICON_TEXT_GAP_CHANGED_PROPERTY): Likewise.
(LABEL_FOR_CHANGED_PROPERTY): Likewise.
(TEXT_CHANGED_PROPERTY): Likewise.
(VERTICAL_ALIGNMENT_CHANGED_PROPERTY): Likewise.
(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY): Likewise.
(setText): Replaced constant with real string.
(setIcon): Likewise.
(setDisabledIcon): Likewise.
(setDisplayedMnemonic): Likewise.
(setIconTextGap): Likewise.
(setVerticalAlignment): Likewise.
(setHorizontalAlignment): Likewise.
(setVerticalTextPosition): Likewise.
(setHorizontalTextPosition): Likewise.
(setLabelFor): Replaced constant with real string.
Fire property change event after property got changed.
* javax/swing/JList.java
(CELL_RENDERER_PROPERTY_CHANGED): Likewise.
(FIXED_CELL_HEIGHT_PROPERTY_CHANGED): Likewise.
(FIXED_CELL_WIDTH_PROPERTY_CHANGED): Likewise.
(LAYOUT_ORIENTATION_PROPERTY_CHANGED): Likewise.
(MODEL_PROPERTY_CHANGED): Likewise.
(PROTOTYPE_CELL_VALUE_PROPERTY_CHANGED): Likewise.
(SELECTION_BACKGROUND_PROPERTY_CHANGED): Likewise.
(SELECTION_FOREGROUND_PROPERTY_CHANGED): Likewise.
(SELECTION_MODEL_PROPERTY_CHANGED): Likewise.
(setFixedCellWidth): Reimplemented.
(setFixedCellHeight): Exit if new value is identical.
Replaced constant with real string.
(setSelectionBackground): Likewise.
(setSelectionForeground): Likewise.
(setPrototypeCellValue): Likewise.
(setCellRenderer): Replaced constant with real string.
(setModel): Likewise.
(setSelectionModel): Likewise.
* javax/swing/JMenuBar.java
(BORDER_PAINTED_CHANGED_PROPERTY): Removed.
(MODEL_CHANGED_PROPERTY): Likewise.
(MARGIN_CHANGED_PROPERTY): Likewise.
(setBorderPainted): Reimplemented.
(setMargin): Likewise.
(setSelectionModel): Replaced constant with real string.
* javax/swing/JPopupMenu.java
(LABEL_CHANGED_PROPERTY): Removed.
(VISIBLE_CHANGED_PROPERTY): Likewise.
(borderPainted): Likewise.
(setLabel): Replaced constant with real string.
(setVisible): Exit if new value is identical.
Replaced constant with real string.
* javax/swing/JProgressBar.java
(BORDER_PAINTED_CHANGED_PROPERTY): Removed.
(ORIENTATION_CHANGED_PROPERTY): Likewise.
(STRING_CHANGED_PROPERTY): Likewise.
(STRING_PAINTED_CHANGED_PROPERTY): Likewise.
(INDETERMINATE_CHANGED_PROPERTY): Likewise.
(setOrientation): Replaced constant with real string.
(setStringPainted): Likewise.
(setString): Likewise.
(setBorderPainted): Likewise.
(setIndeterminate): Likewise.
* javax/swing/JScrollBar.java
(BLOCK_INCREMENT_CHANGED_PROPERTY): Removed.
(MODEL_CHANGED_PROPERTY): Likewise.
(ORIENTATION_CHANGED_PROPERTY): Likewise.
(setOrientation): Replaced constant with real string.
(setModel): Likewise.
(setUnitIncrement): Likewise.
(setBlockIncrement): Likewise.
* javax/swing/JScrollPane.java
(COLUMN_HEADER_CHANGED_PROPERTY): Removed.
(COMPONENT_ORIENTATION_CHANGED_PROPERTY): Likewise.
(HORIZONTAL_SCROLLBAR_CHANGED_PROPERTY): Likewise.
(HORIZONTAL_SCROLLBAR_POLICY_CHANGED_PROPERTY): Likewise.
(LAYOUT_CHANGED_PROPERTY): Likewise.
(ROW_HEADER_CHANGED_PROPERTY): Likewise.
(VERTICAL_SCROLLBAR_CHANGED_PROPERTY): Likewise.
(VERTICAL_SCROLLBAR_POLICY_CHANGED_PROPERTY): Likewise.
(VIEWPORT_CHANGED_PROPERTY): Likewise.
(VIEWPORT_BORDER_CHANGED_PROPERTY): Likewise.
(WHEEL_SCROLLING_ENABLED_CHANGED_PROPERTY): Likewise.
(setComponentOrientation): Replaced constant with real string.
(setColumnHeader): Likewise.
(setHorizontalScrollBar): Likewise.
(setHorizontalScrollBarPolicy): Likewise.
(setRowHeader): Likewise.
(setVerticalScrollBar): Likewise.
(setVerticalScrollBarPolicy): Likewise.
(setWheelScrollingEnabled): Likewise.
(setViewport): Likewise.
(setViewportBorder): Likewise.
* javax/swing/JSlider.java
(INVERTED_CHANGED_PROPERTY): Removed.
(LABEL_TABLE_CHANGED_PROPERTY): Likewise.
(MAJOR_TICK_SPACING_CHANGED_PROPERTY): Likewise.
(MINOR_TICK_SPACING_CHANGED_PROPERTY): Likewise.
(MODEL_CHANGED_PROPERTY): Likewise.
(ORIENTATION_CHANGED_PROPERTY): Likewise.
(PAINT_LABELS_CHANGED_PROPERTY): Likewise.
(PAINT_TICKS_CHANGED_PROPERTY): Likewise.
(setModel): Replaced constant with real string.
(setOrientation): Likewise.
(setLabelTable): Likewise.
(setInverted): Likewise.
(setMajorTickSpacing): Likewise.
(setMinorTickSpacing): Likewise.
(setPaintTicks): Likewise.
(setPaintLabels): Likewise.
* javax/swing/JTabbedPane.java
(MODEL_CHANGED_PROPERTY): Removed.
(TAB_PLACEMENT_CHANGED_PROPERTY): Likewise.
(TAB_LAYOUT_POLICY_CHANGED_PROPERTY): Likewise.
(setModel): Replaced constant with real string.
(setTabPlacement): Likewise.
(setTabLayoutPolicy): Likewise.
* javax/swing/JToolBar.java
(ORIENTATION_CHANGED_PROPERTY): Removed.
(FLOATABLE_CHANGED_PROPERTY): Likewise.
(BORDER_PAINTED_CHANGED_PROPERTY): Likewise.
(MARGIN_CHANGED_PROPERTY): Likewise.
(ROLLOVER_CHANGED_PROPERTY): Likewise.
(setRollover): Replaced constant with real string.
(setMargin): Likewise.
(setBorderPainted): Likewise.
(setFloatable): Likewise.
(setOrientation): Likewise.
* javax/swing/plaf/basic/BasicComboBoxUI.java
(PropertyChangeHandler.propertyChange): Likewise.
* javax/swing/plaf/basic/BasicComboPopup.java
(PropertyChangeHandler.propertyChange): Likewise.
* javax/swing/plaf/basic/BasicMenuBarUI.java
(PropertyChangeHandler.propertyChange): Likewise.
* javax/swing/plaf/basic/BasicProgressBarUI.java
(PropertyChangeHandler.propertyChange): Likewise.
* javax/swing/plaf/basic/BasicScrollBarUI.java
(PropertyChangeHandler.propertyChange): Likewise.
* javax/swing/plaf/basic/BasicSliderUI.java
(PropertyChangeHandler.propertyChange): Likewise.
* javax/swing/plaf/basic/BasicTabbedPaneUI.java
(PropertyChangeHandler.propertyChange): Likewise.
* javax/swing/plaf/basic/BasicToolBarUI.java
(PropertyChangeHandler.propertyChange): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultButtonModel.java
(changeState): Made private.
* javax/swing/DefaultDesktopManager.java
(setWasIcon): Fixed second argument to be java.lang.Boolean.
* javax/swing/JLayeredPane.java
(layerToRange): Made private.
(incrLayer): Likewise.
(decrLayer): Likewise.
* javax/swing/JTable.java
(dragEnabled): Likewise.
(preferredViewportSize): Renamed from preferredScrollableViewportSize.
* javax/swing/KeyStroke.java
(Keystroke): Made private.
* javax/swing/TransferHandler.java
(COMMAND_COPY): Likewise.
(COMMAND_CUT): Likewise.
(COMMAND_PASTE): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTextField.java
(postActionEvent): Use text in field when actionCommand is null.
(getActionCommand): Removed.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractSet.java: Removed.
* Makefile.am: Removed javax/swing/AbstractSet.java.
* Makefile.in: Regenerated.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/Window.java
(AccessibleWindow.getAccessibleStateSet): Fixed method name.
* java/awt/dnd/DnDConstants.java
(DnDConstants): New private constructor.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultCellRenderer.java: Removed.
* Makefile.am: Removed javax/swing/DefaultCellRenderer.java.
* Makefile.in: Regenerated.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractButton.java
(fireItemStateChanged): Made protected.
(fireActionPerformed): Likewise.
(fireStateChanged): Likewise.
* javax/swing/DefaultButtonModel.java
(fireItemStateChanged): Likewise.
(fireActionPerformed): Likewise.
(fireStateChanged): Likewise.
* javax/swing/JApplet.java
(JApplet): Removed.
(frameInit): Likewise.
(setRootPane): Made protected.
(createRootPane): Likewise.
* javax/swing/JComponent.java
(getClientProperty): Likewise.
(putClientProperty): Likewise.
* javax/swing/JEditorPane.java
(getContentType): Likewise.
(setContentType): Likewise.
* javax/swing/JFrame.java
(setRootPane): Likewise.
(createRootPane): Likewise.
* javax/swing/JInternalFrame.java
(getFocusCycleRootAncestor): Made final. Added @since tag.
(isFocusCycleRoot): Likewise.
(getWarningString): Made final.
* javax/swing/JScrollBar.java
(changeListener): Removed.
(changeEvent): Likewise.
(createChangeListener): Likewise.
(fireStateChanged): Likewise.
(addChangeListener): Likewise.
(removeChangeListener): Likewise.
(getChangeListeners): Likewise.
* javax/swing/JScrollPane.java
(createViewport): Made protected.
* javax/swing/JViewport.java
(addImpl): Likewise.
(setBorder): New method.
* javax/swing/JWindow.java
(setRootPane): Made protected.
(createRootPane): Likewise.
* javax/swing/plaf/basic/BasicButtonUI.java
(installListeners): Likewise.
(uninstallListeners): Likewise.
* javax/swing/plaf/basic/BasicProgressBarUI.java
(incrementAnimationIndex): Likewise.
* javax/swing/plaf/basic/BasicTabbedPaneUI.java
(createLayoutManager): Likewise.
* javax/swing/table/DefaultTableCellRenderer.java
(firePropertyChange): Likewise.
* javax/swing/table/JTableHeader.java
(AccessibleJTableHeaderEntry.AccessibleJTableHeaderEntry):
New constructor.
* javax/swing/text/PlainDocument.java
(reindex): Made private.
* javax/swing/text/PlainView.java
(drawLine): Made protected.
(getTabSize): Likewise.
* javax/swing/text/View.java
(setSize): Removed.
(preferenceChanged): New method.
(getBreakWeight): Likewise.
(breakView): Likewise.
(getViewIndex): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JScrollPane.java
(ScrollBar): Made class protected.
* javax/swing/JSpinner.java
(JSpinner): Added @since tag.
(listenerList): Removed.
* javax/swing/JTable.java
(setValueAt): New method.
(getColumn): Likewise.
* javax/swing/JWindow.java
(rootPaneCheckingEnabled): Renamed from checking.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/basic/BasicTextUI.java
(RootView.modelToView): Made it public and return a java.awt.Shape.
Handle null subview.
(uninstall): Set textComponent to null when its not possible used
anymore.
* javax/swing/text/View.java
(setParent): Use better argument name.
(getContainer): Get parent via getParent().
(getViewFactory): Likewise.
(getAttributes): Get element via getElement().
(getStartOffset): Likewise.
(getEndOffset): Likewise.
(getResizeWeight): New method.
(getMaximumSpan): Likewise.
(getMinimumSpan): Likewise.
(setSize): Likewise.
(getGraphics): Likewise.
2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
* java/awt/Checkbox.java:
(AccessibleAWTCheckbox()): Added public constructor
to call superclass.
* java/awt/Choice.java:
(AccessibleAWTChoice): Added class documentation.
(AccessibleAWTChoice()): Added public constructor
to call superclass.
(AccessibleAWTChoice.getAccessibleAction()): Documented.
(AccessibleAWTChoice.getAccessibleRole()): Documented,
and changed role to COMBO_BOX.
(AccessibleAWTChoice.getAccessibleActionCount()): Documented.
(AccessibleAWTChoice.getAccessibleActionDescription(int)): Documented.
(AccessibleAWTChoice.doAccessibleAction(int)): Documented.
2005-02-15 Graydon Hoare <graydon@redhat.com>
Michael Koch <konqueror@gmx.de>
* javax/swing/LayoutFocusTraversalPolicy.java,
javax/swing/SortingFocusTraversalPolicy.java:
New classes.
* Makefile.am: Added new classes.
* Makefike.in: Regenerated.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/DebugGraphics.java: Mostly implemented.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/SwingUtilities.java
(findFocusOwner): New method.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/text/DefaultEditorKit.java
(read): Added '\n' after each line.
* javax/swing/text/PlainView.java
(modelToView): Update metrics.
(drawLine): Use offsets from element.
(paint): Update metrics. Draw all lines.
2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
* java/awt/Checkbox.java:
(AccessibleAWTCheckbox): Added class documentation
* java/awt/Scrollbar.java:
(AccessibleAWTScrollBar): typo corrected and docs added
(AccessibleAWTScrollBar.getAccessibleRole()): documented
(AccessibleAWTScrollBar.getAccessibleStateSet()): likewise
(AccessibleAWTScrollBar.getAccessibleValue()): likewise
(AccessibleAWTScrollBar.getCurrentAccessibleValue()): likewise
(AccessibleAWTScrollBar.setCurrentAccessibleValue(int)): likewise
(AccessibleAWTScrollBar.getMinimumAccessibleValue()): likewise
(AccessibleAWTScrollBar.getMaximumAccessibleValue()): likewise
(getAccessibleContext()): name of accessible class corrected
2005-02-15 Mark Wielaard <mark@klomp.org>
* java/awt/BasicStroke.java (hashCode): Implement.
(equals): Document.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/print/PrinterJob.java
(pageDialog): Throws java.awt.HeadlessException.
(printDialog): Likewise.
2005-02-15 Mark Wielaard <mark@klomp.org>
* jni/gtk-peer/gtkpeer.h (gdk_env): Fix prototype.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTable.java
(getValueAt): New method.
* javax/swing/table/JTableHeader.java
(columnAtPoint): New method.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTextField.java
(actions): New field.
(static): Initalize actions field.
(getActions): New method.
2005-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
* java/awt/Checkbox.java:
(AccessibleAWTCheckbox): name capitalization corrected
and serialization UID added.
(AccessibleAWTCheckbox.itemStateChanged(java.awt.event.ItemEvent)):
documented.
(AccessibleAWTCheckbox.getAccessibleAction()): likewise
(AccessibleAWTCheckbox.getAccessibleValue()): likewise
(AccessibleAWTCheckbox.getAccessibleActionCount()): likewise
(AccessibleAWTCheckbox.getAccessibleActionDescription(int)): likewise
(AccessibleAWTCheckbox.doAccessibleAction(int)): likewise
(AccessibleAWTCheckbox.getCurrentAccessibleValue()): likewise
(AccessibleAWTCheckbox.setCurrentAccessibleValue(int)): likewise
(AccessibleAWTCheckbox.getMinimumAccessibleValue()): likewise
(AccessibleAWTCheckbox.getMaximumAccessibleValue()): likewise
(AccessibleAWTCheckbox.getAccessibleRole()): likewise
(AccessibleAWTCheckbox.getAccessibleStateSet()): implemented and
documented
(getAccessibleContext()): name of accessible class corrected
2005-02-15 Sven de Marothy <sven@physto.se>
* java/awt/geom/doc-files/Area-1.png,
java/awt/geom/doc-files/Ellipse-1.png,
java/awt/geom/doc-files/GeneralPath-1.png:
New files.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c (env_union):
Use union to avoid type-punning warning.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultListSelectionModel.java
(clone): New method.
2005-02-15 Mark Wielaard <mark@klomp.org>
Reported by Martin Platter <motse@complang.tuwien.ac.at>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile):
Correct method signature of gtkSetFilename.
2005-02-15 Arnaud Vandyck <avdyk@gnu.org>
* javax/swing/text/StringContent.java: New file.
2005-02-15 Michael Koch <konqueror@gmx.de>
* Makefile.am: Added javax/swing/text/StringContent.java.
* Makefile.in: Regenerated.
2005-02-15 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/ClasspathToolkit.java:
Import statements reworked.
(imageCache): Made it of type java.util.HashMap.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/imageio/stream/MemoryCacheImageInputStream.java:
Reworked import statements.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.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_GtkButtonPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c:
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
Rewrite uses of extern variable to be function calls.
* jni/gtk-peer/gtkpeer.h (gdk_env): Change declaration to
function, from extern variable.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
(gdk_env): Remove variable, add new function.
(java_vm): Add new variable.
(Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Initialize
java_vm rather than old gdk_env variable.
2005-02-15 David Gilbert <david.gilbert@object-refinery.com>
* javax/swing/DefaultListModel.java
(add): fire correct event,
(addElement): corrected interval indices in event,
(clear): corrected upper bound for interval, only fire event if
list is not empty,
(setSize): fire appropriate event.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* gnu/awt/xlib/XEventLoop.java: Add non-blocking event mode.
* gnu/awt/xlib/XToolkit.java: Likewise.
* gnu/gcj/xlib/XAnyEvent.java: Likewise.
* gnu/gcj/xlib/natXAnyEvent.cc: Likewise.
* gnu/java/awt/ClasspathToolkit.java: Likewise.
* gnu/java/awt/peer/gtk/GtkToolkit.java: Likewise.
* java/awt/EventQueue.java (getNextEvent):
Adjust event loop to switch to native mode after 100ms.
* javax/swing/Timer.java (drainEvents): Reuse Runnable.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
(Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose):
Wake up event thread.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
(Java_gnu_java_awt_peer_gtk_GtkToolkit_iterateNativeQueue):
Adjust event loop to switch to java mode after 100ms.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* jni.cc (_Jv_JNI_RegisterNatives): Re-add sync, which was
accidentally removed in last change.
2005-02-15 Michael Koch <konqueror@gmx.de>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c,
gnu/java/awt/peer/gtk/GtkMainThread.java: Removed.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* include/jni.h (_Jv_JNIEnv::bottom_locals): New field.
* include/jvm.h (_Jv_FreeJNIEnv): Declare.
* java/lang/natThread.cc (finalize_native): Call _Jv_FreeJNIEnv.
* jni.cc: Reuse bottom frame between calls, avoid clearing
frame when no local references are made.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/UIDefaults.java (UIDefaults):
Fixed typo in javadoc (Thanks to Thomas Zander for reporting)
Fixed HTML entity and removed a redundant comma.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/text/DefaultEditorKit.java
(deinstall): Removed.
(install): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/UIDefaults.java (put): Handle value of null.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/Robot.java,
java/awt/Scrollbar.java,
java/awt/print/PrinterJob.java,
javax/swing/JTable.java,
javax/swing/text/AbstractDocument.java:
Reworked import statements.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JEditorPane.java
(read): Implemented.
(write): Likewise.
* javax/swing/text/DefaultEditorKit.java
(page): Renamed from page_url. Made private.
(editorKit): Renamed from kit. Made private.
(ctype): Removed.
(JEditorPane): All constructors reimplemented.
(getContentType): Use content type from editor kit.
(getEditorKit): Return editorKit.
(getEditorKitForContentType):Likewise.
(getPage): Return page.
(setContentType): Reimplemented.
(setEditorKit): Likewise.
(setEditorKitForContentType): Removed wrong implementation.
(setPage): Implemented.
2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
(nativeSetIconImageFromData): Re-add native implementation.
2005-02-15 David Gilbert <david.gilbert@object-refinery.com>
* javax/swing/table/DefaultTableModel.java
(DefaultTableModel()): Added Javadocs.
(DefaultTableModel(int, int)): Fixed implementation.
(DefaultTableModel(Vector, int)): Throw IllegalArgumentException
for negative rowCount.
(DefaultTableModel(Object[], int)): Added Javadocs.
(DefaultTableModel(Vector, Vector)): Likewise.
(DefaultTableModel(Object[][], Object[])): Likewise.
(getDataVector): Likewise.
(setDataVector(Vector, Vector)): Likewise.
(setDataVector(Object[][], Object[])): Likewise.
(newDataAvailable): Likewise.
(newRowsAdded): Likewise.
(rowsRemoved): Likewise.
(setColumnIdentifiers(Vector)): Allow for null argument.
(setColumnIdentifiers(Object[])): Added Javadocs.
(setNumRows): Likewise.
(setRowCount): Adds new rows if necessary, and sends more specific
TableModelEvent.
(setColumnCount): Allow for null columnIdentifiers.
(addColumn(Object)): Added Javadocs.
(addColumn(Object, Vector)): Handle null columnData.
(addColumn(Object, Object[])): Handle columnData with more or less
entries than rows in the table.
(addRow(Vector)): Fire appropriate event.
(addRow(Object[])): Added Javadocs.
(insertRow(int, Vector)): Fire appropriate event.
(insertRow(int, Object[])): Added Javadocs.
(moveRow): Reimplemented.
(removeRow(int)): Fire appropriate event.
(getColumnCount): Allow for null columnIdentifiers.
(getColumnName): Now returns empty string when column index is too
large.
(isCellEditable): Added Javadocs.
(getValueAt): Likewise.
(setValueAt): Fire more specific event.
(convertToVector): Added Javadocs.
* javax/swing/table/TableModel.java
Added Javadocs.
2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
* libgcj.spec.in (lib): Add -l-javax-imageio.
2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GtkComponentPeer.java: Replace direct
references to event queue q with method call q().
* gnu/java/awt/peer/gtk/GtkDialogPeer.java: Likewise.
* gnu/java/awt/peer/gtk/GtkFramePeer.java: Likewise.
* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java: Likewise.
* gnu/java/awt/peer/gtk/GtkTextComponentPeer.java: Likewise.
* gnu/java/awt/peer/gtk/GtkWindowPeer.java: Likewise.
* gnu/java/awt/peer/gtk/GtkGenericPeer.java: Likewise.
(q): New method.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* gnu/java/awt/ClasspathToolkit.java
(registerImageIOSpis): New method.
* gnu/java/awt/image/ImageDecoder.java
(imageDecoder): New constructor using InputStream
(startProduction): Handle existing InputStream.
* gnu/java/awt/peer/gtk/GdkGraphics2D.java
(findSimpleIntegerArray): Make public and static.
(updateBufferedImage): Set each pixel, in a loop.
* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
Implement ImageIO SPI classes.
(createBufferedImage): Rewrite in terms of SPI classes.
* gnu/java/awt/peer/gtk/GtkToolkit.java
(registerImageIOSpis): New method.
* java/lang/reflect/natMethod.cc
(_Jv_CallAnyMethodA): Borrow a patch from aph, applied to trunk,
which lets JNI call interface methods properly.
* javax/imageio/ImageIO.java
(WriterFormatFilter.filter): Fix copy-and-paste typos.
(WriterMIMETypeFilter.filter): Likewise.
(ImageReaderIterator): Pass extension argument through to SPI.
(getReadersByFilter): Likewise.
(getWritersByFilter): Likewise.
(getImageReadersByFormatName): Likewise.
(getImageReadersByMIMEType): Likewise.
(getImageReadersBySuffix): Likewise.
(getImageWritersByFormatName): Likewise.
(getImageWritersByMIMEType): Likewise.
(getImageWritersBySuffix): Likewise.
(read): Implement.
(write): Implement.
* javax/imageio/ImageReader.java
(progressListeners): Initialize.
(setInput): Implement.
* javax/imageio/ImageWriter.java
(progressListeners): Initialize.
(warningListeners): Likewise.
(warningLocales): Likewise.
(setOutput): Test "isInstance" rather than class equality.
* javax/imageio/spi/IIORegistry.java
(static): Add reader and writer SPIs.
(IIORegistry): Call ClasspathToolkit.registerImageIOSpis.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
(query_formats): New function.
(save_to_stream): Likewise.
(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage): Likewise.
2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c (mouseWheel):
Call XFlush.
(keyPress): Likewise.
(keyRelease): Likewise.
2005-02-15 Olga Rodimina <rodimina@redhat.com>
* javax/swing/JTable.java
(columnAtPoint): New Method. Implemented.
(rowAtPoint): Likewise.
(countSelections): Fixed few small count errors.
(getSelections): Likewise.
(setSelectionMode): Set selection mode for column
selection model in addition to row selection model.
* javax/swing/plaf/basic/BasicTableUI.java:
(getRowForPoint): Removed. Replaced by
JTable.rowAtPoint().
(getColForPoint): Removed. Replaced by
JTable.columnAtPoint().
(updateSelection): Updated to call JTable.columnAtPoint
and JTable.rowAtPoint.
* javax/swing/table/DefaultTableColumnModel.java:
(getSelectedColumns): Implemented.
(getSelectedColumnCount): Implemented.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* Makefile.am
(jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c)
(gnu/java/awt/peer/gtk/GtkMainThread.java) : Remove.
* Makefile.in: Regenerate.
* gnu/awt/xlib/XEventLoop.java: Fix to match thread model.
* gnu/awt/xlib/XFramePeer.java: Likewise.
* gnu/awt/xlib/XToolkit.java: Likewise.
* gnu/gcj/xlib/XAnyEvent.java: Likewise.
* gnu/gcj/xlib/natXAnyEvent.cc: Likewise.
* gnu/java/awt/ClasspathToolkit.java
(nativeQueueEmpty)
(wakeNativeQueue)
(iterateNativeQueue): New methods.
* gnu/java/awt/peer/gtk/GtkMainThread.java: Remove.
* gnu/java/awt/peer/gtk/GtkToolkit.java
(gtkInit): Absorb from defunct GtkMainThread class.
(static): Run gtkInit in static startup block.
(GtkToolkit): Remove construction of GtkMainThread and queue.
(getSystemEventQueueImpl): Construct queue when requested.
(nativeQueueEmpty)
(wakeNativeQueue)
(iterateNativeQueue): New methods.
* java/awt/Component.java (removeNotify): Remove race.
* java/awt/EventDispatchThread.java
(EventDispatchThread): Don't start on construction.
(run): Remove isInterrupted check.
* java/awt/EventQueue.java (shutdown): New flag.
(isShutdown): New method checking J2SE shutdown condition.
(setShutdown): New method.
(getNextEvent): Restructure to use ClasspathToolkit.
(postEvent): Activate new thread on posting, wake thread on
post of possible shutdown condition event.
* java/awt/Frame.java
(Frame): Call noteFrame in all constructors.
(fireDummyEvent): New helper method.
(addNotify): Fire a dummy event to wake up queue.
(removeNotify): Fire a dummy event to wake up queue.
(noteFrame): New method.
(weakFrames): New static field.
(getFrames): Implement.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c:
Remove.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:
Move everything from GtkMainThread into this file
(Java_gnu_java_awt_peer_gtk_GtkToolkit_iterateNativeQueue)
(Java_gnu_java_awt_peer_gtk_GtkToolkit_wakeNativeQueue)
(Java_gnu_java_awt_peer_gtk_GtkToolkit_nativeQueueEmpty):
New functions to implement single-threaded queue semantics.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/metal/MetalLookAndFeel.java
(getControlTextFont): New method.
(getMenuTextFont): Likewise.
(getSubTextFont): Likewise.
(getSystemTextFont): Likewise.
(getUserTextFont): Likewise.
(getWindowTitleFont): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/text/AbstractDocument.java
(documentFilter): New field.
(getDocumentFilter): New method.
(setDocumentFilter): Likewise.
(dump): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTree.java
(DynamicUtilTreeNode.hasChildren): Clarify javadoc.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/text/AbstractDocument.java
(AbstractElement.getLength): Fixed off-by-one error.
(AbstractElement.children): Made abstract.
(AbstractElement.getAllowsChildren): Likewise.
(AbstractElement.getElement): Likewise.
(AbstractElement.dumpElement): New private method.
(AbstractElement.dump): New method.
(BranchElememt.getName): Fixed implementation.
(BranchElememt.toString): Likewise.
(BranchElememt.getElement): Fixed arguments.
(LeafElement.getName): Fixed implementation.
(LeafElement.toString): Likewise.
* javax/swing/text/GapContent.java
(GapContent): Put default content into buffer.
* javax/swing/text/PlainDocument.java
(reindex): Use empty attribute sets instead of null.
(createDefaultRoot): Reimplemented.
(insertUpdate): Call super method.
(removeUpdate): Likewise.
(getParagraphElement): Implemented.
2005-02-15 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/ClasspathToolkit.java
(createRobot): Throws java.awt.AWTException.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c:
Added '__attribute__((unused))' to all unused method arguments.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultBoundedRangeModel.java
(fireValueChanged): Fixed off-by-one error.
2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
* Makefile.am (gtk_c_source_files): Add GdkRobotPeer.c.
(gtk_awt_peer_sources): Add GdkScreenGraphicsDevice.java and
GdkRobotPeer.java.
(lib_gnu_java_awt_peer_gtk_la_CFLAGS): Add X flags.
(lib_gnu_java_awt_peer_gtk_la_LDFLAGS): Add XTest flags.
* gnu/awt/xlib/XToolkit.java (createRobot): New method.
* gnu/java/awt/ClasspathToolkit.java (createRobot): New method.
* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
(getDefaultScreenDevice): Implement.
* gnu/java/awt/peer/gtk/GdkRobotPeer.java: New file.
* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java: Likewise.
* gnu/java/awt/peer/gtk/GtkToolkit.java (createRobot): New method.
* java/awt/Robot.java: Implement.
* java/awt/peer/RobotPeer.java: Rename parameters.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c: New file.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(awt_keycode_to_keysym): Make non-static.
* jni/gtk-peer/gtkpeer.h (AWT_BUTTON1_MASK, AWT_BUTTON2_MASK,
AWT_BUTTON3_MASK): Declare constants.
(awt_keycode_to_keysym): Declare.
* Makefile.am (AM_MAKEFLAGS): Set KEYS variable.
* testsuite/libjava.mauve/mauve.exp (test_mauve): If KEYS exists
and is non-empty pass its value to "make check".
(test_mauve_sim): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/imageio/IIOParam.java
(setSourceBands): New method.
(setSourceSubsampling): Likewise.
* javax/imageio/ImageReadParam.java
(setDestination): Likewise.
(setDestinationBands): Likewise.
(setSourceProgressivePasses): Likewise.
* javax/imageio/metadata/IIOInvalidTreeException.java
(serialVersionUID): New static field.
* javax/imageio/metadata/IIOMetadataNode.java
(IIOMetadataNode): Don't explicitely implement org.w3c.dom.Node.
(parent): Dont initailize with default value explicitely.
(Object): Likewise.
(removeAttribute): Doesn't throws org.w3c.dom.DOMException.
(removeAttributeNode): Likewise.
(removeAttributeNS): Likewise.
(setAttribute): Likewise.
(setAttributeNode): Likewise.
(setAttributeNodeNS): Likewise.
(setAttributeNS): Likewise.
(appendChild): Likewise.
(getNodeValue): Likewise.
(insertBefore): Likewise.
(removeChild): Likewise.
(replaceChild): Likewise.
(setPrefix): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/LookAndFeel.java
(getDesktopPropertyValue): New method.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTree.java
(hasChildren): New instance field.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JComponent.java
(getToolTipText): New method.
(getTitledBorderText): Likewise.
(getAccessibleKeyBinding): Likewise.
(getVerifyInputWhenFocusTarget): Likewise.
(setVerifyInputWhenFocusTarget): Likewise.
(verifyInputWhenFocusTarget): New instance field.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultListSelectionModel.java
(fireValueChanged): New method.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultBoundedRangeModel.java:
Fixed javadocs all over.
(fireStateChanged): Simplified.
* javax/swing/BoundedRangeModel.java:
Reformatted.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JRootPane.java
(setMenuBar): Added @deprecated tag.
(getMenuBar): Likewise.
* javax/swing/JTable.java
(sizeColumnsToFit): Likewise.
2005-02-15 Paul Jenner <psj.home@ntlworld.com>
* javax/swing/ImageIcon.java (setImage): Implemented.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTable.java:
Removed unused imports.
2005-02-15 Olga Rodimina <rodimina@redhat.com>
(prepareRenderer): Get column's index in dataModel instead
of column's view index.
(getColumnCount): return count of the columns in ColumnModel,
not in dataModel.
(removeColumn): Implemented.
(moveColumm): Likewise.
(setRowHeight): throw IllegalArgumentException if height is
less then 1.
* javax/swing/table/DefaultTableColumnModel.java: Add javadocs.
(DefaultTableColumnModel):Add call to createSelectionModel().
(addColumn): Fire columnAdded event to registered listeners.
(removeColumn): Fire columnRemoved event to registered listeners.
(moveColumn): Fire columnMoved event to registered listeners.
(setColumnMargin): Fire ColumnMarginChanged event to registered listeners.
(getColumnIndex): Changed parameter name.
(setColumnSelectionAllowed): Likewise.
(fireColumnAdded): Implemented.
(fireColumnRemoved): Likewise.
(fireColumnMoved): Likewise.
(fireColumnMarginChanged): Likewise.
(getListeners): Changed parameter name.
(propertyChange): Implemented.
(valueChanged): Changed parameter name.
(createSelectionModel): Implemented.
2005-02-15 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/peer/gtk/GtkToolkit.java:
Explicitely import used classes.
(getLocalGraphicsEnvironment): Simplify.
* java/awt/Window.java (Window):
Enable code to get the default GraphicsConfiguration.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/metal/DefaultMetalTheme.java
(CONTROL_TEXT_FONT): New static field.
(MENU_TEXT_FONT): Likewise.
(SUB_TEXT_FONT): Likewise.
(SYSTEM_TEXT_FONT): Likewise.
(USER_TEXT_FONT): Likewise.
(WINDOW_TITLE_FONT): Likewise.
(getControlTextFont): New method.
(getMenuTextFont): Likewise.
(getSubTextFont): Likewise.
(getSystemTextFont): Likewise.
(getUserTextFont): Likewise.
(getWindowTitleFont): Likewise.
* javax/swing/plaf/metal/MetalTheme.java
(BLACK): Initialize with Color.BLACK.
(WHITE): Initialize with Color.WHITE.
(getInactiveControlTextColor): Return getControlDisabled().
(getMenuDisabledForeground): Return getSecondary3().
(getControlTextFont): New abstract method.
(getMenuTextFont): Likewise.
(getSubTextFont): Likewise.
(getSystemTextFont): Likewise.
(getUserTextFont): Likewise.
(getWindowTitleFont): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JFormattedTextField.java
(getFocusLostBehavior): Fixed typo in method name.
(setFocusLostBehavior): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/TransferHandler.java:
Reworked import statements.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* java/awt/Button.java,
java/awt/Canvas.java,
java/awt/Checkbox.java,
java/awt/CheckboxMenuItem.java,
java/awt/Choice.java,
java/awt/Dialog.java,
java/awt/Frame.java,
java/awt/Label.java,
java/awt/List.java,
java/awt/Menu.java,
java/awt/MenuBar.java,
java/awt/MenuItem.java,
java/awt/PopupMenu.java,
java/awt/ScrollPane.java,
java/awt/Scrollbar.java,
java/awt/TextArea.java,
java/awt/Window.java (getAccessibleContext): Clean up comments.
Reformat.
* java/awt/Button.java,
java/awt/Checkbox.java,
java/awt/Choice.java,
java/awt/Menu.java,
java/awt/PopupMenu.java,
java/awt/TextArea.java (getAccessibleContext): Only create new
accessible once.
* java/awt/TextComponent.java (getAccessibleContext): Implement.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/Button.java,
javax/swing/JApplet.java,
javax/swing/JFormattedTextField.java,
javax/swing/JWindow.java,
javax/swing/JTree.java,
javax/swing/plaf/basic/BasicEditorPaneUI.java,
javax/swing/plaf/basic/BasicTextPaneUI.java,
javax/swing/plaf/basic/BasicTreeUI.java:
Reworked import statements.
2005-02-15 Michael Koch <konqueror@gmx.de>
* Makefile.am: Put javax.imageio into its own library and link it
against lib-org-w3c-dom.la to fix bootstrapping.
* Makefile.in: Regenerated.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/text/TextAction.java
(getTextComponent): Simplified. Added Javadoc.
(augmentList): Implemented. Added Javadoc.
(getFocusedComponent): Added javadoc.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* java/awt/Scrollbar.java (AccessibleAWTScrollbar,
getAccessibleContext): Implement.
* java/awt/ScrollPane.java (AccessibleAWTScrollPane,
getAccessibleContext): Implement.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* java/awt/Dialog.java (AccessibleAWTFrame, getAccessibleContext):
Implement.
* java/awt/Frame.java (AccessibleAWTFrame, getAccessibleContext):
Implement.
* java/awt/Window.java (getAccessibleContext): Fix comment.
Remove extra import.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* java/awt/Window.java (AccessibleAWTWindow): Implement.
(isActive, isFocused, getAccessibleContext): Implement.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* java/awt/MenuItem.java (getAccessibleContext): Implement.
* java/awt/MenuComponent.java (accessibleContext): Make package
visible.
* java/awt/CheckboxMenuItem.java (getAccessibleContext,
AccessibleAWTCheckboxMenuItem): Implement.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* java/awt/List.java: Implement AccessibleAWTList,
AccessibleAWTListChild.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* java/awt/Choice.java: Add implements declaration for
Accessible.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* javax/imageio/metadata/IIOInvalidTreeException.java: Use Node
instead of Object.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* javax/imageio/metadata/IIOMetadataNode.java: Add Node to
implemented interface list.
2005-02-15 Jerry Quinn <jlquinn@optonline.net>
* javax/imageio/metadata/IIOMetadataNode.java: Implement.
* javax/imageio/metadata/IIOAttr.java: New class.
* javax/imageio/metadata/IIONamedNodeMap.java: New class.
* javax/imageio/metadata/IIONodeList.java: New class.
* Makefile.am: Added new files.
* Makefile.in: Regenerated.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractAction.java,
javax/swing/AbstractCellEditor.java,
javax/swing/AbstractListModel.java,
javax/swing/DefaultBoundedRangeModel.java,
javax/swing/DefaultButtonModel.java,
javax/swing/DefaultCellEditor.java,
javax/swing/DefaultComboBoxModel.java,
javax/swing/DefaultDesktopManager.java,
javax/swing/JMenu.java,
javax/swing/JSlider.java,
javax/swing/KeyStroke.java,
javax/swing/OverlayLayout.java,
javax/swing/ScrollPaneLayout.java,
javax/swing/SizeRequirements.java,
javax/swing/ViewportLayout.java:
Made serialVersionUID private.
2005-02-15 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/peer/gtk/GtkComponentPeer.java:
Reformatted.
2005-02-15 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/peer/gtk/GdkGraphics2D.java: More reformatting.
2005-02-15 Michael Koch <konqueror@gmx.de>
* gnu/java/awt/peer/gtk/GdkGraphics2D.java: Reformatted.
2005-02-15 Jeroen Frijters <jeroen@frijters.net>
* java/awt/EventDispatchThread.java,
java/awt/Toolkit.java:
Don't catch java.lang.ThreadDeath.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/text/PasswordView.java
(drawEchoCharacter): Added javadoc.
(drawSelectedText): Likewise.
(drawUnselectedText): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JRootPane.java
(windowDecorationStyle): New field.
(setMenuBar): New method.
(getMenuBar): Likewise.
(getWindowDecorationStyle): Likewise.
(setWindowDecorationStyle): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultListSelectionModel.java
(leadAnchorNotificationEnabled): Made protected.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/InternalFrameFocusTraversalPolicy.java: New file.
* Makefile.am: Added InternalFrameFocusTraversalPolicy.java.
* Makefile.in: Regenerated.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JFormattedTextField.java: Implemented.
* javax/swing/JWindow.java
(JWindow): New constructors.
(initWindow): Renamed from initFrame.
* javax/swing/UIDefaults.java
(ActiveValue): Made interface static.
(LazyValue): Likewise.
* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
(TitlePaneLayout.TitlePaneLayout): New constructor.
* javax/swing/plaf/basic/BasicSliderUI.java
(ChangeHandler): Made public.
(FocusHandler): Likewise.
(PropertyChangeHandler): Likewise.
(ScrollListener): Likewise.
* javax/swing/plaf/basic/BasicTabbedPaneUI.java
(FocusHandler): Likewise.
(MouseHandler): Likewise.
* javax/swing/plaf/basic/BasicTextPaneUI.java
(BasicTextPaneUI): Extend BasicEditorPaneUI.
* javax/swing/plaf/basic/BasicToolBarUI.java
(BasicToolBarUI): Simplified. Reworked javadoc.
(canDock): Simplified. Make public.
(DockingListener): Made public.
* javax/swing/text/JTextComponent.java
(navigationFilter): New field.
(getNavigationFilter): New method.
(setNavigationFilter): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/metal/MetalTheme.java
(getControlTextColor): Return getControlInfo().
(getHighlightedTextColor): Return getControlTextColor().
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/basic/BasicButtonListener.java
(BasicButtonListener): New constructor.
* javax/swing/plaf/basic/BasicButtonUI.java
(createButtonListener): Usw new BasicButtonListener constructor.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/imageio/event/package.html,
javax/imageio/metadata/package.html: New files.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/image/MemoryImageSource.java: Reformatted.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/tree/TreeCellEditor.java: Refomatted.
2005-02-15 Jeroen Frijters <jeroen@frijters.net>
* java/awt/color/ICC_Profile.java
(finalize): Removed pointless field assignments.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/basic/BasicEditorPaneUI.java: New file.
* Makefile.am: Added javax/swing/plaf/basic/BasicEditorPaneUI.java.
* Makefile.in: Regenerated.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/text/DefaultStyledDocument.java: New file.
* Makefile.am: Added javax/swing/text/DefaultStyledDocument.java.
* Makefile.in: Regenerated.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JFileChooser.java
(showDialog): Return CANCEL_OPTION for now.
(showOpenDialog): Likewise.
(showSaveDialog): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JApplet.java
(HIDE_ON_CLOSE): Removed.
(EXIT_ON_CLOSE): Likewise.
(DISPOSE_ON_CLOSE): Likewise.
(DO_NOTHING_ON_CLOSE): Likewise.
(close_action): Likewise.
(getDefaultCloseOperation): Likewise.
(setDefaultCloseOperation): Likewise.
(processWindowEvent): Likewise.
(getPreferredSize): Simplified.
* javax/swing/JInternalFrame.java
(setDefaultCloseOperation): Fixed throwing exception on wrong argument
value.
* javax/swing/JWindow.java
(HIDE_ON_CLOSE): Removed.
(EXIT_ON_CLOSE): Likewise.
(DISPOSE_ON_CLOSE): Likewise.
(DO_NOTHING_ON_CLOSE): Likewise.
(close_action): Likewise.
(processKeyEvent): Likewise.
(setDefaultCloseOperation): Likewise.
(getPreferredSize): Simplified.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTextField.java
(getPreferredSize): Re-implemented.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JLabel.java
(setDisplayedMnemonic): Use only upper case characters.
(setDisplayedMnemonicIndex): Handle index == -1 and fire
PropertyChangeEvent after property got set to the new index.
2005-02-15 Robert Schuster <thebohemian@gmx.net>
* javax/swing/JComboBox.java:
(JComboBox): Removed selection of the
first item in the model.
2005-02-15 Robert Schuster <thebohemian@gmx.net>
* javax/swing/JComboBox.java
added support for no item being selected
(JComboBox): select first or nothing depending on element count
(setModel): cleaned up unneeded "this." usage, added more
docs, made exception behavior match that of the JDK
(setLighWeightPopupEnabled): removed unneeded "this." usage
(setEditable): dito
(setMaximumRowCount): dito
(setRenderer): dito
(setPrototypeDisplayValue): dito
(getSelectedItem): simplified, added more user doc
(setSelectedIndex): corrected exception behavior, added more user doc
(getSelectedIndex): fixed hardcoded dependency on DefaultComboBoxModel,
added performance warning to user doc
(addItem): fixed exception behavior, added user doc
(insertItemAt): dito
(removeItem): dito
(removeItemAt): dito
(removeAll): fixed exception behavior, added user doc, added support
for model not being instance of DefaultComboBoxModel
(getSelectedItemObjects): simplified
(getItemCount): fixed dependency on DefaultComboBoxModel
(getItemAt): fixed dependency on MutableComboBoxModel
* javax/swing/DefaultComboBoxModel.java:
(setSelectedItem): updates selected item only if new
value is null or known (match JDK behavior)
* javax/swing/plaf/basic/BasicComboBoxUI.java:
(paintCurrentValue): renders "" if no item is selected
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/plaf/metal/MetalTheme.java,
javax/swing/plaf/metal/DefaultMetalTheme.java:
New files.
* javax/swing/plaf/metal/MetalLookAndFeel.java
* Makefile.am: Added the new files.
* Makefile.in: Regenerated.
2005-02-15 Olga Rodimina <rodimina@redhat.com>
* javax/swing/JTable.java
(editorComp): New field.
(JTable): Initialize local variables and call updateUI
(selectionBackground): Make protected.
(selectionForeground): Likewise.
(initializeLocalVars): Create default editors and renderers,
initialize editingColumn, editingRow variables.
(createDefaultEditors): New Method.
(createDefaultRenderers): Likewise.
(createDefaultListSelectionModel): Removed
(createDefaultSelectionModel): New Method.
(createDefaultTableHeader): Likewise
(removeColumn): Likewise.
(getEditingColumn): Likewise.
(setEditingColumn): Likewise.
(getEditingRow): Likewise.
(setEditingRow): Likewise.
(getEditorComponent): Likewise.
(isEditing): Likewise.
(setDefaultEditor): Likewise.
(addColumnSelectionInterval): Likewise.
(addRowSelectionInterval): Likewise.
(setColumnSelectionInterval): Likewise.
(setRowSelectionInterval): Likewise.
(removeColumnSelectionInterval): Likewise.
(removeRowSelectionInterval): Likewise.
(isColumnSelected): Likewise.
(isRowSelected): Likewise.
(isCellSelected): Likewise.
(selectAll): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTable.java
(addColumn): New method.
(getColumnClass): Likewise.
(getColumnName): Likewise.
2005-02-15 Paul Jenner <psj.home@ntlworld.com>
* javax/swing/TransferHandler.java
(createTransferable): Made protected.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTable.java,
javax/swing/plaf/basic/BasicTableHeaderUI.java,
javax/swing/plaf/basic/BasicTableUI.java:
Use fixed get/setIntercellSpacing() methods.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTable.java
(getIntercellSpacing): Fixed typo in method name.
(setIntercellSpacing): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/text/JTextComponent.java
(focusAccelerator): New variable.
(getFocusAccelerator): New method.
(setFocusAccelerator): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JComponent.java
(setTransferHandler): Made public. Fire property change event.
* javax/swing/TransferHandler.java: Implemented.
* javax/swing/text/JTextComponent.java
(DefaultTransferHandler): New inner class.
(defaultTransferHandler): New variable.
(copy): New method.
(cut): Likewise.
(paste): Likewise.
(doTransferAction): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTree.java
(collapsePath): New method.
(collapseRow): Likewise.
(expandPath): Likewise.
(expandRow): Likewise.
(checkExpandParents): Likewise.
(doExpandParents): Likewise.
(setExpandedState): Likewise.
(makeVisible): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JPasswordField.java: Updated javadocs.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JLayeredPane.java
(getLayer): Fixed return type, made public.
(getPosition): Use new getLayer().
(SetPosition): Likewise.
(getIndexOf): Likewise.
(remove): Likewise.
* javax/swing/JInternalFrame.java
(getLayer): Use new JLayeredPane.getLayer().
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/table/TableColumn.java: Added/fixed javadocs over all.
(setHeaderValue): Simplified. Do nothing when old value == new value.
2005-02-15 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GdkGraphics.java (setClip): Protect
against null clip region.
* gnu/java/awt/peer/gtk/GtkFramePeer.java (create): Call
gtkWindowSetResizable.
(postConfigureEvent): Only revalidate if frame size has changed.
* gnu/java/awt/peer/gtk/GtkWindowPeer.java (postConfigureEvent):
Only revalidate if frame size has changed.
* java/awt/Component.java (reshape): Only repaint and post
component events if component is showing.
* java/awt/Container.java (addImpl): Only post container event if
container is showing.
(remove): Likewise.
* java/awt/Window.java (setLocationRelativeTo): Implement.
(setBoundsCallback): Only post component events if component is
showing.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (clearRect):
Protect against null graphics structure. Flush gdk event queue.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/imageio/ImageReader.java,
javax/imageio/ImageTranscoder.java,
javax/imageio/ImageWriter.java,
javax/imageio/spi/ImageInputStreamSpi.java,
javax/imageio/spi/ImageOutputStreamSpi.java,
javax/imageio/spi/ServiceRegistry.java,
javax/imageio/stream/ImageInputStream.java,
javax/imageio/stream/ImageOutputStream.java: Updated.
* javax/imageio/IIOException.java,
javax/imageio/IIOImage.java,
javax/imageio/IIOParam.java,
javax/imageio/IIOParamController.java,
javax/imageio/ImageIO.java,
javax/imageio/ImageReadParam.java,
javax/imageio/ImageTypeSpecifier.java,
javax/imageio/ImageWriteParam.java,
javax/imageio/spi/IIORegistry.java,
javax/imageio/spi/ImageReaderSpi.java,
javax/imageio/spi/ImageWriterSpi.java,
javax/imageio/stream/FileCacheImageInputStream.java,
javax/imageio/stream/FileCacheImageOutputStream.java,
javax/imageio/stream/FileImageInputStream.java,
javax/imageio/stream/FileImageOutputStream.java,
javax/imageio/stream/ImageInputStreamImpl.java,
javax/imageio/stream/ImageOutputStreamImpl.java,
javax/imageio/stream/MemoryCacheImageInputStream.java,
javax/imageio/stream/MemoryCacheImageOutputStream.java,
javax/imageio/event/IIOReadProgressListener.java,
javax/imageio/event/IIOReadUpdateListener.java,
javax/imageio/event/IIOReadWarningListener.java,
javax/imageio/event/IIOWriteProgressListener.java,
javax/imageio/event/IIOWriteWarningListener.java,
javax/imageio/metadata/IIOMetadata.java,
javax/imageio/metadata/IIOMetadataController.java,
javax/imageio/metadata/IIOMetadataFormat.java,
javax/imageio/metadata/IIOInvalidTreeException.java,
javax/imageio/metadata/IIOMetadataFormatImpl.java,
javax/imageio/metadata/IIOMetadataNode.java: New files.
* Makefile.am (javax_source_files): Added new files
* Makefile.in: Regenerated.
2005-02-15 Graydon Hoare <graydon@redhat.com>
* gnu/java/awt/peer/gtk/GdkGraphics2D.java:
Rework painting into BufferedImages
* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
Construct BufferedImage with alpha only when alpha is
present in colormodel.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
Rework painting into client-side jint arrays.
* jni/gtk-peer/gtkcairopeer.h:
Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/DefaultListCellRenderer.java
(serialVersionUID): Made private.
(getListCellRendererComponent): Set horizontal alignment.
* javax/swing/JLabel.java
(setVerticalAlignment): Re-implemented.
(setHorizontalAlignment): Do nothing if old value = new value.
* javax/swing/JList.java
(setCellRenderer): Likewise.
(setModel): Re-implemented.
(setSelectionModel): Likewise.
2005-02-15 David Gilbert <david.gilbert@object-refinery.com>
* java/awt/Component.java,
java/awt/geom/Rectangle2D.java:
Javadoc fixes.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractListModel.java
(fireContentsChanged): Simplified.
(fireIntervalAdded): Likewise.
(fireIntervalRemoved): Likewise.
* javax/swing/DefaultSingleSelectionModel.java:
Reformatted.
(fireStateChanged): Simplified.
* javax/swing/JPopupMenu.java
(setSelectionModel): Set property.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/print/Book.java: Reformatted.
2005-02-15 Michael Koch <konqueror@gmx.de>
* java/awt/geom/Area.java
(QuadSegment.curveArea): Remove unused variables.
(CubicSegment.curveArea): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JTree.java
(ANCHOR_SELECTION_PATH_PROPERTY): Added @since tag.
(LEAD_SELECTION_PATH_PROPERTY): Likewise.
(EXPANDS_SELECTED_PATHS_PROPERTY): Likewise.
(EXPANDED): New constant.
(COLLAPSED): Likewise.
(nodeStates): New field.
(cellEditor): New method.
(cellRenderer): Likewise.
(selectionModel): Likewise.
(treeModel): Likewise.
(scrollPathToVisible): Likewise.
(scrollRowToVisible): Likewise.
(isCollapsed): Likewise.
(isExpanded): Likewise.
(clearToggledPaths): Likewise.
(getDescendantToggledPaths): Likewise.
(hasBeenExpanded): Likewise.
(isVisible): Likewise.
(isPathEditable): Likewise.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JLayeredPane.java: Reformatted.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/tree/DefaultMutableTreeNode.java:
Completely Revised.
* javax/swing/tree/MutableTreeNode.java:
Reformatted.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JFormattedTextField.java
(setDocument): Call setDocument of super class. Don't fire property
change event.
2005-02-15 Sven de Marothy <sven@physto.se>
* java/awt/image/IndexColorModel.java:
Add FIXME with respect to alpha handling.
(getAlpha): Default to returning opaque pixels.
* java/awt/image/MultiPixelPackedSampleModel.java
(MultiPixelPackedSampleModel): Corrected parameters, order of
bit shifts and masks, stride length off by one.
2005-02-15 Michael Koch <konqueror@gmx.de>
* javax/swing/JList.java, javax/swing/JTree.java:
Added much new methods and fixed much methods setting bound properties.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95115 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/javax/swing/text')
-rw-r--r-- | libjava/javax/swing/text/AbstractDocument.java | 163 | ||||
-rw-r--r-- | libjava/javax/swing/text/DefaultEditorKit.java | 77 | ||||
-rw-r--r-- | libjava/javax/swing/text/DefaultStyledDocument.java | 195 | ||||
-rw-r--r-- | libjava/javax/swing/text/EditorKit.java | 20 | ||||
-rw-r--r-- | libjava/javax/swing/text/GapContent.java | 2 | ||||
-rw-r--r-- | libjava/javax/swing/text/JTextComponent.java | 160 | ||||
-rw-r--r-- | libjava/javax/swing/text/PasswordView.java | 32 | ||||
-rw-r--r-- | libjava/javax/swing/text/PlainDocument.java | 36 | ||||
-rw-r--r-- | libjava/javax/swing/text/PlainView.java | 26 | ||||
-rw-r--r-- | libjava/javax/swing/text/Position.java | 8 | ||||
-rw-r--r-- | libjava/javax/swing/text/Segment.java | 12 | ||||
-rw-r--r-- | libjava/javax/swing/text/StringContent.java | 304 | ||||
-rw-r--r-- | libjava/javax/swing/text/StyledEditorKit.java | 522 | ||||
-rw-r--r-- | libjava/javax/swing/text/TextAction.java | 69 | ||||
-rw-r--r-- | libjava/javax/swing/text/View.java | 153 | ||||
-rw-r--r-- | libjava/javax/swing/text/ViewFactory.java | 2 |
16 files changed, 1324 insertions, 457 deletions
diff --git a/libjava/javax/swing/text/AbstractDocument.java b/libjava/javax/swing/text/AbstractDocument.java index f579fbb213b..a2c3fa65701 100644 --- a/libjava/javax/swing/text/AbstractDocument.java +++ b/libjava/javax/swing/text/AbstractDocument.java @@ -1,5 +1,5 @@ /* AbstractDocument.java -- - Copyright (C) 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,8 +38,8 @@ exception statement from your version. */ package javax.swing.text; +import java.io.PrintStream; import java.io.Serializable; -import java.util.Collections; import java.util.Dictionary; import java.util.Enumeration; import java.util.EventListener; @@ -59,7 +59,9 @@ public abstract class AbstractDocument implements Document, Serializable { private static final long serialVersionUID = -116069779446114664L; + protected static final String BAD_LOCATION = "document location failure"; + public static final String BidiElementName = "bidi level"; public static final String ContentElementName = "content"; public static final String ParagraphElementName = "paragraph"; @@ -68,6 +70,8 @@ public abstract class AbstractDocument Content content; AttributeContext context; + DocumentFilter documentFilter; + protected EventListenerList listenerList = new EventListenerList(); protected AbstractDocument(Content doc) @@ -139,7 +143,7 @@ public abstract class AbstractDocument protected void fireUndoableEditUpdate(UndoableEditEvent event) { UndoableEditListener[] listeners = getUndoableEditListeners(); - + for (int index = 0; index < listeners.length; ++index) listeners[index].undoableEditHappened(event); } @@ -187,7 +191,7 @@ public abstract class AbstractDocument public int getLength() { - return content.length(); + return content.length() - 1; } public EventListener[] getListeners(Class listenerType) @@ -219,9 +223,9 @@ public abstract class AbstractDocument } public String getText(int offset, int length) throws BadLocationException - { - return content.getString(offset, length); - } + { + return content.getString(offset, length); + } public void getText(int offset, int length, Segment segment) throws BadLocationException @@ -372,6 +376,27 @@ public abstract class AbstractDocument { } + /** + * @since 1.4 + */ + public DocumentFilter getDocumentFilter() + { + return documentFilter; + } + + /** + * @since 1.4 + */ + public void setDocumentFilter(DocumentFilter filter) + { + this.documentFilter = filter; + } + + public void dump(PrintStream out) + { + ((AbstractElement) getDefaultRootElement()).dump(out, 0); + } + public interface AttributeContext { AttributeSet addAttribute(AttributeSet old, Object name, Object value); @@ -415,7 +440,6 @@ public abstract class AbstractDocument AttributeSet attributes; Element element_parent; - Vector element_children; TreeNode tree_parent; Vector tree_children; @@ -428,15 +452,9 @@ public abstract class AbstractDocument // TreeNode implementation - public Enumeration children() - { - return Collections.enumeration(tree_children); - } + public abstract Enumeration children(); - public boolean getAllowsChildren() - { - return true; - } + public abstract boolean getAllowsChildren(); public TreeNode getChildAt(int index) { @@ -553,10 +571,7 @@ public abstract class AbstractDocument return AbstractDocument.this; } - public Element getElement(int index) - { - return (Element) element_children.get(index); - } + public abstract Element getElement(int index); public String getName() { @@ -575,13 +590,49 @@ public abstract class AbstractDocument public abstract int getElementIndex(int offset); public abstract int getStartOffset(); + + private void dumpElement(PrintStream stream, String indent, Element element) + { + System.out.println(indent + "<" + element.getName() +">"); + + if (element.isLeaf()) + { + int start = element.getStartOffset(); + int end = element.getEndOffset(); + String text = ""; + try + { + text = getContent().getString(start, end - start); + } + catch (BadLocationException e) + { + } + System.out.println(indent + " [" + + start + "," + + end + "][" + + text + "]"); + } + else + { + for (int i = 0; i < element.getElementCount(); ++i) + dumpElement(stream, indent + " ", element.getElement(i)); + } + } + + public void dump(PrintStream stream, int indent) + { + String indentStr = ""; + for (int i = 0; i < indent; ++i) + indentStr += " "; + dumpElement(stream, indentStr, this); + } } public class BranchElement extends AbstractElement { private static final long serialVersionUID = -8595176318868717313L; - private Vector children = new Vector(); + private Element[] children = new Element[0]; public BranchElement(Element parent, AttributeSet attributes) { @@ -590,7 +641,15 @@ public abstract class AbstractDocument public Enumeration children() { - return children.elements(); + if (children.length == 0) + return null; + + Vector tmp = new Vector(); + + for (int index = 0; index < children.length; ++index) + tmp.add(children[index]); + + return tmp.elements(); } public boolean getAllowsChildren() @@ -600,43 +659,46 @@ public abstract class AbstractDocument public Element getElement(int index) { - if (index < 0 || index >= children.size()) + if (index < 0 || index >= children.length) return null; - return (Element) children.get(index); + return children[index]; } public int getElementCount() { - return children.size(); + return children.length; } public int getElementIndex(int offset) { - if (children.size() == 0) - return 0; - - Element element = positionToElement(offset); + // XXX: There is surely a better algorithm + // as beginning from first element each time. + for (int index = 0; index < children.length; ++index) + { + Element elem = children[index]; - if (element == null) - return 0; - - return children.indexOf(element); + if ((elem.getStartOffset() <= offset) + && (offset < elem.getEndOffset())) + return index; + } + + return 0; } public int getEndOffset() { - return ((Element) children.lastElement()).getEndOffset(); + return children[children.length - 1].getEndOffset(); } public String getName() { - return "AbstractDocument.BranchElement"; + return ParagraphElementName; } public int getStartOffset() { - return ((Element) children.firstElement()).getStartOffset(); + return children[0].getStartOffset(); } public boolean isLeaf() @@ -648,9 +710,9 @@ public abstract class AbstractDocument { // XXX: There is surely a better algorithm // as beginning from first element each time. - for (int index = 0; index < children.size(); ++index) + for (int index = 0; index < children.length; ++index) { - Element elem = (Element) children.get(index); + Element elem = children[index]; if ((elem.getStartOffset() <= position) && (position < elem.getEndOffset())) @@ -660,18 +722,22 @@ public abstract class AbstractDocument return null; } - public void replace(int offset, int length, Element[] elems) + public void replace(int offset, int length, Element[] elements) { - for (int index = 0; index < length; ++index) - children.removeElementAt(offset); - - for (int index = 0; index < elems.length; ++index) - children.add(offset + index, elems[index]); + Element[] target = new Element[children.length - length + + elements.length]; + System.arraycopy(children, 0, target, 0, offset); + System.arraycopy(elements, 0, target, offset, elements.length); + System.arraycopy(children, offset + length, target, + offset + elements.length, + children.length - offset - length); + children = target; } public String toString() { - return getName() + ": " + "content"; + return ("BranchElement(" + getName() + ") " + + getStartOffset() + "," + getEndOffset() + "\n"); } } @@ -782,7 +848,7 @@ public abstract class AbstractDocument return false; } - public Element getElement() + public Element getElement(int index) { return null; } @@ -804,7 +870,7 @@ public abstract class AbstractDocument public String getName() { - return "AbstractDocument.LeafElement"; + return ContentElementName; } public int getStartOffset() @@ -819,7 +885,8 @@ public abstract class AbstractDocument public String toString() { - return getName() + ": " + "content"; + return ("LeafElement(" + getName() + ") " + + getStartOffset() + "," + getEndOffset() + "\n"); } } } diff --git a/libjava/javax/swing/text/DefaultEditorKit.java b/libjava/javax/swing/text/DefaultEditorKit.java index 0e3be209688..ecec70731ce 100644 --- a/libjava/javax/swing/text/DefaultEditorKit.java +++ b/libjava/javax/swing/text/DefaultEditorKit.java @@ -1,5 +1,5 @@ -/* DefaultEditorKit.java -- - Copyright (C) 2002, 2004 Free Software Foundation, Inc. +/* DefaultEditorKit.java -- + Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,14 +40,16 @@ package javax.swing.text; import java.awt.Toolkit; import java.awt.event.ActionEvent; +import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; import javax.swing.Action; -import javax.swing.JEditorPane; public class DefaultEditorKit extends EditorKit { @@ -84,6 +86,7 @@ public class DefaultEditorKit extends EditorKit { super(cutAction); } + public void actionPerformed(ActionEvent event) { } @@ -96,6 +99,7 @@ public class DefaultEditorKit extends EditorKit { super(defaultKeyTypedAction); } + public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); @@ -123,6 +127,7 @@ public class DefaultEditorKit extends EditorKit { super(insertBreakAction); } + public void actionPerformed(ActionEvent event) { } @@ -147,6 +152,7 @@ public class DefaultEditorKit extends EditorKit { super(insertTabAction); } + public void actionPerformed(ActionEvent event) { } @@ -159,6 +165,7 @@ public class DefaultEditorKit extends EditorKit { super(pasteAction); } + public void actionPerformed(ActionEvent event) { } @@ -328,17 +335,6 @@ public class DefaultEditorKit extends EditorKit }, }; - /** - * Called when the kit is being removed from the JEditorPane. - */ - public void deinstall(JEditorPane c) - { - } - - public void install(JEditorPane c) - { - } - public Caret createCaret() { return new DefaultCaret(); @@ -355,32 +351,47 @@ public class DefaultEditorKit extends EditorKit } public String getContentType() - { - return "text/plain"; - } - + { + return "text/plain"; + } + public ViewFactory getViewFactory() - { - return null; - } + { + return null; + } - public void read(InputStream in, Document doc, int pos) + public void read(InputStream in, Document document, int offset) throws BadLocationException, IOException - { - } + { + read(new InputStreamReader(in), document, offset); + } - public void read(Reader in, Document doc, int pos) + public void read(Reader in, Document document, int offset) throws BadLocationException, IOException - { - } + { + BufferedReader reader = new BufferedReader(in); + + String line; + StringBuffer content = new StringBuffer(); - public void write(OutputStream out, Document doc, int pos, int len) + while ((line = reader.readLine()) != null) + { + content.append(line); + content.append("\n"); + } + + document.insertString(offset, content.toString(), + SimpleAttributeSet.EMPTY); + } + + public void write(OutputStream out, Document document, int offset, int len) throws BadLocationException, IOException - { - } + { + write(new OutputStreamWriter(out), document, offset, len); + } - public void write(Writer out, Document doc, int pos, int len) + public void write(Writer out, Document document, int offset, int len) throws BadLocationException, IOException - { - } + { + } } diff --git a/libjava/javax/swing/text/DefaultStyledDocument.java b/libjava/javax/swing/text/DefaultStyledDocument.java new file mode 100644 index 00000000000..83da23a2638 --- /dev/null +++ b/libjava/javax/swing/text/DefaultStyledDocument.java @@ -0,0 +1,195 @@ +/* DefaultStyledDocument.java -- + 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.text; + +import java.awt.Color; +import java.awt.Font; +import java.io.Serializable; + +/** + * @author Michael Koch (konqueror@gmx.de) + */ +public class DefaultStyledDocument extends AbstractDocument + implements StyledDocument +{ + public class ElementBuffer + implements Serializable + { + private Element root; + + public ElementBuffer(Element root) + { + this.root = root; + } + + public Element getRootElement() + { + return root; + } + } + + public static final int BUFFER_SIZE_DEFAULT = 4096; + + protected DefaultStyledDocument.ElementBuffer buffer; + + public DefaultStyledDocument() + { + this(new GapContent(BUFFER_SIZE_DEFAULT), new StyleContext()); + } + + public DefaultStyledDocument(StyleContext context) + { + this(new GapContent(BUFFER_SIZE_DEFAULT), context); + } + + public DefaultStyledDocument(AbstractDocument.Content content, + StyleContext context) + { + super(content, context); + buffer = new ElementBuffer(createDefaultRoot()); + setLogicalStyle(0, context.getStyle(StyleContext.DEFAULT_STYLE)); + } + + public Style addStyle(String nm, Style parent) + { + StyleContext context = (StyleContext) getAttributeContext(); + return context.addStyle(nm, parent); + } + + protected AbstractDocument.AbstractElement createDefaultRoot() + { + Element[] tmp; + BranchElement section = new BranchElement(null, null); + + BranchElement paragraph = new BranchElement(section, null); + tmp = new Element[1]; + tmp[0] = paragraph; + section.replace(0, 0, tmp); + + LeafElement leaf = new LeafElement(paragraph, null, 0, 1); + tmp = new Element[1]; + tmp[0] = leaf; + paragraph.replace(0, 0, tmp); + + return section; + } + + public Element getCharacterElement(int position) + { + Element element = getDefaultRootElement(); + + while (! element.isLeaf()) + { + int index = element.getElementIndex(position); + element = element.getElement(index); + } + + return element; + } + + public Color getBackground(AttributeSet attributes) + { + StyleContext context = (StyleContext) getAttributeContext(); + return context.getBackground(attributes); + } + + public Element getDefaultRootElement() + { + return buffer.getRootElement(); + } + + public Font getFont(AttributeSet attributes) + { + StyleContext context = (StyleContext) getAttributeContext(); + return context.getFont(attributes); + } + + public Color getForeground(AttributeSet attributes) + { + StyleContext context = (StyleContext) getAttributeContext(); + return context.getForeground(attributes); + } + + public Style getLogicalStyle(int position) + { + Element paragraph = getParagraphElement(position); + AttributeSet attributes = paragraph.getAttributes(); + return (Style) attributes.getResolveParent(); + } + + public Element getParagraphElement(int position) + { + Element element = getCharacterElement(position); + return element.getParentElement(); + } + + public Style getStyle(String nm) + { + StyleContext context = (StyleContext) getAttributeContext(); + return context.getStyle(nm); + } + + public void removeStyle(String nm) + { + StyleContext context = (StyleContext) getAttributeContext(); + context.removeStyle(nm); + } + + public void setCharacterAttributes(int offset, int length, + AttributeSet attributes, + boolean replace) + { + // FIXME: Implement me. + throw new Error("not implemented"); + } + + public void setLogicalStyle(int position, Style style) + { + // FIXME: Implement me. + throw new Error("not implemented"); + } + + public void setParagraphAttributes(int offset, int length, + AttributeSet attributes, + boolean replace) + { + // FIXME: Implement me. + throw new Error("not implemented"); + } +} diff --git a/libjava/javax/swing/text/EditorKit.java b/libjava/javax/swing/text/EditorKit.java index efca9657e26..5d89a11ba7f 100644 --- a/libjava/javax/swing/text/EditorKit.java +++ b/libjava/javax/swing/text/EditorKit.java @@ -1,4 +1,4 @@ -/* EditorKit.java -- +/* EditorKit.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -54,31 +54,31 @@ public abstract class EditorKit private static final long serialVersionUID = -5044124649345887822L; public EditorKit() - { - } + { + } public Object clone() - { + { try { return super.clone(); - } + } catch (CloneNotSupportedException e) - { + { return null; - } + } } /** * Called when the kit is being removed from the JEditorPane. */ public void deinstall(JEditorPane c) - { - } + { + } public void install(JEditorPane c) { -} + } public abstract Caret createCaret(); public abstract Document createDefaultDocument(); diff --git a/libjava/javax/swing/text/GapContent.java b/libjava/javax/swing/text/GapContent.java index 5826128724f..44a8dcb5864 100644 --- a/libjava/javax/swing/text/GapContent.java +++ b/libjava/javax/swing/text/GapContent.java @@ -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.text; import java.io.Serializable; @@ -57,6 +58,7 @@ public class GapContent public GapContent(int size) { + buf.append("\n"); } public Position createPosition(final int offset) throws BadLocationException diff --git a/libjava/javax/swing/text/JTextComponent.java b/libjava/javax/swing/text/JTextComponent.java index 0bca84b0fcf..dee496d6b40 100644 --- a/libjava/javax/swing/text/JTextComponent.java +++ b/libjava/javax/swing/text/JTextComponent.java @@ -44,8 +44,15 @@ import java.awt.Dimension; import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.StringSelection; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.awt.event.ActionEvent; import java.awt.event.InputMethodListener; import java.awt.event.KeyEvent; +import java.io.IOException; import java.util.Enumeration; import java.util.Hashtable; @@ -61,6 +68,7 @@ import javax.swing.JComponent; import javax.swing.JViewport; import javax.swing.KeyStroke; import javax.swing.Scrollable; +import javax.swing.TransferHandler; import javax.swing.UIManager; import javax.swing.event.CaretEvent; import javax.swing.event.CaretListener; @@ -546,7 +554,92 @@ public abstract class JTextComponent extends JComponent { parent = p; } + } + + class DefaultTransferHandler + extends TransferHandler + { + public boolean canImport(JComponent component, DataFlavor[] flavors) + { + JTextComponent textComponent = (JTextComponent) component; + + if (! (textComponent.isEnabled() + && textComponent.isEditable() + && flavors != null)) + return false; + + for (int i = 0; i < flavors.length; ++i) + if (flavors[i].equals(DataFlavor.stringFlavor)) + return true; + + return false; + } + + public void exportToClipboard(JComponent component, Clipboard clipboard, + int action) + { + JTextComponent textComponent = (JTextComponent) component; + int start = textComponent.getSelectionStart(); + int end = textComponent.getSelectionEnd(); + if (start == end) + return; + + try + { + // Copy text to clipboard. + String data = textComponent.getDocument().getText(start, end); + StringSelection selection = new StringSelection(data); + clipboard.setContents(selection, null); + + // Delete selected text on cut action. + if (action == MOVE) + doc.remove(start, end - start); + } + catch (BadLocationException e) + { + // Ignore this and do nothing. + } + } + + public int getSourceActions() + { + return NONE; + } + + public boolean importData(JComponent component, Transferable transferable) + { + DataFlavor flavor = null; + DataFlavor[] flavors = transferable.getTransferDataFlavors(); + + if (flavors == null) + return false; + + for (int i = 0; i < flavors.length; ++i) + if (flavors[i].equals(DataFlavor.stringFlavor)) + flavor = flavors[i]; + + if (flavor == null) + return false; + + try + { + JTextComponent textComponent = (JTextComponent) component; + String data = (String) transferable.getTransferData(flavor); + textComponent.replaceSelection(data); + return true; + } + catch (IOException e) + { + // Ignored. + } + catch (UnsupportedFlavorException e) + { + // Ignored. + } + + return false; + } } private static final long serialVersionUID = -8796518220218978795L; @@ -554,8 +647,11 @@ public abstract class JTextComponent extends JComponent public static final String DEFAULT_KEYMAP = "default"; public static final String FOCUS_ACCELERATOR_KEY = "focusAcceleratorKey"; + private static DefaultTransferHandler defaultTransferHandler; private static Hashtable keymaps = new Hashtable(); private Keymap keymap; + private char focusAccelerator = '\0'; + private NavigationFilter navigationFilter; /** * Get a Keymap from the global keymap table, by name. @@ -875,6 +971,7 @@ public abstract class JTextComponent extends JComponent } catch (BadLocationException e) { + // This can never happen. } } @@ -1369,4 +1466,67 @@ public abstract class JTextComponent extends JComponent { dragEnabled = enabled; } + + public void copy() + { + doTransferAction("copy", TransferHandler.getCopyAction()); + } + + public void cut() + { + doTransferAction("cut", TransferHandler.getCutAction()); + } + + public void paste() + { + doTransferAction("paste", TransferHandler.getPasteAction()); + } + + private void doTransferAction(String name, Action action) + { + // Install default TransferHandler if none set. + if (getTransferHandler() == null) + { + if (defaultTransferHandler == null) + defaultTransferHandler = new DefaultTransferHandler(); + + setTransferHandler(defaultTransferHandler); + } + + // Perform action. + ActionEvent event = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, + action.getValue(Action.NAME).toString()); + action.actionPerformed(event); + } + + public void setFocusAccelerator(char newKey) + { + if (focusAccelerator == newKey) + return; + + char oldKey = focusAccelerator; + focusAccelerator = newKey; + firePropertyChange(FOCUS_ACCELERATOR_KEY, oldKey, newKey); + } + + public char getFocusAccelerator() + { + return focusAccelerator; + } + + /** + * @since 1.4 + */ + public NavigationFilter getNavigationFilter() + { + return navigationFilter; + } + + /** + * @since 1.4 + */ + public void setNavigationFilter(NavigationFilter filter) + { + navigationFilter = filter; + } } diff --git a/libjava/javax/swing/text/PasswordView.java b/libjava/javax/swing/text/PasswordView.java index f9db0417057..ad18350e947 100644 --- a/libjava/javax/swing/text/PasswordView.java +++ b/libjava/javax/swing/text/PasswordView.java @@ -56,6 +56,16 @@ public class PasswordView extends FieldView super(elem); } + /** + * Draws one echo character at a given position. + * + * @param g the <code>Graphics</code> object to draw to + * @param x the x-position + * @param y the y-position + * @param ch the echo character + * + * @return the next x position right of the drawn character + */ protected int drawEchoCharacter(Graphics g, int x, int y, char ch) { // Update font metrics. @@ -79,6 +89,17 @@ public class PasswordView extends FieldView return ch; } + /** + * Draws selected text at a given position. + * + * @param g the <code>Graphics</code> object to draw to + * @param x the x-position + * @param y the y-position + * @param p0 the position of the first character to draw + * @param p1 the position of the first character not to draw + * + * @return the next x position right of the drawn character + */ protected int drawSelectedText(Graphics g, int x, int y, int p0, int p1) throws BadLocationException { @@ -107,6 +128,17 @@ public class PasswordView extends FieldView return x + len * metrics.charWidth(ch); } + /** + * Draws unselected text at a given position. + * + * @param g the <code>Graphics</code> object to draw to + * @param x the x-position + * @param y the y-position + * @param p0 the position of the first character to draw + * @param p1 the position of the first character not to draw + * + * @return the next x position right of the drawn character + */ protected int drawUnselectedText(Graphics g, int x, int y, int p0, int p1) throws BadLocationException { diff --git a/libjava/javax/swing/text/PlainDocument.java b/libjava/javax/swing/text/PlainDocument.java index 22808700a03..64e9c8ab3f4 100644 --- a/libjava/javax/swing/text/PlainDocument.java +++ b/libjava/javax/swing/text/PlainDocument.java @@ -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.text; import java.util.ArrayList; @@ -61,7 +62,7 @@ public class PlainDocument extends AbstractDocument rootElement = createDefaultRoot(); } - protected void reindex() + private void reindex() { Element[] lines; try @@ -70,24 +71,23 @@ public class PlainDocument extends AbstractDocument ArrayList elts = new ArrayList(); int j = 0; - for (int i = str.indexOf('\n', 0); i != -1; i = str.indexOf('\n', i+1)) + for (int i = str.indexOf('\n', 0); i != -1; i = str.indexOf('\n', i + 1)) { - elts.add(createLeafElement(rootElement, null, j, i)); - j = i; + elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, i + 1)); + j = i + 1; } if (j < content.length()) - elts.add(createLeafElement(rootElement, null, j, content.length())); + elts.add(createLeafElement(rootElement, SimpleAttributeSet.EMPTY, j, content.length())); lines = new Element[elts.size()]; for (int i = 0; i < elts.size(); ++i) lines[i] = (Element) elts.get(i); - } catch (BadLocationException e) { lines = new Element[1]; - lines[0] = createLeafElement(rootElement, null, 0, 1); + lines[0] = createLeafElement(rootElement, SimpleAttributeSet.EMPTY, 0, 1); } ((BranchElement) rootElement).replace(0, rootElement.getElementCount(), lines); @@ -95,19 +95,28 @@ public class PlainDocument extends AbstractDocument protected AbstractDocument.AbstractElement createDefaultRoot() { - rootElement = createBranchElement(null, null); - reindex(); - return (AbstractElement) rootElement; + BranchElement root = + (BranchElement) createBranchElement(null, SimpleAttributeSet.EMPTY); + + Element[] array = new Element[1]; + array[0] = createLeafElement(root, SimpleAttributeSet.EMPTY, 0, 1); + root.replace(0, 0, array); + + return root; } - protected void insertUpdate(DefaultDocumentEvent chng, AttributeSet attr) + protected void insertUpdate(DefaultDocumentEvent event, AttributeSet attributes) { reindex(); + + super.insertUpdate(event, attributes); } - protected void removeUpdate(DefaultDocumentEvent chng) + protected void removeUpdate(DefaultDocumentEvent event) { reindex(); + + super.removeUpdate(event); } public Element getDefaultRootElement() @@ -117,6 +126,7 @@ public class PlainDocument extends AbstractDocument public Element getParagraphElement(int pos) { - return null; + Element root = getDefaultRootElement(); + return root.getElement(root.getElementIndex(pos)); } } diff --git a/libjava/javax/swing/text/PlainView.java b/libjava/javax/swing/text/PlainView.java index bcec3538d64..c852c1d69b4 100644 --- a/libjava/javax/swing/text/PlainView.java +++ b/libjava/javax/swing/text/PlainView.java @@ -1,5 +1,5 @@ /* PlainView.java -- - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,6 @@ import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Shape; - public class PlainView extends View implements TabExpander { @@ -93,6 +92,9 @@ public class PlainView extends View public Shape modelToView(int position, Shape a, Position.Bias b) throws BadLocationException { + // Ensure metrics are up-to-date. + updateMetrics(); + Document document = getDocument(); // Get rectangle of the line containing position. @@ -115,13 +117,14 @@ public class PlainView extends View return rect; } - public void drawLine(int lineIndex, Graphics g, int x, int y) + protected void drawLine(int lineIndex, Graphics g, int x, int y) { try { metrics = g.getFontMetrics(); // FIXME: Selected text are not drawn yet. - drawUnselectedText(g, x, y, 0, getDocument().getLength()); + Element line = getDocument().getDefaultRootElement().getElement(lineIndex); + drawUnselectedText(g, x, y, line.getStartOffset(), line.getEndOffset()); //drawSelectedText(g, , , , ); } catch (BadLocationException e) @@ -150,6 +153,9 @@ public class PlainView extends View public void paint(Graphics g, Shape s) { + // Ensure metrics are up-to-date. + updateMetrics(); + JTextComponent textComponent = (JTextComponent) getContainer(); g.setFont(textComponent.getFont()); @@ -159,10 +165,18 @@ public class PlainView extends View Rectangle rect = s.getBounds(); // FIXME: Text may be scrolled. - drawLine(0, g, rect.x, rect.y); + Document document = textComponent.getDocument(); + Element root = document.getDefaultRootElement(); + int y = rect.y; + + for (int i = 0; i < root.getElementCount(); i++) + { + drawLine(i, g, rect.x, y); + y += metrics.getHeight(); + } } - public int getTabSize() + protected int getTabSize() { return 8; } diff --git a/libjava/javax/swing/text/Position.java b/libjava/javax/swing/text/Position.java index 64a91f2e1a4..2fe2bd347d3 100644 --- a/libjava/javax/swing/text/Position.java +++ b/libjava/javax/swing/text/Position.java @@ -40,8 +40,8 @@ package javax.swing.text; public interface Position { - static class Bias - { + static class Bias + { public static final Bias Backward = new Bias("backward"); public static final Bias Forward = new Bias("forward"); @@ -56,7 +56,7 @@ public interface Position { return name; } - } + } - int getOffset(); + int getOffset(); } diff --git a/libjava/javax/swing/text/Segment.java b/libjava/javax/swing/text/Segment.java index 218768e05e2..3b1d9e7aa91 100644 --- a/libjava/javax/swing/text/Segment.java +++ b/libjava/javax/swing/text/Segment.java @@ -1,4 +1,4 @@ -/* Segment.java -- +/* Segment.java -- Copyright (C) 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -59,13 +59,13 @@ public class Segment this.offset = offset; this.count = count; } - - public Object clone() - { + + public Object clone() + { try { - return super.clone(); - } + return super.clone(); + } catch (CloneNotSupportedException e) { return null; diff --git a/libjava/javax/swing/text/StringContent.java b/libjava/javax/swing/text/StringContent.java new file mode 100644 index 00000000000..f470dddf241 --- /dev/null +++ b/libjava/javax/swing/text/StringContent.java @@ -0,0 +1,304 @@ +/* StringContent.java -- + Copyright (C) 2005 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.text; + +import java.io.Serializable; +import java.util.Vector; +import java.util.Iterator; + +import javax.swing.undo.UndoableEdit; +import javax.swing.undo.AbstractUndoableEdit; +import javax.swing.undo.CannotUndoException; +import javax.swing.undo.CannotRedoException; + +/** + * An implementation of the <code>AbstractDocument.Content</code> + * interface useful for small documents or debugging. The character + * content is a simple character array. It's not really efficient. + * + * <p>Do not use this class for large size.</p> + */ +public final class StringContent implements AbstractDocument.Content, Serializable +{ + private char[] content; + + private int count; + + private Vector positions = new Vector(); + + private class InsertUndo extends AbstractUndoableEdit + { + private int start; + + private int length; + + private String redoContent; + + public InsertUndo(int start, int length) + { + super(); + this.start = start; + this.length = length; + } + + public void undo() + { + super.undo(); + try + { + StringContent.this.checkLocation(this.start, this.length); + this.redoContent = new String(StringContent.this.content, this.start, this.length); + StringContent.this.remove(this.start, this.length); + } + catch (BadLocationException b) + { + throw new CannotUndoException(); + } + } + + public void redo() + { + super.redo(); + try + { + StringContent.this.insertString(this.start, this.redoContent); + } + catch (BadLocationException b) + { + throw new CannotRedoException(); + } + } + } + + private class RemoveUndo extends AbstractUndoableEdit + { + private int start; + + private String undoString; + + public RemoveUndo(int start, String str) + { + super(); + this.start = start; + this.undoString = str; + } + + public void undo() + { + super.undo(); + try + { + StringContent.this.insertString(this.start, this.undoString); + } + catch (BadLocationException bad) + { + throw new CannotUndoException(); + } + } + + public void redo() + { + super.redo(); + try + { + int end = this.undoString.length(); + StringContent.this.remove(this.start, end); + } + catch (BadLocationException bad) + { + throw new CannotRedoException(); + } + } + } + + private class StickyPosition implements Position + { + private int offset = -1; + + public StickyPosition(int offset) + { + this.offset = offset; + } + + private void setOffset(int offset) + { + this.offset = this.offset >= 0 ? offset : -1; + } + + /** + * Should be >=0. + */ + public int getOffset() + { + return offset < 0 ? 0 : offset; + } + } + + public StringContent() + { + this(1); + } + + public StringContent(int initialLength) + { + super(); + if (initialLength < 1) + initialLength = 1; + this.content = new char[initialLength]; + this.content[0] = '\n'; + this.count = 1; + } + + protected Vector getPositionsInRange(Vector v, + int offset, + int length) + { + Vector refPos = new Vector(); + Iterator iter = this.positions.iterator(); + while(iter.hasNext()) + { + Position p = (Position)iter.next(); + if ((offset <= p.getOffset()) + && (p.getOffset() <= (offset + length))) + refPos.add(p); + } + return refPos; + } + + public Position createPosition(int offset) throws BadLocationException + { + if (offset < this.count || offset > this.count) + checkLocation(offset, 0); + StickyPosition sp = new StickyPosition(offset); + this.positions.add(sp); + return sp; + } + + public int length() + { + return this.count; + } + + public UndoableEdit insertString(int where, String str) + throws BadLocationException + { + checkLocation(where, 0); + if (where == this.count) + throw new BadLocationException("Invalid location", 1); + if (str == null) + throw new NullPointerException(); + char[] insert = str.toCharArray(); + char[] temp = new char[this.content.length + insert.length]; + this.count += insert.length; + // Copy array and insert the string. + if (where > 0) + System.arraycopy(this.content, 0, temp, 0, where); + System.arraycopy(insert, 0, temp, where, insert.length); + System.arraycopy(this.content, where, temp, (where + insert.length), (temp.length - where - insert.length)); + if (this.content.length < temp.length) + this.content = new char[temp.length]; + // Copy the result in the original char array. + System.arraycopy(temp, 0, this.content, 0, temp.length); + // Move all the positions. + Vector refPos = getPositionsInRange(this.positions, where, temp.length - where); + Iterator iter = refPos.iterator(); + while (iter.hasNext()) + { + StickyPosition p = (StickyPosition)iter.next(); + p.setOffset(p.getOffset() + str.length()); + } + InsertUndo iundo = new InsertUndo(where, insert.length); + return iundo; + } + + public UndoableEdit remove(int where, int nitems) throws BadLocationException + { + checkLocation(where, nitems); + char[] temp = new char[(this.content.length - nitems)]; + this.count = this.count - nitems; + RemoveUndo rundo = new RemoveUndo(where, new String(this.content, where, nitems)); + // Copy array. + System.arraycopy(this.content, 0, temp, 0, where); + System.arraycopy(this.content, where + nitems, temp, where, this.content.length - where - nitems); + this.content = new char[temp.length]; + // Then copy the result in the original char array. + System.arraycopy(temp, 0, this.content, 0, this.content.length); + // Move all the positions. + Vector refPos = getPositionsInRange(this.positions, where, this.content.length + nitems - where); + Iterator iter = refPos.iterator(); + while (iter.hasNext()) + { + StickyPosition p = (StickyPosition)iter.next(); + int result = p.getOffset() - nitems; + p.setOffset(result); + if (result < 0) + this.positions.remove(p); + } + return rundo; + } + + public String getString(int where, int len) throws BadLocationException + { + checkLocation(where, len); + return new String (this.content, where, len); + } + + public void getChars(int where, int len, Segment txt) throws BadLocationException + { + checkLocation(where, len); + if (txt != null) + { + txt.array = this.content; + txt.offset = where; + txt.count = len; + } + } + + private void checkLocation(int where, int len) throws BadLocationException + { + if (where < 0) + throw new BadLocationException("Invalid location", 1); + else if (where > this.count) + throw new BadLocationException("Invalid location", this.count); + else if ((where + len)>this.count) + throw new BadLocationException("Invalid range", this.count); + } + +} + diff --git a/libjava/javax/swing/text/StyledEditorKit.java b/libjava/javax/swing/text/StyledEditorKit.java index f1858309a5a..148ebd32bd2 100644 --- a/libjava/javax/swing/text/StyledEditorKit.java +++ b/libjava/javax/swing/text/StyledEditorKit.java @@ -52,452 +52,452 @@ import javax.swing.event.CaretListener; /** * StyledEditorKit * - * @author Andrew Selkirk + * @author Andrew Selkirk */ public class StyledEditorKit extends DefaultEditorKit { private static final long serialVersionUID = 7002391892985555948L; - /** - * UnderlineAction - */ + /** + * UnderlineAction + */ public static class UnderlineAction extends StyledEditorKit.StyledTextAction { - /** - * Constructor UnderlineAction - */ + /** + * Constructor UnderlineAction + */ public UnderlineAction() { - super("TODO"); - // TODO + super("TODO"); + // TODO } - /** - * actionPerformed - * @param event TODO - */ + /** + * actionPerformed + * @param event TODO + */ public void actionPerformed(ActionEvent event) { - // TODO + // TODO } } - /** - * ItalicAction - */ + /** + * ItalicAction + */ public static class ItalicAction extends StyledEditorKit.StyledTextAction { - /** - * Constructor ItalicAction - */ + /** + * Constructor ItalicAction + */ public ItalicAction() { - super("TODO"); - // TODO + super("TODO"); + // TODO } - /** - * actionPerformed - * @param event TODO - */ + /** + * actionPerformed + * @param event TODO + */ public void actionPerformed(ActionEvent event) { - // TODO + // TODO } } - /** - * BoldAction - */ + /** + * BoldAction + */ public static class BoldAction extends StyledEditorKit.StyledTextAction { - /** - * Constructor BoldAction - */ + /** + * Constructor BoldAction + */ public BoldAction() { - super("TODO"); - // TODO + super("TODO"); + // TODO } - /** - * actionPerformed - * @param event TODO - */ + /** + * actionPerformed + * @param event TODO + */ public void actionPerformed(ActionEvent event) { - // TODO + // TODO } } - /** - * AlignmentAction - */ + /** + * AlignmentAction + */ public static class AlignmentAction extends StyledEditorKit.StyledTextAction { - /** - * a - */ - private int a; - - /** - * Constructor AlignmentAction - * @param nm TODO - * @param a TODO - */ + /** + * a + */ + private int a; + + /** + * Constructor AlignmentAction + * @param nm TODO + * @param a TODO + */ public AlignmentAction(String nm, int a) { - super("TODO"); - // TODO + super("TODO"); + // TODO } - /** - * actionPerformed - * @param event TODO - */ + /** + * actionPerformed + * @param event TODO + */ public void actionPerformed(ActionEvent event) { - // TODO + // TODO } } - /** - * ForegroundAction - */ + /** + * ForegroundAction + */ public static class ForegroundAction extends StyledEditorKit.StyledTextAction { - /** - * fg - */ - private Color fg; - - /** - * Constructor ForegroundAction - * @param nm TODO - * @param fg TODO - */ + /** + * fg + */ + private Color fg; + + /** + * Constructor ForegroundAction + * @param nm TODO + * @param fg TODO + */ public ForegroundAction(String nm, Color fg) { - super("TODO"); - // TODO + super("TODO"); + // TODO } - /** - * actionPerformed - * @param event TODO - */ + /** + * actionPerformed + * @param event TODO + */ public void actionPerformed(ActionEvent event) { - // TODO + // TODO } } - /** - * FontSizeAction - */ + /** + * FontSizeAction + */ public static class FontSizeAction extends StyledEditorKit.StyledTextAction { - /** - * size - */ - private int size; - - /** - * Constructor FontSizeAction - * @param nm TODO - * @param size TODO - */ + /** + * size + */ + private int size; + + /** + * Constructor FontSizeAction + * @param nm TODO + * @param size TODO + */ public FontSizeAction(String nm, int size) { - super("TODO"); - // TODO + super("TODO"); + // TODO } - /** - * actionPerformed - * @param event TODO - */ + /** + * actionPerformed + * @param event TODO + */ public void actionPerformed(ActionEvent event) { - // TODO + // TODO } } - /** - * FontFamilyAction - */ + /** + * FontFamilyAction + */ public static class FontFamilyAction extends StyledEditorKit.StyledTextAction { - /** - * family - */ - private String family; - - /** - * Constructor FontFamilyAction - * @param nm TODO - * @param family TODO - */ + /** + * family + */ + private String family; + + /** + * Constructor FontFamilyAction + * @param nm TODO + * @param family TODO + */ public FontFamilyAction(String nm, String family) { - super("TODO"); - // TODO + super("TODO"); + // TODO } - /** - * actionPerformed - * @param event TODO - */ + /** + * actionPerformed + * @param event TODO + */ public void actionPerformed(ActionEvent event) { - // TODO + // TODO } } - /** - * StyledTextAction - */ + /** + * StyledTextAction + */ public abstract static class StyledTextAction extends TextAction { - /** - * Constructor StyledTextAction - * @param nm TODO - */ + /** + * Constructor StyledTextAction + * @param nm TODO + */ public StyledTextAction(String nm) { - super(nm); - // TODO + super(nm); + // TODO } - /** - * getEditor - * @param event TODO - * @returns JEditorPane - */ + /** + * getEditor + * @param event TODO + * @returns JEditorPane + */ protected final JEditorPane getEditor(ActionEvent event) { - return null; // TODO + return null; // TODO } - /** - * setCharacterAttributes - * @param value0 TODO - * @param value1 TODO - * @param value2 TODO - */ + /** + * setCharacterAttributes + * @param value0 TODO + * @param value1 TODO + * @param value2 TODO + */ protected final void setCharacterAttributes(JEditorPane value0, AttributeSet value1, boolean value2) { - // TODO + // TODO } - /** - * getStyledDocument - * @param value0 TODO - * @returns StyledDocument - */ + /** + * getStyledDocument + * @param value0 TODO + * @returns StyledDocument + */ protected final StyledDocument getStyledDocument(JEditorPane value0) { - return null; // TODO + return null; // TODO } - /** - * getStyledEditorKit - * @param value0 TODO - * @returns StyledEditorKit - */ + /** + * getStyledEditorKit + * @param value0 TODO + * @returns StyledEditorKit + */ protected final StyledEditorKit getStyledEditorKit(JEditorPane value0) { - return null; // TODO + return null; // TODO } - /** - * setParagraphAttributes - * @param value0 TODO - * @param value1 TODO - * @param value2 TODO - */ + /** + * setParagraphAttributes + * @param value0 TODO + * @param value1 TODO + * @param value2 TODO + */ protected final void setParagraphAttributes(JEditorPane value0, AttributeSet value1, boolean value2) { - // TODO + // TODO } } - /** - * StyledViewFactory - */ + /** + * StyledViewFactory + */ static class StyledViewFactory implements ViewFactory { - /** - * Constructor StyledViewFactory - */ + /** + * Constructor StyledViewFactory + */ StyledViewFactory() { - // TODO + // TODO } - /** - * create - * @param value0 TODO - * @returns View - */ + /** + * create + * @param value0 TODO + * @returns View + */ public View create(Element value0) { - return null; // TODO + return null; // TODO } } - /** - * AttributeTracker - */ + /** + * AttributeTracker + */ class AttributeTracker implements CaretListener, PropertyChangeListener, Serializable { - /** - * Constructor AttributeTracker - * @param value0 TODO - */ + /** + * Constructor AttributeTracker + * @param value0 TODO + */ AttributeTracker(StyledEditorKit value0) { - // TODO + // TODO } - /** - * updateInputAttributes - * @param value0 TODO - * @param value1 TODO - * @param value2 TODO - */ + /** + * updateInputAttributes + * @param value0 TODO + * @param value1 TODO + * @param value2 TODO + */ void updateInputAttributes(int value0, int value1, JTextComponent value2) { - // TODO + // TODO } - /** - * propertyChange - * @param value0 TODO - */ + /** + * propertyChange + * @param value0 TODO + */ public void propertyChange(PropertyChangeEvent value0) { - // TODO + // TODO } - /** - * caretUpdate - * @param value0 TODO - */ + /** + * caretUpdate + * @param value0 TODO + */ public void caretUpdate(CaretEvent value0) { - // TODO + // TODO } } - /** - * currentRun - */ - Element currentRun; + /** + * currentRun + */ + Element currentRun; - /** - * currentParagraph - */ - Element currentParagraph; + /** + * currentParagraph + */ + Element currentParagraph; - /** - * inputAttributes - */ - MutableAttributeSet inputAttributes; + /** + * inputAttributes + */ + MutableAttributeSet inputAttributes; - /** - * Constructor StyledEditorKit - */ + /** + * Constructor StyledEditorKit + */ public StyledEditorKit() { - // TODO + // TODO } - /** - * clone - * @returns Object - */ + /** + * clone + * @returns Object + */ public Object clone() { - return null; // TODO + return null; // TODO } - /** - * getActions - * @returns Action[] - */ + /** + * getActions + * @returns Action[] + */ public Action[] getActions() { - return null; // TODO + return null; // TODO } - /** - * getInputAttributes - * @returns MutableAttributeSet - */ + /** + * getInputAttributes + * @returns MutableAttributeSet + */ public MutableAttributeSet getInputAttributes() { - return null; // TODO + return null; // TODO } - /** - * getCharacterAttributeRun - * @returns Element - */ + /** + * getCharacterAttributeRun + * @returns Element + */ public Element getCharacterAttributeRun() { - return null; // TODO + return null; // TODO } - /** - * createDefaultDocument - * @returns Document - */ + /** + * createDefaultDocument + * @returns Document + */ public Document createDefaultDocument() { - return null; // TODO + return null; // TODO } - /** - * install - * @param component TODO - */ + /** + * install + * @param component TODO + */ public void install(JEditorPane component) { - // TODO + // TODO } - /** - * deinstall - * @param component TODO - */ + /** + * deinstall + * @param component TODO + */ public void deinstall(JEditorPane component) { - // TODO + // TODO } - /** - * getViewFactory - * @returns ViewFactory - */ + /** + * getViewFactory + * @returns ViewFactory + */ public ViewFactory getViewFactory() { - return null; // TODO + return null; // TODO } - /** - * createInputAttributes - * @param element TODO - * @param set TODO - */ + /** + * createInputAttributes + * @param element TODO + * @param set TODO + */ protected void createInputAttributes(Element element, MutableAttributeSet set) { - // TODO + // TODO } } diff --git a/libjava/javax/swing/text/TextAction.java b/libjava/javax/swing/text/TextAction.java index d07bcbf1f43..0191a2dc41c 100644 --- a/libjava/javax/swing/text/TextAction.java +++ b/libjava/javax/swing/text/TextAction.java @@ -39,56 +39,73 @@ exception statement from your version. */ package javax.swing.text; import java.awt.event.ActionEvent; +import java.util.ArrayList; +import java.util.HashSet; import javax.swing.AbstractAction; import javax.swing.Action; /** * TextAction - * @author Andrew Selkirk + * @author Andrew Selkirk */ public abstract class TextAction extends AbstractAction { - /** - * Constructor TextAction - * @param name TODO - */ + /** + * Constructor TextAction + * @param name TODO + */ public TextAction(String name) { super(name); } - /** - * getTextComponent - * @param event TODO - * @return JTextComponent - */ + /** + * Returns the <code>JTextComponent</code> object associated with the given + * <code>ActionEvent</code>. If the source of the event is not a + * <code>JTextComponent</code> the currently focused text component is returned. + * + * @param event the action event + * + * @return the <code>JTextComponent</code> + */ protected final JTextComponent getTextComponent(ActionEvent event) { - if (event.getSource() != null && - event.getSource() instanceof JTextComponent) + if (event.getSource() instanceof JTextComponent) return (JTextComponent) event.getSource(); - else - return getFocusedComponent(); + + return getFocusedComponent(); } - /** - * augmentList - * @param list1 TODO - * @param list2 TODO - * @return Action[] - */ + /** + * Creates a new array of <code>Action</code> containing both given arrays. + * + * @param list1 the first action array + * @param list2 the second action array + * + * @return the augmented array of actions + */ public static final Action[] augmentList(Action[] list1, Action[] list2) { - return null; // TODO + HashSet actionSet = new HashSet(); + + for (int i = 0; i < list1.length; ++i) + actionSet.add(list1[i]); + + for (int i = 0; i < list2.length; ++i) + actionSet.add(list2[i]); + + ArrayList list = new ArrayList(actionSet); + return (Action[]) list.toArray(new Action[actionSet.size()]); } - /** - * getFocusedComponent - * @return JTextComponent - */ + /** + * Returns the current focused <code>JTextComponent</code> object. + * + * @return the <code>JTextComponent</code> + */ protected final JTextComponent getFocusedComponent() { - return null; // TODO + return null; // TODO } } diff --git a/libjava/javax/swing/text/View.java b/libjava/javax/swing/text/View.java index f9e44a90f54..46f42b50374 100644 --- a/libjava/javax/swing/text/View.java +++ b/libjava/javax/swing/text/View.java @@ -1,5 +1,5 @@ /* View.java -- - Copyright (C) 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2005 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.text; import java.awt.Container; @@ -57,91 +58,113 @@ public abstract class View implements SwingConstants private Element elt; private View parent; - /** + /** * Creates a new <code>View</code> instance. * * @param elem an <code>Element</code> value - */ - public View(Element elem) - { - elt = elem; - } + */ + public View(Element elem) + { + elt = elem; + } public abstract void paint(Graphics g, Shape s); - public void setParent(View a) - { - parent = a; - } - + public void setParent(View parent) + { + this.parent = parent; + } + public View getParent() - { + { return parent; - } - - public void setSize(int w, int h) - { - width = w; - height = h; - } + } public Container getContainer() - { + { + View parent = getParent(); return parent != null ? parent.getContainer() : null; - } - + } + public Document getDocument() - { + { return getElement().getDocument(); - } - + } + public Element getElement() - { + { return elt; - } + } public abstract float getPreferredSpan(int axis); + + public int getResizeWeight(int axis) + { + return 0; + } + + public float getMaximumSpan(int axis) + { + if (getResizeWeight(axis) <= 0) + return getPreferredSpan(axis); + + return Integer.MAX_VALUE; + } + + public float getMinimumSpan(int axis) + { + if (getResizeWeight(axis) <= 0) + return getPreferredSpan(axis); + + return Integer.MAX_VALUE; + } + + public void setSize(float width, float height) + { + // The default implementation does nothing. + } public float getAlignment(int axis) - { + { return 0.5f; - } - + } + public AttributeSet getAttributes() - { - return elt.getAttributes(); - } - + { + return getElement().getAttributes(); + } + public boolean isVisible() - { + { return true; - } + } public int getViewCount() - { + { return 0; - } - + } + public View getView(int index) - { + { return null; - } + } public ViewFactory getViewFactory() - { + { + View parent = getParent(); return parent != null ? parent.getViewFactory() : null; } public void replace(int offset, int length, View[] views) - { + { // Default implementation does nothing. } public void insert(int offset, View view) - { + { View[] array = { view }; replace(offset, 1, array); - } + } public void append(View view) { @@ -152,7 +175,7 @@ public abstract class View implements SwingConstants public void removeAll() { replace(0, getViewCount(), null); - } + } public void remove(int index) { @@ -167,12 +190,12 @@ public abstract class View implements SwingConstants public int getStartOffset() { - return elt.getStartOffset(); + return getElement().getStartOffset(); } public int getEndOffset() { - return elt.getEndOffset(); + return getElement().getEndOffset(); } public Shape getChildAllocation(int index, Shape a) @@ -205,5 +228,37 @@ public abstract class View implements SwingConstants return null; } + + /** + * @since 1.3 + */ + public Graphics getGraphics() + { + return getContainer().getGraphics(); + } + + public void preferenceChanged(View child, boolean width, boolean height) + { + if (parent != null) + parent.preferenceChanged(this, width, height); + } + + public int getBreakWeight(int axis, float pos, float len) + { + return BadBreakWeight; + } + + public View breakView(int axis, int offset, float pos, float len) + { + return this; + } + + /** + * @since 1.3 + */ + public int getViewIndex(int pos, Position.Bias b) + { + return -1; + } } diff --git a/libjava/javax/swing/text/ViewFactory.java b/libjava/javax/swing/text/ViewFactory.java index 52be67ba557..c9cc4b792b8 100644 --- a/libjava/javax/swing/text/ViewFactory.java +++ b/libjava/javax/swing/text/ViewFactory.java @@ -46,5 +46,5 @@ public interface ViewFactory * * @return a new created view */ - View create (Element elem); + View create(Element elem); } |