aboutsummaryrefslogtreecommitdiff
path: root/libjava/javax
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/javax')
-rw-r--r--libjava/javax/accessibility/Accessible.java4
-rw-r--r--libjava/javax/accessibility/AccessibleAction.java4
-rw-r--r--libjava/javax/accessibility/AccessibleBundle.java4
-rw-r--r--libjava/javax/accessibility/AccessibleComponent.java4
-rw-r--r--libjava/javax/accessibility/AccessibleContext.java2
-rw-r--r--libjava/javax/accessibility/AccessibleEditableText.java4
-rw-r--r--libjava/javax/accessibility/AccessibleExtendedComponent.java4
-rw-r--r--libjava/javax/accessibility/AccessibleExtendedTable.java4
-rw-r--r--libjava/javax/accessibility/AccessibleHyperlink.java4
-rw-r--r--libjava/javax/accessibility/AccessibleHypertext.java4
-rw-r--r--libjava/javax/accessibility/AccessibleIcon.java4
-rw-r--r--libjava/javax/accessibility/AccessibleKeyBinding.java4
-rw-r--r--libjava/javax/accessibility/AccessibleRelation.java2
-rw-r--r--libjava/javax/accessibility/AccessibleRelationSet.java2
-rw-r--r--libjava/javax/accessibility/AccessibleResourceBundle.java4
-rw-r--r--libjava/javax/accessibility/AccessibleRole.java2
-rw-r--r--libjava/javax/accessibility/AccessibleSelection.java4
-rw-r--r--libjava/javax/accessibility/AccessibleState.java2
-rw-r--r--libjava/javax/accessibility/AccessibleStateSet.java2
-rw-r--r--libjava/javax/accessibility/AccessibleTable.java4
-rw-r--r--libjava/javax/accessibility/AccessibleTableModelChange.java4
-rw-r--r--libjava/javax/accessibility/AccessibleText.java4
-rw-r--r--libjava/javax/accessibility/AccessibleValue.java4
-rw-r--r--libjava/javax/crypto/SecretKey.java1
-rw-r--r--libjava/javax/imageio/IIOException.java4
-rw-r--r--libjava/javax/imageio/IIOParam.java14
-rw-r--r--libjava/javax/imageio/ImageIO.java148
-rw-r--r--libjava/javax/imageio/ImageReadParam.java16
-rw-r--r--libjava/javax/imageio/ImageReader.java39
-rw-r--r--libjava/javax/imageio/ImageWriter.java13
-rw-r--r--libjava/javax/imageio/metadata/IIOInvalidTreeException.java13
-rw-r--r--libjava/javax/imageio/metadata/IIOMetadataNode.java549
-rw-r--r--libjava/javax/imageio/spi/IIORegistry.java8
-rw-r--r--libjava/javax/imageio/spi/IIOServiceProvider.java4
-rw-r--r--libjava/javax/imageio/spi/ImageInputStreamSpi.java4
-rw-r--r--libjava/javax/imageio/spi/ImageOutputStreamSpi.java4
-rw-r--r--libjava/javax/imageio/spi/ImageReaderWriterSpi.java4
-rw-r--r--libjava/javax/imageio/spi/ImageTranscoderSpi.java4
-rw-r--r--libjava/javax/imageio/spi/RegisterableService.java4
-rw-r--r--libjava/javax/imageio/spi/ServiceRegistry.java10
-rw-r--r--libjava/javax/imageio/stream/FileCacheImageInputStream.java18
-rw-r--r--libjava/javax/imageio/stream/FileCacheImageOutputStream.java32
-rw-r--r--libjava/javax/imageio/stream/FileImageInputStream.java23
-rw-r--r--libjava/javax/imageio/stream/FileImageOutputStream.java45
-rw-r--r--libjava/javax/imageio/stream/IIOByteBuffer.java4
-rw-r--r--libjava/javax/imageio/stream/ImageInputStream.java4
-rw-r--r--libjava/javax/imageio/stream/ImageInputStreamImpl.java360
-rw-r--r--libjava/javax/imageio/stream/ImageOutputStream.java4
-rw-r--r--libjava/javax/imageio/stream/ImageOutputStreamImpl.java180
-rw-r--r--libjava/javax/imageio/stream/MemoryCacheImageInputStream.java40
-rw-r--r--libjava/javax/imageio/stream/MemoryCacheImageOutputStream.java54
-rw-r--r--libjava/javax/naming/Binding.java4
-rw-r--r--libjava/javax/naming/CannotProceedException.java4
-rw-r--r--libjava/javax/naming/CompositeName.java4
-rw-r--r--libjava/javax/naming/CompoundName.java4
-rw-r--r--libjava/javax/naming/LinkException.java4
-rw-r--r--libjava/javax/naming/LinkRef.java4
-rw-r--r--libjava/javax/naming/NameClassPair.java4
-rw-r--r--libjava/javax/naming/Reference.java4
-rw-r--r--libjava/javax/naming/ReferralException.java4
-rw-r--r--libjava/javax/naming/directory/Attribute.java4
-rw-r--r--libjava/javax/naming/directory/AttributeModificationException.java4
-rw-r--r--libjava/javax/naming/directory/Attributes.java4
-rw-r--r--libjava/javax/naming/directory/DirContext.java4
-rw-r--r--libjava/javax/naming/directory/ModificationItem.java4
-rw-r--r--libjava/javax/naming/directory/SearchControls.java4
-rw-r--r--libjava/javax/naming/directory/SearchResult.java4
-rw-r--r--libjava/javax/naming/event/EventContext.java4
-rw-r--r--libjava/javax/naming/event/EventDirContext.java4
-rw-r--r--libjava/javax/naming/event/NamespaceChangeListener.java4
-rw-r--r--libjava/javax/naming/event/NamingExceptionEvent.java4
-rw-r--r--libjava/javax/naming/event/NamingListener.java4
-rw-r--r--libjava/javax/naming/event/ObjectChangeListener.java4
-rw-r--r--libjava/javax/naming/ldap/Control.java4
-rw-r--r--libjava/javax/naming/ldap/ExtendedResponse.java4
-rw-r--r--libjava/javax/naming/ldap/HasControls.java4
-rw-r--r--libjava/javax/naming/ldap/LdapContext.java4
-rw-r--r--libjava/javax/naming/ldap/UnsolicitedNotification.java4
-rw-r--r--libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java4
-rw-r--r--libjava/javax/naming/ldap/UnsolicitedNotificationListener.java4
-rw-r--r--libjava/javax/naming/spi/DirectoryManager.java4
-rw-r--r--libjava/javax/naming/spi/ResolveResult.java4
-rw-r--r--libjava/javax/naming/spi/Resolver.java4
-rw-r--r--libjava/javax/net/ssl/SSLContext.java10
-rw-r--r--libjava/javax/security/auth/Subject.java4
-rw-r--r--libjava/javax/security/auth/callback/Callback.java1
-rw-r--r--libjava/javax/security/auth/callback/CallbackHandler.java1
-rw-r--r--libjava/javax/security/auth/callback/ChoiceCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/ConfirmationCallback.java5
-rw-r--r--libjava/javax/security/auth/callback/LanguageCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/NameCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/PasswordCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/TextInputCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/TextOutputCallback.java1
-rw-r--r--libjava/javax/security/auth/callback/UnsupportedCallbackException.java1
-rw-r--r--libjava/javax/security/sasl/Sasl.java11
-rw-r--r--libjava/javax/security/sasl/SaslServerFactory.java4
-rw-r--r--libjava/javax/swing/AbstractAction.java8
-rw-r--r--libjava/javax/swing/AbstractButton.java56
-rw-r--r--libjava/javax/swing/AbstractCellEditor.java2
-rw-r--r--libjava/javax/swing/AbstractListModel.java79
-rw-r--r--libjava/javax/swing/AbstractSet.java103
-rw-r--r--libjava/javax/swing/ActionMap.java90
-rw-r--r--libjava/javax/swing/BoundedRangeModel.java219
-rw-r--r--libjava/javax/swing/ComponentInputMap.java10
-rw-r--r--libjava/javax/swing/DebugGraphics.java612
-rw-r--r--libjava/javax/swing/DefaultBoundedRangeModel.java45
-rw-r--r--libjava/javax/swing/DefaultButtonModel.java10
-rw-r--r--libjava/javax/swing/DefaultCellEditor.java2
-rw-r--r--libjava/javax/swing/DefaultCellRenderer.java74
-rw-r--r--libjava/javax/swing/DefaultComboBoxModel.java17
-rw-r--r--libjava/javax/swing/DefaultDesktopManager.java59
-rw-r--r--libjava/javax/swing/DefaultListCellRenderer.java7
-rw-r--r--libjava/javax/swing/DefaultListModel.java24
-rw-r--r--libjava/javax/swing/DefaultListSelectionModel.java31
-rw-r--r--libjava/javax/swing/DefaultSingleSelectionModel.java69
-rw-r--r--libjava/javax/swing/ImageIcon.java13
-rw-r--r--libjava/javax/swing/InputMap.java90
-rw-r--r--libjava/javax/swing/JApplet.java80
-rw-r--r--libjava/javax/swing/JButton.java150
-rw-r--r--libjava/javax/swing/JCheckBox.java56
-rw-r--r--libjava/javax/swing/JCheckBoxMenuItem.java2
-rw-r--r--libjava/javax/swing/JComboBox.java247
-rw-r--r--libjava/javax/swing/JComponent.java63
-rw-r--r--libjava/javax/swing/JEditorPane.java83
-rw-r--r--libjava/javax/swing/JFileChooser.java6
-rw-r--r--libjava/javax/swing/JFormattedTextField.java103
-rw-r--r--libjava/javax/swing/JFrame.java6
-rw-r--r--libjava/javax/swing/JInternalFrame.java25
-rw-r--r--libjava/javax/swing/JLabel.java107
-rw-r--r--libjava/javax/swing/JLayeredPane.java61
-rw-r--r--libjava/javax/swing/JList.java253
-rw-r--r--libjava/javax/swing/JMenu.java48
-rw-r--r--libjava/javax/swing/JMenuBar.java50
-rw-r--r--libjava/javax/swing/JMenuItem.java22
-rw-r--r--libjava/javax/swing/JOptionPane.java4
-rw-r--r--libjava/javax/swing/JPasswordField.java12
-rw-r--r--libjava/javax/swing/JPopupMenu.java108
-rw-r--r--libjava/javax/swing/JProgressBar.java33
-rw-r--r--libjava/javax/swing/JRadioButton.java8
-rw-r--r--libjava/javax/swing/JRootPane.java61
-rw-r--r--libjava/javax/swing/JScrollBar.java100
-rw-r--r--libjava/javax/swing/JScrollPane.java74
-rw-r--r--libjava/javax/swing/JSlider.java56
-rw-r--r--libjava/javax/swing/JSpinner.java9
-rw-r--r--libjava/javax/swing/JTabbedPane.java30
-rw-r--r--libjava/javax/swing/JTable.java355
-rw-r--r--libjava/javax/swing/JTextArea.java6
-rw-r--r--libjava/javax/swing/JTextField.java59
-rw-r--r--libjava/javax/swing/JToggleButton.java9
-rw-r--r--libjava/javax/swing/JToolBar.java288
-rw-r--r--libjava/javax/swing/JTree.java743
-rw-r--r--libjava/javax/swing/JViewport.java24
-rw-r--r--libjava/javax/swing/JWindow.java286
-rw-r--r--libjava/javax/swing/KeyStroke.java29
-rw-r--r--libjava/javax/swing/LookAndFeel.java6
-rw-r--r--libjava/javax/swing/MenuSelectionManager.java8
-rw-r--r--libjava/javax/swing/OverlayLayout.java2
-rw-r--r--libjava/javax/swing/RepaintManager.java2
-rw-r--r--libjava/javax/swing/ScrollPaneLayout.java16
-rw-r--r--libjava/javax/swing/SizeRequirements.java2
-rw-r--r--libjava/javax/swing/SpinnerListModel.java4
-rw-r--r--libjava/javax/swing/SwingUtilities.java173
-rw-r--r--libjava/javax/swing/Timer.java17
-rw-r--r--libjava/javax/swing/TransferHandler.java102
-rw-r--r--libjava/javax/swing/UIDefaults.java128
-rw-r--r--libjava/javax/swing/UIManager.java8
-rw-r--r--libjava/javax/swing/ViewportLayout.java15
-rw-r--r--libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java4
-rw-r--r--libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java4
-rw-r--r--libjava/javax/swing/event/EventListenerList.java6
-rw-r--r--libjava/javax/swing/event/MouseInputAdapter.java144
-rw-r--r--libjava/javax/swing/plaf/basic/BasicButtonListener.java18
-rw-r--r--libjava/javax/swing/plaf/basic/BasicButtonUI.java11
-rw-r--r--libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java2
-rw-r--r--libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java1
-rw-r--r--libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java1
-rw-r--r--libjava/javax/swing/plaf/basic/BasicComboBoxUI.java26
-rw-r--r--libjava/javax/swing/plaf/basic/BasicComboPopup.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java8
-rw-r--r--libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicLabelUI.java12
-rw-r--r--libjava/javax/swing/plaf/basic/BasicListUI.java2
-rw-r--r--libjava/javax/swing/plaf/basic/BasicLookAndFeel.java2
-rw-r--r--libjava/javax/swing/plaf/basic/BasicMenuBarUI.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicMenuItemUI.java8
-rw-r--r--libjava/javax/swing/plaf/basic/BasicMenuUI.java10
-rw-r--r--libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java20
-rw-r--r--libjava/javax/swing/plaf/basic/BasicProgressBarUI.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java8
-rw-r--r--libjava/javax/swing/plaf/basic/BasicRootPaneUI.java18
-rw-r--r--libjava/javax/swing/plaf/basic/BasicScrollBarUI.java6
-rw-r--r--libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java60
-rw-r--r--libjava/javax/swing/plaf/basic/BasicSliderUI.java132
-rw-r--r--libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java1
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java16
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java4
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTableUI.java43
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTextPaneUI.java11
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTextUI.java34
-rw-r--r--libjava/javax/swing/plaf/basic/BasicToolBarUI.java259
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTreeUI.java5
-rw-r--r--libjava/javax/swing/plaf/metal/MetalLookAndFeel.java288
-rw-r--r--libjava/javax/swing/table/DefaultTableCellRenderer.java6
-rw-r--r--libjava/javax/swing/table/DefaultTableColumnModel.java370
-rw-r--r--libjava/javax/swing/table/DefaultTableModel.java367
-rw-r--r--libjava/javax/swing/table/JTableHeader.java14
-rw-r--r--libjava/javax/swing/table/TableColumn.java377
-rw-r--r--libjava/javax/swing/table/TableColumnModel.java198
-rw-r--r--libjava/javax/swing/table/TableModel.java152
-rw-r--r--libjava/javax/swing/text/AbstractDocument.java163
-rw-r--r--libjava/javax/swing/text/DefaultEditorKit.java77
-rw-r--r--libjava/javax/swing/text/EditorKit.java20
-rw-r--r--libjava/javax/swing/text/GapContent.java2
-rw-r--r--libjava/javax/swing/text/JTextComponent.java168
-rw-r--r--libjava/javax/swing/text/PasswordView.java32
-rw-r--r--libjava/javax/swing/text/PlainDocument.java36
-rw-r--r--libjava/javax/swing/text/PlainView.java26
-rw-r--r--libjava/javax/swing/text/Position.java8
-rw-r--r--libjava/javax/swing/text/Segment.java12
-rw-r--r--libjava/javax/swing/text/StyledEditorKit.java522
-rw-r--r--libjava/javax/swing/text/TextAction.java69
-rw-r--r--libjava/javax/swing/text/Utilities.java4
-rw-r--r--libjava/javax/swing/text/View.java153
-rw-r--r--libjava/javax/swing/text/ViewFactory.java2
-rw-r--r--libjava/javax/swing/tree/DefaultMutableTreeNode.java1865
-rw-r--r--libjava/javax/swing/tree/MutableTreeNode.java103
-rw-r--r--libjava/javax/swing/tree/TreeCellEditor.java30
-rw-r--r--libjava/javax/swing/undo/UndoManager.java4
-rw-r--r--libjava/javax/swing/undo/UndoableEditSupport.java6
-rw-r--r--libjava/javax/transaction/HeuristicCommitException.java4
-rw-r--r--libjava/javax/transaction/HeuristicMixedException.java4
-rw-r--r--libjava/javax/transaction/HeuristicRollbackException.java4
-rw-r--r--libjava/javax/transaction/InvalidTransactionException.java4
-rw-r--r--libjava/javax/transaction/NotSupportedException.java4
-rw-r--r--libjava/javax/transaction/RollbackException.java4
-rw-r--r--libjava/javax/transaction/Status.java4
-rw-r--r--libjava/javax/transaction/Synchronization.java4
-rw-r--r--libjava/javax/transaction/SystemException.java4
-rw-r--r--libjava/javax/transaction/Transaction.java4
-rw-r--r--libjava/javax/transaction/TransactionManager.java4
-rw-r--r--libjava/javax/transaction/TransactionRequiredException.java4
-rw-r--r--libjava/javax/transaction/TransactionRolledbackException.java4
-rw-r--r--libjava/javax/transaction/UserTransaction.java4
-rw-r--r--libjava/javax/transaction/xa/XAException.java4
-rw-r--r--libjava/javax/transaction/xa/XAResource.java4
-rw-r--r--libjava/javax/transaction/xa/Xid.java4
-rw-r--r--libjava/javax/xml/XMLConstants.java4
-rw-r--r--libjava/javax/xml/datatype/DatatypeConfigurationException.java4
-rw-r--r--libjava/javax/xml/datatype/DatatypeConstants.java4
-rw-r--r--libjava/javax/xml/datatype/DatatypeFactory.java4
-rw-r--r--libjava/javax/xml/datatype/Duration.java4
-rw-r--r--libjava/javax/xml/datatype/XMLGregorianCalendar.java4
-rw-r--r--libjava/javax/xml/namespace/NamespaceContext.java4
-rw-r--r--libjava/javax/xml/namespace/QName.java4
-rw-r--r--libjava/javax/xml/parsers/DocumentBuilder.java5
-rw-r--r--libjava/javax/xml/parsers/DocumentBuilderFactory.java7
-rw-r--r--libjava/javax/xml/parsers/FactoryConfigurationError.java4
-rw-r--r--libjava/javax/xml/parsers/ParserConfigurationException.java4
-rw-r--r--libjava/javax/xml/parsers/SAXParser.java4
-rw-r--r--libjava/javax/xml/parsers/SAXParserFactory.java4
-rw-r--r--libjava/javax/xml/transform/ErrorListener.java4
-rw-r--r--libjava/javax/xml/transform/OutputKeys.java4
-rw-r--r--libjava/javax/xml/transform/Result.java4
-rw-r--r--libjava/javax/xml/transform/Source.java4
-rw-r--r--libjava/javax/xml/transform/SourceLocator.java4
-rw-r--r--libjava/javax/xml/transform/Templates.java4
-rw-r--r--libjava/javax/xml/transform/Transformer.java4
-rw-r--r--libjava/javax/xml/transform/TransformerConfigurationException.java4
-rw-r--r--libjava/javax/xml/transform/TransformerException.java4
-rw-r--r--libjava/javax/xml/transform/TransformerFactory.java4
-rw-r--r--libjava/javax/xml/transform/TransformerFactoryConfigurationError.java4
-rw-r--r--libjava/javax/xml/transform/URIResolver.java4
-rw-r--r--libjava/javax/xml/transform/dom/DOMLocator.java4
-rw-r--r--libjava/javax/xml/transform/dom/DOMResult.java4
-rw-r--r--libjava/javax/xml/transform/dom/DOMSource.java4
-rw-r--r--libjava/javax/xml/transform/sax/SAXResult.java4
-rw-r--r--libjava/javax/xml/transform/sax/SAXSource.java4
-rw-r--r--libjava/javax/xml/transform/sax/SAXTransformerFactory.java7
-rw-r--r--libjava/javax/xml/transform/sax/TemplatesHandler.java4
-rw-r--r--libjava/javax/xml/transform/sax/TransformerHandler.java4
-rw-r--r--libjava/javax/xml/transform/stream/StreamResult.java4
-rw-r--r--libjava/javax/xml/transform/stream/StreamSource.java4
-rw-r--r--libjava/javax/xml/validation/Schema.java4
-rw-r--r--libjava/javax/xml/validation/SchemaFactory.java4
-rw-r--r--libjava/javax/xml/validation/TypeInfoProvider.java4
-rw-r--r--libjava/javax/xml/validation/Validator.java4
-rw-r--r--libjava/javax/xml/validation/ValidatorHandler.java4
-rw-r--r--libjava/javax/xml/xpath/XPathConstants.java4
-rw-r--r--libjava/javax/xml/xpath/XPathException.java4
-rw-r--r--libjava/javax/xml/xpath/XPathExpression.java4
-rw-r--r--libjava/javax/xml/xpath/XPathExpressionException.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFactory.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFactoryConfigurationException.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFunction.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFunctionException.java4
-rw-r--r--libjava/javax/xml/xpath/XPathFunctionResolver.java4
297 files changed, 8729 insertions, 5133 deletions
diff --git a/libjava/javax/accessibility/Accessible.java b/libjava/javax/accessibility/Accessible.java
index 1c407a682f5..e26cf850cb9 100644
--- a/libjava/javax/accessibility/Accessible.java
+++ b/libjava/javax/accessibility/Accessible.java
@@ -1,5 +1,5 @@
/* Accessible.java -- primary Java accessibility interface
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ package javax.accessibility;
* for the Accessibility API which must be implemented by all user
* interface components.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleAction.java b/libjava/javax/accessibility/AccessibleAction.java
index b05883aa98c..b65fb96a4e4 100644
--- a/libjava/javax/accessibility/AccessibleAction.java
+++ b/libjava/javax/accessibility/AccessibleAction.java
@@ -1,5 +1,5 @@
/* AccessibleAction.java -- aids in accessibly performing actions
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleAction()</code> method should
* return <code>null</code> if an object does not implement this interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleAction()
diff --git a/libjava/javax/accessibility/AccessibleBundle.java b/libjava/javax/accessibility/AccessibleBundle.java
index 11b9cb38efa..de806709615 100644
--- a/libjava/javax/accessibility/AccessibleBundle.java
+++ b/libjava/javax/accessibility/AccessibleBundle.java
@@ -1,5 +1,5 @@
/* AccessibleBundle.java -- base class for accessibility "enumerations"
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.Locale;
* objects are strongly typed; to make up for the lack of true enums in Java.
* Display should be locale dependent.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AccessibleRole
* @see AccessibleState
* @since 1.2
diff --git a/libjava/javax/accessibility/AccessibleComponent.java b/libjava/javax/accessibility/AccessibleComponent.java
index 7634eb5ba93..e57d84a2f55 100644
--- a/libjava/javax/accessibility/AccessibleComponent.java
+++ b/libjava/javax/accessibility/AccessibleComponent.java
@@ -1,5 +1,5 @@
/* AccessibleComponent.java -- aids in accessibly rendering Java components
- Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -56,7 +56,7 @@ import java.awt.event.FocusListener;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleComponent()
diff --git a/libjava/javax/accessibility/AccessibleContext.java b/libjava/javax/accessibility/AccessibleContext.java
index 18679d4a4f5..582bd28e926 100644
--- a/libjava/javax/accessibility/AccessibleContext.java
+++ b/libjava/javax/accessibility/AccessibleContext.java
@@ -55,7 +55,7 @@ import java.util.Locale;
* <li>{@link AccessibleValue} - the object represents a numerical value</li>
* </ul>
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleEditableText.java b/libjava/javax/accessibility/AccessibleEditableText.java
index e1ffb617a2f..ae1ef23f8cc 100644
--- a/libjava/javax/accessibility/AccessibleEditableText.java
+++ b/libjava/javax/accessibility/AccessibleEditableText.java
@@ -1,5 +1,5 @@
/* AccessibleEditableText.java -- aids in accessibly for editable text
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ import javax.swing.text.AttributeSet;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleText()
diff --git a/libjava/javax/accessibility/AccessibleExtendedComponent.java b/libjava/javax/accessibility/AccessibleExtendedComponent.java
index d57de19745f..230c73972df 100644
--- a/libjava/javax/accessibility/AccessibleExtendedComponent.java
+++ b/libjava/javax/accessibility/AccessibleExtendedComponent.java
@@ -1,5 +1,5 @@
/* AccessibleExtendedComponent.java -- aids in extended component access
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleComponent()</code> method
* should return an instance of this interface only when it is supported.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleComponent()
diff --git a/libjava/javax/accessibility/AccessibleExtendedTable.java b/libjava/javax/accessibility/AccessibleExtendedTable.java
index 627b0242825..f7c237db6b4 100644
--- a/libjava/javax/accessibility/AccessibleExtendedTable.java
+++ b/libjava/javax/accessibility/AccessibleExtendedTable.java
@@ -1,5 +1,5 @@
/* AccessibleExtendedTable.java -- aids in extended table access
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleTable()</code> method
* should return an instance of this interface only when it is supported.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleTable()
diff --git a/libjava/javax/accessibility/AccessibleHyperlink.java b/libjava/javax/accessibility/AccessibleHyperlink.java
index 0503f2a14ef..663f30af017 100644
--- a/libjava/javax/accessibility/AccessibleHyperlink.java
+++ b/libjava/javax/accessibility/AccessibleHyperlink.java
@@ -1,5 +1,5 @@
/* AccessibleHyperlink.java -- aids in accessibly navigating hypertext
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.accessibility;
/**
* This object encapsulates actions associated with navigating hypertext.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleText
diff --git a/libjava/javax/accessibility/AccessibleHypertext.java b/libjava/javax/accessibility/AccessibleHypertext.java
index ae0d150bd02..b10fb9af115 100644
--- a/libjava/javax/accessibility/AccessibleHypertext.java
+++ b/libjava/javax/accessibility/AccessibleHypertext.java
@@ -1,5 +1,5 @@
/* AccessibleHypertext.java -- aids in accessibly rendering hypertext
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleText()</code> method
* should return an instance of this interface only when it is supported.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleText
diff --git a/libjava/javax/accessibility/AccessibleIcon.java b/libjava/javax/accessibility/AccessibleIcon.java
index c13b14009b9..b1e5dde41f5 100644
--- a/libjava/javax/accessibility/AccessibleIcon.java
+++ b/libjava/javax/accessibility/AccessibleIcon.java
@@ -1,5 +1,5 @@
/* AccessibleIcon.java -- aids in accessibly rendering icons
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleIcon()</code> method should
* return <code>null</code> if an object does not implement this interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleIcon()
diff --git a/libjava/javax/accessibility/AccessibleKeyBinding.java b/libjava/javax/accessibility/AccessibleKeyBinding.java
index 777f8b734d6..16d7e36e594 100644
--- a/libjava/javax/accessibility/AccessibleKeyBinding.java
+++ b/libjava/javax/accessibility/AccessibleKeyBinding.java
@@ -1,5 +1,5 @@
/* AccessibleKeyBinding.java -- aids in using keyboard navigation
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ package javax.accessibility;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleKeyBinding()
diff --git a/libjava/javax/accessibility/AccessibleRelation.java b/libjava/javax/accessibility/AccessibleRelation.java
index 68f1f646a59..d77a90a3d36 100644
--- a/libjava/javax/accessibility/AccessibleRelation.java
+++ b/libjava/javax/accessibility/AccessibleRelation.java
@@ -44,7 +44,7 @@ package javax.accessibility;
* supports localized strings. If the constants of this class are not
* adequate, new ones may be added in a similar matter.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleRelationSet.java b/libjava/javax/accessibility/AccessibleRelationSet.java
index 27dc58da3c3..767aa0647bb 100644
--- a/libjava/javax/accessibility/AccessibleRelationSet.java
+++ b/libjava/javax/accessibility/AccessibleRelationSet.java
@@ -43,7 +43,7 @@ import java.util.Vector;
* Describes all relations of an accessible object. For example, an object
* by labeled by one object and control another.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AccessibleRelation
* @since 1.2
* @status updated to 1.4
diff --git a/libjava/javax/accessibility/AccessibleResourceBundle.java b/libjava/javax/accessibility/AccessibleResourceBundle.java
index 01c2bcfdf98..b34dd73b09f 100644
--- a/libjava/javax/accessibility/AccessibleResourceBundle.java
+++ b/libjava/javax/accessibility/AccessibleResourceBundle.java
@@ -1,5 +1,5 @@
/* AccessibleResourceBundle.java -- deprecated class
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.ListResourceBundle;
* This class is deprecated. It once was used for localizing accessibility
* strings, and was never meant for external use anyway.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AccessibleBundle.toDisplayString(String, Locale)
* @since 1.2
* @deprecated this class is no longer used
diff --git a/libjava/javax/accessibility/AccessibleRole.java b/libjava/javax/accessibility/AccessibleRole.java
index 86bfa6d382d..34f75602b14 100644
--- a/libjava/javax/accessibility/AccessibleRole.java
+++ b/libjava/javax/accessibility/AccessibleRole.java
@@ -43,7 +43,7 @@ package javax.accessibility;
* the constants of this class are not adequate, new ones may be added in a
* similar matter, while avoiding a public constructor.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleSelection.java b/libjava/javax/accessibility/AccessibleSelection.java
index d1e8c7c2a46..ad52ebc7365 100644
--- a/libjava/javax/accessibility/AccessibleSelection.java
+++ b/libjava/javax/accessibility/AccessibleSelection.java
@@ -1,5 +1,5 @@
/* AccessibleSelection.java -- aids in accessibly selecting components
- Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,7 +46,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleSelection()</code> method should
* return <code>null</code> if an object does not implement this interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleSelection()
diff --git a/libjava/javax/accessibility/AccessibleState.java b/libjava/javax/accessibility/AccessibleState.java
index 24005ae9a6e..74e5d08a0f4 100644
--- a/libjava/javax/accessibility/AccessibleState.java
+++ b/libjava/javax/accessibility/AccessibleState.java
@@ -44,7 +44,7 @@ package javax.accessibility;
* localized strings. If the constants of this class are not adequate, new
* ones may be added in a similar matter, while avoiding a public constructor.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @since 1.2
* @status updated to 1.4
*/
diff --git a/libjava/javax/accessibility/AccessibleStateSet.java b/libjava/javax/accessibility/AccessibleStateSet.java
index e1b112abf79..06218f3f95b 100644
--- a/libjava/javax/accessibility/AccessibleStateSet.java
+++ b/libjava/javax/accessibility/AccessibleStateSet.java
@@ -43,7 +43,7 @@ import java.util.Vector;
* Describes all elements of an accessible object's state. For example, an
* object may be enabled and have focus.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see AccessibleState
* @since 1.2
* @status updated to 1.4
diff --git a/libjava/javax/accessibility/AccessibleTable.java b/libjava/javax/accessibility/AccessibleTable.java
index 4fd58c5a237..c008f455ed1 100644
--- a/libjava/javax/accessibility/AccessibleTable.java
+++ b/libjava/javax/accessibility/AccessibleTable.java
@@ -1,5 +1,5 @@
/* AccessibleTable.java -- aids in accessibly manipulating tables
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package javax.accessibility;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleTable()
diff --git a/libjava/javax/accessibility/AccessibleTableModelChange.java b/libjava/javax/accessibility/AccessibleTableModelChange.java
index 9cff7bfa749..0001a612a33 100644
--- a/libjava/javax/accessibility/AccessibleTableModelChange.java
+++ b/libjava/javax/accessibility/AccessibleTableModelChange.java
@@ -1,5 +1,5 @@
/* AccessibleTableModelChange.java -- describes change to an accessible table
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ package javax.accessibility;
* the implementations of this interface to update their state after a
* change to a table.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleTable()
diff --git a/libjava/javax/accessibility/AccessibleText.java b/libjava/javax/accessibility/AccessibleText.java
index 7c3d9a9ccd6..cffabe4545d 100644
--- a/libjava/javax/accessibility/AccessibleText.java
+++ b/libjava/javax/accessibility/AccessibleText.java
@@ -1,5 +1,5 @@
/* AccessibleText.java -- aids in accessibly manipulating text
- Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -52,7 +52,7 @@ import javax.swing.text.AttributeSet;
* should return <code>null</code> if an object does not implement this
* interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleText()
diff --git a/libjava/javax/accessibility/AccessibleValue.java b/libjava/javax/accessibility/AccessibleValue.java
index 69da5c8a4eb..a58e9ed1d57 100644
--- a/libjava/javax/accessibility/AccessibleValue.java
+++ b/libjava/javax/accessibility/AccessibleValue.java
@@ -1,5 +1,5 @@
/* AccessibleValue.java -- aids in accessibly controlling values
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package javax.accessibility;
* <p>The <code>AccessibleContext.getAccessibleValue()</code> method should
* return <code>null</code> if an object does not implement this interface.
*
- * @author Eric Blake <ebb9@email.byu.edu>
+ * @author Eric Blake (ebb9@email.byu.edu)
* @see Accessible
* @see AccessibleContext
* @see AccessibleContext#getAccessibleValue()
diff --git a/libjava/javax/crypto/SecretKey.java b/libjava/javax/crypto/SecretKey.java
index ce7057e7092..3865db4a6d1 100644
--- a/libjava/javax/crypto/SecretKey.java
+++ b/libjava/javax/crypto/SecretKey.java
@@ -61,4 +61,5 @@ import java.security.Key;
*/
public interface SecretKey extends Key
{
+ long serialVersionUID = -4795878709595146952L;
}
diff --git a/libjava/javax/imageio/IIOException.java b/libjava/javax/imageio/IIOException.java
index 5b743963a95..490c8c555c9 100644
--- a/libjava/javax/imageio/IIOException.java
+++ b/libjava/javax/imageio/IIOException.java
@@ -1,5 +1,5 @@
/* IIOException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ import java.io.IOException;
/**
- * @author Michael Koch <konqueror@gmx.de>
+ * @author Michael Koch (konqueror@gmx.de)
*/
public class IIOException extends IOException
{
diff --git a/libjava/javax/imageio/IIOParam.java b/libjava/javax/imageio/IIOParam.java
index bbab1cf79f6..1a59123995f 100644
--- a/libjava/javax/imageio/IIOParam.java
+++ b/libjava/javax/imageio/IIOParam.java
@@ -141,6 +141,11 @@ public abstract class IIOParam
this.destinationOffset = destinationOffset;
}
+ public void setSourceBands(int[] sourceBands)
+ {
+ this.sourceBands = sourceBands;
+ }
+
public void setSourceRegion(Rectangle sourceRegion)
{
if (sourceRegion != null
@@ -154,4 +159,13 @@ public abstract class IIOParam
this.sourceRegion = sourceRegion;
}
+
+ public void setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling,
+ int subsamplingXOffset, int subsamplingYOffset)
+ {
+ this.sourceXSubsampling = sourceXSubsampling;
+ this.sourceYSubsampling = sourceYSubsampling;
+ this.subsamplingXOffset = subsamplingXOffset;
+ this.subsamplingYOffset = subsamplingYOffset;
+ }
}
diff --git a/libjava/javax/imageio/ImageIO.java b/libjava/javax/imageio/ImageIO.java
index 6aa5558919c..7afb7207a79 100644
--- a/libjava/javax/imageio/ImageIO.java
+++ b/libjava/javax/imageio/ImageIO.java
@@ -1,5 +1,5 @@
/* ImageIO.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,8 +38,15 @@ exception statement from your version. */
package javax.imageio;
+import java.awt.image.BufferedImage;
+import java.awt.image.RenderedImage;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -48,6 +55,10 @@ import javax.imageio.spi.IIORegistry;
import javax.imageio.spi.ImageReaderSpi;
import javax.imageio.spi.ImageWriterSpi;
import javax.imageio.spi.ServiceRegistry;
+import javax.imageio.stream.ImageInputStream;
+import javax.imageio.stream.ImageOutputStream;
+import javax.imageio.stream.MemoryCacheImageInputStream;
+import javax.imageio.stream.MemoryCacheImageOutputStream;
public final class ImageIO
{
@@ -142,14 +153,14 @@ public final class ImageIO
public boolean filter(Object provider)
{
- if (provider instanceof ImageReaderSpi)
+ if (provider instanceof ImageWriterSpi)
{
- ImageReaderSpi spi = (ImageReaderSpi) provider;
+ ImageWriterSpi spi = (ImageWriterSpi) provider;
String[] formatNames = spi.getFormatNames();
for (int i = formatNames.length - 1; i >= 0; --i)
- if (formatName.equals(formatNames[i]))
- return true;
+ if (formatName.equals(formatNames[i]))
+ return true;
}
return false;
@@ -167,7 +178,7 @@ public final class ImageIO
public boolean filter(Object provider)
{
- if (provider instanceof ImageReaderSpi)
+ if (provider instanceof ImageWriterSpi)
{
ImageWriterSpi spi = (ImageWriterSpi) provider;
String[] mimetypes = spi.getMIMETypes();
@@ -192,7 +203,7 @@ public final class ImageIO
public boolean filter(Object provider)
{
- if (provider instanceof ImageReaderSpi)
+ if (provider instanceof ImageWriterSpi)
{
ImageWriterSpi spi = (ImageWriterSpi) provider;
String[] suffixes = spi.getFileSuffixes();
@@ -209,10 +220,12 @@ public final class ImageIO
private static final class ImageReaderIterator implements Iterator
{
Iterator it;
+ Object readerExtension;
- public ImageReaderIterator(Iterator it)
+ public ImageReaderIterator(Iterator it, Object readerExtension)
{
this.it = it;
+ this.readerExtension = readerExtension;
}
public boolean hasNext()
@@ -224,7 +237,7 @@ public final class ImageIO
{
try
{
- return ((ImageReaderSpi) it.next()).createReaderInstance();
+ return ((ImageReaderSpi) it.next()).createReaderInstance(readerExtension);
}
catch (IOException e)
{
@@ -241,10 +254,12 @@ public final class ImageIO
private static final class ImageWriterIterator implements Iterator
{
Iterator it;
+ Object writerExtension;
- public ImageWriterIterator(Iterator it)
+ public ImageWriterIterator(Iterator it, Object writerExtension)
{
this.it = it;
+ this.writerExtension = writerExtension;
}
public boolean hasNext()
@@ -256,7 +271,7 @@ public final class ImageIO
{
try
{
- return ((ImageWriterSpi) it.next()).createWriterInstance();
+ return ((ImageWriterSpi) it.next()).createWriterInstance(writerExtension);
}
catch (IOException e)
{
@@ -274,12 +289,13 @@ public final class ImageIO
private static boolean useCache = true;
private static Iterator getReadersByFilter(Class type,
- ServiceRegistry.Filter filter)
+ ServiceRegistry.Filter filter,
+ Object readerExtension)
{
try
{
Iterator it = getRegistry().getServiceProviders(type, filter, true);
- return new ImageReaderIterator(it);
+ return new ImageReaderIterator(it, readerExtension);
}
catch (IllegalArgumentException e)
{
@@ -288,12 +304,13 @@ public final class ImageIO
}
private static Iterator getWritersByFilter(Class type,
- ServiceRegistry.Filter filter)
+ ServiceRegistry.Filter filter,
+ Object writerExtension)
{
try
{
Iterator it = getRegistry().getServiceProviders(type, filter, true);
- return new ImageWriterIterator(it);
+ return new ImageWriterIterator(it, writerExtension);
}
catch (IllegalArgumentException e)
{
@@ -312,7 +329,8 @@ public final class ImageIO
throw new IllegalArgumentException("formatName may not be null");
return getReadersByFilter(ImageReaderSpi.class,
- new ReaderFormatFilter(formatName));
+ new ReaderFormatFilter(formatName),
+ formatName);
}
public static Iterator getImageReadersByMIMEType(String MIMEType)
@@ -321,7 +339,8 @@ public final class ImageIO
throw new IllegalArgumentException("MIMEType may not be null");
return getReadersByFilter(ImageReaderSpi.class,
- new ReaderMIMETypeFilter(MIMEType));
+ new ReaderMIMETypeFilter(MIMEType),
+ MIMEType);
}
public static Iterator getImageReadersBySuffix(String fileSuffix)
@@ -330,7 +349,8 @@ public final class ImageIO
throw new IllegalArgumentException("formatName may not be null");
return getReadersByFilter(ImageReaderSpi.class,
- new ReaderSuffixFilter(fileSuffix));
+ new ReaderSuffixFilter(fileSuffix),
+ fileSuffix);
}
public static Iterator getImageWritersByFormatName(String formatName)
@@ -339,7 +359,8 @@ public final class ImageIO
throw new IllegalArgumentException("formatName may not be null");
return getWritersByFilter(ImageWriterSpi.class,
- new WriterFormatFilter(formatName));
+ new WriterFormatFilter(formatName),
+ formatName);
}
public static Iterator getImageWritersByMIMEType(String MIMEType)
@@ -348,7 +369,8 @@ public final class ImageIO
throw new IllegalArgumentException("MIMEType may not be null");
return getWritersByFilter(ImageWriterSpi.class,
- new WriterMIMETypeFilter(MIMEType));
+ new WriterMIMETypeFilter(MIMEType),
+ MIMEType);
}
public static Iterator getImageWritersBySuffix(String fileSuffix)
@@ -357,7 +379,8 @@ public final class ImageIO
throw new IllegalArgumentException("fileSuffix may not be null");
return getWritersByFilter(ImageWriterSpi.class,
- new WriterSuffixFilter(fileSuffix));
+ new WriterSuffixFilter(fileSuffix),
+ fileSuffix);
}
public static String[] getReaderFormatNames()
@@ -496,4 +519,87 @@ public final class ImageIO
{
ImageIO.useCache = useCache;
}
+
+ /*
+ * "Standard" simplified entry points.
+ */
+
+ public static boolean write(RenderedImage im,
+ String formatName,
+ File output)
+ throws IOException
+ {
+ return write(im, formatName, new FileOutputStream(output));
+ }
+
+ public static boolean write(RenderedImage im,
+ String formatName,
+ OutputStream output)
+ throws IOException
+ {
+ return write(im, formatName, new MemoryCacheImageOutputStream(output));
+ }
+
+
+ public static boolean write(RenderedImage im,
+ String formatName,
+ ImageOutputStream output)
+ throws IOException
+ {
+ Iterator writers = getImageWritersByFormatName(formatName);
+ IIOImage img = new IIOImage(im, null, null);
+ while (writers.hasNext())
+ {
+ ImageWriter w = (ImageWriter) writers.next();
+ try
+ {
+ w.setOutput(output);
+ }
+ catch (IllegalArgumentException e)
+ {
+ continue;
+ }
+
+ w.write(null, img, null);
+ output.close();
+ return true;
+ }
+ return false;
+ }
+
+ public static BufferedImage read(ImageInputStream stream)
+ throws IOException
+ {
+ Iterator providers = getRegistry().getServiceProviders(ImageReaderSpi.class, true);
+ while (providers.hasNext())
+ {
+ ImageReaderSpi spi = (ImageReaderSpi) providers.next();
+ if (spi.canDecodeInput(stream))
+ {
+ ImageReader reader = spi.createReaderInstance();
+ reader.setInput(stream);
+ return reader.read(0, null);
+ }
+ }
+ return null;
+ }
+
+ public static BufferedImage read(URL input)
+ throws IOException
+ {
+ return read(input.openStream());
+ }
+
+ public static BufferedImage read(InputStream input)
+ throws IOException
+ {
+ return read(new MemoryCacheImageInputStream(input));
+ }
+
+ public static BufferedImage read(File input)
+ throws IOException
+ {
+ return read(new FileInputStream(input));
+ }
+
}
diff --git a/libjava/javax/imageio/ImageReadParam.java b/libjava/javax/imageio/ImageReadParam.java
index e5414bda17e..4192c563b14 100644
--- a/libjava/javax/imageio/ImageReadParam.java
+++ b/libjava/javax/imageio/ImageReadParam.java
@@ -94,6 +94,22 @@ public class ImageReadParam extends IIOParam
{
return sourceRenderSize;
}
+
+ public void setDestination(BufferedImage destination)
+ {
+ this.destination = destination;
+ }
+
+ public void setDestinationBands(int[] destinationBands)
+ {
+ this.destinationBands = destinationBands;
+ }
+
+ public void setSourceProgressivePasses(int minPass, int numPasses)
+ {
+ this.minProgressivePass = minPass;
+ this.numProgressivePasses = numPasses;
+ }
public void setSourceRenderSize(Dimension size)
throws UnsupportedOperationException
diff --git a/libjava/javax/imageio/ImageReader.java b/libjava/javax/imageio/ImageReader.java
index 91cb53cd8b4..6e5a1b2d87e 100644
--- a/libjava/javax/imageio/ImageReader.java
+++ b/libjava/javax/imageio/ImageReader.java
@@ -51,6 +51,7 @@ import javax.imageio.event.IIOReadUpdateListener;
import javax.imageio.event.IIOReadWarningListener;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.spi.ImageReaderSpi;
+import javax.imageio.stream.ImageInputStream;
public abstract class ImageReader
{
@@ -62,7 +63,7 @@ public abstract class ImageReader
protected Locale locale;
protected int minIndex;
protected ImageReaderSpi originatingProvider;
- protected List progressListeners;
+ protected List progressListeners = new ArrayList();
protected boolean seekForwardOnly;
protected List updateListeners = new ArrayList();
protected List warningListeners = new ArrayList();
@@ -156,6 +157,42 @@ public abstract class ImageReader
public abstract Iterator getImageTypes(int imageIndex)
throws IOException;
+ public void setInput(Object input,
+ boolean seekForwardOnly,
+ boolean ignoreMetadata)
+ {
+ Class[] okClasses = originatingProvider.getInputTypes();
+ if (okClasses == null)
+ {
+ if (!(input instanceof ImageInputStream))
+ throw new IllegalArgumentException();
+ }
+ else
+ {
+ boolean classOk = false;
+ for (int i = 0; i < okClasses.length; ++i)
+ if (okClasses[i].isInstance(input))
+ classOk = true;
+ if (!classOk)
+ throw new IllegalArgumentException();
+ }
+
+ this.input = input;
+ this.seekForwardOnly = seekForwardOnly;
+ this.ignoreMetadata = ignoreMetadata;
+ this.minIndex = 0;
+ }
+
+ public void setInput(Object in, boolean seekForwardOnly)
+ {
+ setInput(in, seekForwardOnly, false);
+ }
+
+ public void setInput(Object in)
+ {
+ setInput(in, false, false);
+ }
+
public Object getInput()
{
return input;
diff --git a/libjava/javax/imageio/ImageWriter.java b/libjava/javax/imageio/ImageWriter.java
index 64466b151f0..389ca4360a7 100644
--- a/libjava/javax/imageio/ImageWriter.java
+++ b/libjava/javax/imageio/ImageWriter.java
@@ -40,6 +40,7 @@ package javax.imageio;
import java.awt.Dimension;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@@ -59,9 +60,9 @@ public abstract class ImageWriter
protected Locale locale;
protected ImageWriterSpi originatingProvider;
protected Object output;
- protected List progressListeners;
- protected List warningListeners;
- protected List warningLocales;
+ protected List progressListeners = new ArrayList();
+ protected List warningListeners = new ArrayList();
+ protected List warningLocales = new ArrayList();
protected ImageWriter(ImageWriterSpi originatingProvider)
{
@@ -371,11 +372,11 @@ public abstract class ImageWriter
if (originatingProvider != null)
types = originatingProvider.getOutputTypes();
-
+
if (types != null)
for (int i = types.length - 1; i >= 0; --i)
- if (types[i].equals(output.getClass()))
- found = true;
+ if (types[i].isInstance(output))
+ found = true;
if (! found)
throw new IllegalArgumentException("output type not available");
diff --git a/libjava/javax/imageio/metadata/IIOInvalidTreeException.java b/libjava/javax/imageio/metadata/IIOInvalidTreeException.java
index c3ce42482c6..af84f0732c2 100644
--- a/libjava/javax/imageio/metadata/IIOInvalidTreeException.java
+++ b/libjava/javax/imageio/metadata/IIOInvalidTreeException.java
@@ -40,23 +40,28 @@ package javax.imageio.metadata;
import javax.imageio.IIOException;
+import org.w3c.dom.Node;
+
public class IIOInvalidTreeException extends IIOException
{
- protected /*Node*/ Object offendingNode;
+ private static final long serialVersionUID = -1314083172544132777L;
+
+ protected Node offendingNode;
- public IIOInvalidTreeException(String message, /*Node*/ Object offendingNode)
+ public IIOInvalidTreeException(String message, Node offendingNode)
{
super(message);
this.offendingNode = offendingNode;
}
- public IIOInvalidTreeException(String message, Throwable cause, /*Node*/ Object offendingNode)
+ public IIOInvalidTreeException(String message, Throwable cause,
+ Node offendingNode)
{
super(message, cause);
this.offendingNode = offendingNode;
}
- public /*Node*/ Object getOffendingNode()
+ public Node getOffendingNode()
{
return offendingNode;
}
diff --git a/libjava/javax/imageio/metadata/IIOMetadataNode.java b/libjava/javax/imageio/metadata/IIOMetadataNode.java
index 3d1c7d26742..609db4d7823 100644
--- a/libjava/javax/imageio/metadata/IIOMetadataNode.java
+++ b/libjava/javax/imageio/metadata/IIOMetadataNode.java
@@ -38,6 +38,555 @@ exception statement from your version. */
package javax.imageio.metadata;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.TypeInfo;
+import org.w3c.dom.UserDataHandler;
+
public class IIOMetadataNode
+ implements Element, NodeList
{
+ private String name;
+ private HashMap attrs = new HashMap();
+ private List children = new ArrayList();
+ private IIOMetadataNode parent;
+ private Object obj;
+
+ public IIOMetadataNode()
+ {
+ // Do nothing here.
+ }
+
+ public IIOMetadataNode(String nodename)
+ {
+ name = nodename;
+ }
+
+ public Object getUserObject()
+ {
+ return obj;
+ }
+
+ public void setUserObject(Object o)
+ {
+ obj = o;
+ }
+
+ public short compareDocumentPosition(Node other)
+ throws DOMException
+ {
+ throw new Error("not implemented");
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#getAttribute(java.lang.String)
+ */
+ public String getAttribute(String name)
+ {
+ Attr anode = (Attr) attrs.get(name);
+ return anode != null ? anode.getValue() : null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#getAttributeNode(java.lang.String)
+ */
+ public Attr getAttributeNode(String name)
+ {
+ String val = getAttribute(name);
+ if (val != null)
+ return new IIOAttr(name, val, this);
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#getAttributeNodeNS(java.lang.String, java.lang.String)
+ */
+ public Attr getAttributeNodeNS(String namespaceURI, String localName)
+ {
+ return getAttributeNode(localName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#getAttributeNS(java.lang.String, java.lang.String)
+ */
+ public String getAttributeNS(String namespaceURI, String localName)
+ {
+ return getAttribute(localName);
+ }
+
+ public String getBaseURI()
+ {
+ throw new Error("not implemented");
+ }
+
+ // Recursive function for assembling a node list.
+ private void getElementsRecurse(IIONodeList list, String name)
+ {
+ for (int i=0; i < children.size(); i++)
+ {
+ if (((Node)children.get(i)).getNodeName().equals(name))
+ list.children.add(children.get(i));
+ getElementsRecurse(list, name);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#getElementsByTagName(java.lang.String)
+ */
+ public NodeList getElementsByTagName(String name)
+ {
+ IIONodeList list = new IIONodeList();
+ getElementsRecurse(list, name);
+ return list;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#getElementsByTagNameNS(java.lang.String, java.lang.String)
+ */
+ public NodeList getElementsByTagNameNS(String namespaceURI, String localName)
+ {
+ IIONodeList list = new IIONodeList();
+ getElementsRecurse(list, name);
+ return list;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#getTagName()
+ */
+ public String getTagName()
+ {
+ return name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#hasAttribute(java.lang.String)
+ */
+ public boolean hasAttribute(String name)
+ {
+ return attrs.containsKey(name);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#hasAttributeNS(java.lang.String, java.lang.String)
+ */
+ public boolean hasAttributeNS(String namespaceURI, String localName)
+ {
+ return attrs.containsKey(localName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#removeAttribute(java.lang.String)
+ */
+ public void removeAttribute(String name)
+ {
+ attrs.remove(name);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#removeAttributeNode(org.w3c.dom.Attr)
+ */
+ public Attr removeAttributeNode(Attr oldAttr)
+ {
+ return (Attr)attrs.remove(oldAttr.getName());
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#removeAttributeNS(java.lang.String, java.lang.String)
+ */
+ public void removeAttributeNS(String namespaceURI, String localName)
+ {
+ removeAttribute(localName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#setAttribute(java.lang.String, java.lang.String)
+ */
+ public void setAttribute(String name, String value)
+ {
+ Attr attr = (Attr) getAttributeNode(name);
+ if (attr != null)
+ attr.setValue(value);
+ else
+ attrs.put(name, new IIOAttr(name, value, this));
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#setAttributeNode(org.w3c.dom.Attr)
+ */
+ public Attr setAttributeNode(Attr newAttr)
+ {
+ return (Attr)attrs.put(newAttr.getName(), newAttr);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#setAttributeNodeNS(org.w3c.dom.Attr)
+ */
+ public Attr setAttributeNodeNS(Attr newAttr)
+ {
+ return (Attr)attrs.put(newAttr.getName(), newAttr);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Element#setAttributeNS(java.lang.String, java.lang.String, java.lang.String)
+ */
+ public void setAttributeNS(String namespaceURI, String qualifiedName, String value)
+ {
+ setAttribute(qualifiedName, value);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.NodeList#getLength()
+ */
+ public int getLength()
+ {
+ return children.size();
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.NodeList#item(int)
+ */
+ public Node item(int index)
+ {
+ if (index < children.size())
+ return (Node)children.get(index);
+ else
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#appendChild(org.w3c.dom.Node)
+ */
+ public Node appendChild(Node newChild)
+ {
+ if (newChild == null)
+ throw new IllegalArgumentException("Child node is null");
+
+ IIOMetadataNode child = (IIOMetadataNode) newChild;
+
+ children.add(child);
+ child.parent = this;
+ return this;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#cloneNode(boolean)
+ */
+ public Node cloneNode(boolean deep)
+ {
+ IIOMetadataNode newnode = new IIOMetadataNode(name);
+ newnode.parent = null;
+ newnode.obj = obj;
+ if (deep)
+ {
+ for (int i=0; i < children.size(); i++)
+ newnode.children.add(((Node)children.get(i)).cloneNode(deep));
+ }
+
+ // clone attrs
+ for (Iterator it = attrs.values().iterator(); it.hasNext();)
+ {
+ IIOAttr attr = (IIOAttr)it.next();
+ newnode.attrs.put(attr.name, attr.cloneNode(deep));
+ attr.owner = newnode;
+ }
+
+ return newnode;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getAttributes()
+ */
+ public NamedNodeMap getAttributes()
+ {
+ return new IIONamedNodeMap(attrs);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getChildNodes()
+ */
+ public NodeList getChildNodes()
+ {
+ return this;
+ }
+
+ public Object getFeature(String feature, String version)
+ {
+ throw new Error("not implemented");
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getFirstChild()
+ */
+ public Node getFirstChild()
+ {
+ return (children.size() > 0) ? (Node)children.get(0) : null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getLastChild()
+ */
+ public Node getLastChild()
+ {
+ return (children.size() > 0) ? (Node)children.get(children.size() - 1)
+ : null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getLocalName()
+ */
+ public String getLocalName()
+ {
+ return name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getNamespaceURI()
+ */
+ public String getNamespaceURI()
+ {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getNextSibling()
+ */
+ public Node getNextSibling()
+ {
+ // If this op needs to be faster, add links to prev and next nodes.
+ if (parent == null) return null;
+ int idx = parent.children.indexOf(this);
+ return (idx == parent.children.size() - 1) ? null
+ : (Node)parent.children.get(idx + 1);
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getNodeName()
+ */
+ public String getNodeName()
+ {
+ return name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getNodeType()
+ */
+ public short getNodeType()
+ {
+ return ELEMENT_NODE;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getNodeValue()
+ */
+ public String getNodeValue()
+ {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getOwnerDocument()
+ */
+ public Document getOwnerDocument()
+ {
+ // IOMetadataNodes have no owner
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getParentNode()
+ */
+ public Node getParentNode()
+ {
+ return parent;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getPrefix()
+ */
+ public String getPrefix()
+ {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#getPreviousSibling()
+ */
+ public Node getPreviousSibling()
+ {
+ // If this op needs to be faster, add links to prev and next nodes.
+ if (parent == null) return null;
+ int idx = parent.children.indexOf(this);
+ return (idx == 0) ? null
+ : (Node)parent.children.get(idx - 1);
+ }
+
+ public TypeInfo getSchemaTypeInfo()
+ {
+ throw new Error("not implemented");
+ }
+
+ public String getTextContent()
+ throws DOMException
+ {
+ throw new Error("not implemented");
+ }
+
+ public Object getUserData(String key)
+ {
+ throw new Error("not implemented");
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#hasAttributes()
+ */
+ public boolean hasAttributes()
+ {
+ return !attrs.isEmpty();
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#hasChildNodes()
+ */
+ public boolean hasChildNodes()
+ {
+ return !children.isEmpty();
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#insertBefore(org.w3c.dom.Node, org.w3c.dom.Node)
+ */
+ public Node insertBefore(Node newChild, Node refChild)
+ {
+ if (newChild == null)
+ throw new IllegalArgumentException();
+
+ int idx = children.indexOf(refChild);
+ if (idx == -1)
+ children.add(newChild);
+ else
+ children.add(idx, newChild);
+ ((IIOMetadataNode)newChild).parent = this;
+
+ return newChild;
+ }
+
+ public boolean isDefaultNamespace(String namespaceURI)
+ {
+ throw new Error("not implemented");
+ }
+
+ public boolean isEqualNode(Node arg)
+ {
+ throw new Error("not implemented");
+ }
+
+ public boolean isSameNode(Node other)
+ {
+ return this == other;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#isSupported(java.lang.String, java.lang.String)
+ */
+ public boolean isSupported(String feature, String version)
+ {
+ // No DOM features are supported
+ return false;
+ }
+
+ public String lookupNamespaceURI(String prefix)
+ {
+ throw new Error("not implemented");
+ }
+
+ public String lookupPrefix(String namespaceURI)
+ {
+ throw new Error("not implemented");
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#normalize()
+ */
+ public void normalize()
+ {
+ // No text nodes so no action
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#removeChild(org.w3c.dom.Node)
+ */
+ public Node removeChild(Node oldChild)
+ {
+ if (oldChild == null)
+ throw new IllegalArgumentException();
+ children.remove(oldChild);
+ ((IIOMetadataNode)oldChild).parent = null;
+
+ return oldChild;
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#replaceChild(org.w3c.dom.Node, org.w3c.dom.Node)
+ */
+ public Node replaceChild(Node newChild, Node oldChild)
+ {
+ if (newChild == null)
+ throw new IllegalArgumentException();
+ children.set(children.indexOf(oldChild), newChild);
+ ((IIOMetadataNode)oldChild).parent = null;
+ return oldChild;
+ }
+
+ public void setIdAttribute(String name, boolean isId)
+ throws DOMException
+ {
+ throw new Error("not implemented");
+ }
+
+ public void setIdAttributeNode(Attr idAttr, boolean isId)
+ throws DOMException
+ {
+ throw new Error("not implemented");
+ }
+
+ public void setIdAttributeNS(String namespaceURI, String localName, boolean isId)
+ throws DOMException
+ {
+ throw new Error("not implemented");
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#setNodeValue(java.lang.String)
+ */
+ public void setNodeValue(String nodeValue) throws DOMException
+ {
+ }
+
+ /* (non-Javadoc)
+ * @see org.w3c.dom.Node#setPrefix(java.lang.String)
+ */
+ public void setPrefix(String prefix)
+ {
+ }
+
+ public void setTextContent(String textContent)
+ throws DOMException
+ {
+ throw new Error("not implemented");
+ }
+
+ public Object setUserData(String key, Object data, UserDataHandler handler)
+ {
+ throw new Error("not implemented");
+ }
}
diff --git a/libjava/javax/imageio/spi/IIORegistry.java b/libjava/javax/imageio/spi/IIORegistry.java
index 7728cf428a3..6531fabca10 100644
--- a/libjava/javax/imageio/spi/IIORegistry.java
+++ b/libjava/javax/imageio/spi/IIORegistry.java
@@ -39,7 +39,9 @@ exception statement from your version. */
package javax.imageio.spi;
import gnu.classpath.ServiceFactory;
+import gnu.java.awt.ClasspathToolkit;
+import java.awt.Toolkit;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -52,8 +54,8 @@ public final class IIORegistry extends ServiceRegistry
static
{
- //defaultCategories.add(ImageReaderSpi.class);
- //defaultCategories.add(ImageWriterSpi.class);
+ defaultCategories.add(ImageReaderSpi.class);
+ defaultCategories.add(ImageWriterSpi.class);
defaultCategories.add(ImageTranscoderSpi.class);
defaultCategories.add(ImageInputStreamSpi.class);
defaultCategories.add(ImageOutputStreamSpi.class);
@@ -78,6 +80,8 @@ public final class IIORegistry extends ServiceRegistry
super(defaultCategories.iterator());
// XXX: Register built-in Spis here.
+
+ ((ClasspathToolkit)Toolkit.getDefaultToolkit()).registerImageIOSpis(this);
registerApplicationClasspathSpis();
}
diff --git a/libjava/javax/imageio/spi/IIOServiceProvider.java b/libjava/javax/imageio/spi/IIOServiceProvider.java
index bd0a449331c..a0d8b79bc54 100644
--- a/libjava/javax/imageio/spi/IIOServiceProvider.java
+++ b/libjava/javax/imageio/spi/IIOServiceProvider.java
@@ -1,5 +1,5 @@
/* IIOServiceProvider.java -- General service provider for image I/O.
- 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,7 @@ import java.util.Locale;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class IIOServiceProvider
implements RegisterableService
diff --git a/libjava/javax/imageio/spi/ImageInputStreamSpi.java b/libjava/javax/imageio/spi/ImageInputStreamSpi.java
index 6e33d1d392c..8679ed1f4d7 100644
--- a/libjava/javax/imageio/spi/ImageInputStreamSpi.java
+++ b/libjava/javax/imageio/spi/ImageInputStreamSpi.java
@@ -1,5 +1,5 @@
/* ImageInputStreamSpi.java -- Service provider for image input streams.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import javax.imageio.stream.ImageInputStream;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class ImageInputStreamSpi
extends IIOServiceProvider
diff --git a/libjava/javax/imageio/spi/ImageOutputStreamSpi.java b/libjava/javax/imageio/spi/ImageOutputStreamSpi.java
index 935aa7c6799..43781aa1112 100644
--- a/libjava/javax/imageio/spi/ImageOutputStreamSpi.java
+++ b/libjava/javax/imageio/spi/ImageOutputStreamSpi.java
@@ -1,5 +1,5 @@
/* ImageOutputStreamSpi.java -- Service provider for image output streams.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import javax.imageio.stream.ImageOutputStream;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class ImageOutputStreamSpi
extends IIOServiceProvider
diff --git a/libjava/javax/imageio/spi/ImageReaderWriterSpi.java b/libjava/javax/imageio/spi/ImageReaderWriterSpi.java
index 74dbb3859bb..9821adf88af 100644
--- a/libjava/javax/imageio/spi/ImageReaderWriterSpi.java
+++ b/libjava/javax/imageio/spi/ImageReaderWriterSpi.java
@@ -1,5 +1,5 @@
/* ImageReaderWriterSpi.java -- Superclass for image reader and writer spis.
- 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,7 @@ package javax.imageio.spi;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class ImageReaderWriterSpi
extends IIOServiceProvider
diff --git a/libjava/javax/imageio/spi/ImageTranscoderSpi.java b/libjava/javax/imageio/spi/ImageTranscoderSpi.java
index 85ca77d4639..d3a4d89b08e 100644
--- a/libjava/javax/imageio/spi/ImageTranscoderSpi.java
+++ b/libjava/javax/imageio/spi/ImageTranscoderSpi.java
@@ -1,5 +1,5 @@
/* ImageTranscoderSpi.java -- Factory for image metadata transcoders.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import javax.imageio.ImageTranscoder;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public abstract class ImageTranscoderSpi
extends IIOServiceProvider
diff --git a/libjava/javax/imageio/spi/RegisterableService.java b/libjava/javax/imageio/spi/RegisterableService.java
index 40cb05f81ac..2afee80ab30 100644
--- a/libjava/javax/imageio/spi/RegisterableService.java
+++ b/libjava/javax/imageio/spi/RegisterableService.java
@@ -1,5 +1,5 @@
/* RegisterableService.java -- An interface for service providers.
- 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,7 @@ package javax.imageio.spi;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public interface RegisterableService
{
diff --git a/libjava/javax/imageio/spi/ServiceRegistry.java b/libjava/javax/imageio/spi/ServiceRegistry.java
index 3d7134ed53f..a08ea69e8ee 100644
--- a/libjava/javax/imageio/spi/ServiceRegistry.java
+++ b/libjava/javax/imageio/spi/ServiceRegistry.java
@@ -1,5 +1,5 @@
/* ServiceRegistry.java -- A simple registry for service providers.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,8 +57,8 @@ import java.util.Set;
*
* @since 1.4
*
- * @author <a href="mailto:konqueror@gmx.de">Michael Koch</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class ServiceRegistry
{
@@ -941,8 +941,8 @@ public class ServiceRegistry
*
* @since 1.4
*
- * @author <a href="mailto:konqueror@gmx.de">Michael Koch</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public static interface Filter
{
diff --git a/libjava/javax/imageio/stream/FileCacheImageInputStream.java b/libjava/javax/imageio/stream/FileCacheImageInputStream.java
index 49827d4e0fb..a8db4779bba 100644
--- a/libjava/javax/imageio/stream/FileCacheImageInputStream.java
+++ b/libjava/javax/imageio/stream/FileCacheImageInputStream.java
@@ -45,7 +45,7 @@ import java.io.InputStream;
/**
* @author Michael Koch (konqueror@gmx.de)
*/
-public class FileCacheImageInputStream
+public class FileCacheImageInputStream extends ImageInputStreamImpl
{
private InputStream stream;
private File cacheDir;
@@ -90,4 +90,20 @@ public class FileCacheImageInputStream
{
return false;
}
+
+ public int read()
+ throws IOException
+ {
+ checkStreamClosed();
+ setBitOffset(0);
+ return stream.read();
+ }
+
+ public int read(byte[] data, int offset, int len)
+ throws IOException
+ {
+ checkStreamClosed();
+ setBitOffset(0);
+ return stream.read(data, offset, len);
+ }
}
diff --git a/libjava/javax/imageio/stream/FileCacheImageOutputStream.java b/libjava/javax/imageio/stream/FileCacheImageOutputStream.java
index f8bb3100275..912b368d146 100644
--- a/libjava/javax/imageio/stream/FileCacheImageOutputStream.java
+++ b/libjava/javax/imageio/stream/FileCacheImageOutputStream.java
@@ -45,7 +45,7 @@ import java.io.OutputStream;
/**
* @author Michael Koch (konqueror@gmx.de)
*/
-public class FileCacheImageOutputStream
+public class FileCacheImageOutputStream extends ImageOutputStreamImpl
{
private OutputStream stream;
private File cacheDir;
@@ -90,4 +90,34 @@ public class FileCacheImageOutputStream
{
return false;
}
+
+ public int read()
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
+ public int read(byte[] data, int offset, int len)
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
+ public void write(byte[] data, int offset, int len)
+ throws IOException
+ {
+ checkStreamClosed();
+ // FIXME: Flush pending bits.
+ stream.write(data, offset, len);
+ }
+
+ public void write(int value)
+ throws IOException
+ {
+ checkStreamClosed();
+ // FIXME: Flush pending bits.
+ stream.write(value);
+ }
}
diff --git a/libjava/javax/imageio/stream/FileImageInputStream.java b/libjava/javax/imageio/stream/FileImageInputStream.java
index 67fd07518b1..1684632553e 100644
--- a/libjava/javax/imageio/stream/FileImageInputStream.java
+++ b/libjava/javax/imageio/stream/FileImageInputStream.java
@@ -46,7 +46,7 @@ import java.io.RandomAccessFile;
/**
* @author Michael Koch (konqueror@gmx.de)
*/
-public class FileImageInputStream
+public class FileImageInputStream extends ImageInputStreamImpl
{
private RandomAccessFile file;
@@ -84,4 +84,25 @@ public class FileImageInputStream
return -1L;
}
}
+
+ public int read()
+ throws IOException
+ {
+ setBitOffset(0);
+ return file.read();
+ }
+
+ public int read(byte[] data, int offset, int len)
+ throws IOException
+ {
+ setBitOffset(0);
+ return file.read(data, offset, len);
+ }
+
+ public void seek(long position)
+ throws IOException
+ {
+ super.seek(position);
+ file.seek(position);
+ }
}
diff --git a/libjava/javax/imageio/stream/FileImageOutputStream.java b/libjava/javax/imageio/stream/FileImageOutputStream.java
index 073faed19f4..5b47af840d4 100644
--- a/libjava/javax/imageio/stream/FileImageOutputStream.java
+++ b/libjava/javax/imageio/stream/FileImageOutputStream.java
@@ -46,7 +46,7 @@ import java.io.RandomAccessFile;
/**
* @author Michael Koch (konqueror@gmx.de)
*/
-public class FileImageOutputStream
+public class FileImageOutputStream extends ImageOutputStreamImpl
{
private RandomAccessFile file;
@@ -87,4 +87,47 @@ public class FileImageOutputStream
return -1L;
}
}
+
+ public int read()
+ throws IOException
+ {
+ checkClosed();
+
+ setBitOffset(0);
+ return file.read();
+ }
+
+ public int read(byte[] data, int offset, int len)
+ throws IOException
+ {
+ checkClosed();
+
+ setBitOffset(0);
+ return file.read(data, offset, len);
+ }
+
+ public void seek(long position)
+ throws IOException
+ {
+ super.seek(position);
+ file.seek(position);
+ }
+
+ public void write(byte[] data, int offset, int len)
+ throws IOException
+ {
+ checkClosed();
+
+ flushBits();
+ file.write(data, offset, len);
+ }
+
+ public void write(int value)
+ throws IOException
+ {
+ checkClosed();
+
+ // FIXME: Flush pending bits.
+ file.write(value);
+ }
}
diff --git a/libjava/javax/imageio/stream/IIOByteBuffer.java b/libjava/javax/imageio/stream/IIOByteBuffer.java
index c9e230f5f79..e303255b3d3 100644
--- a/libjava/javax/imageio/stream/IIOByteBuffer.java
+++ b/libjava/javax/imageio/stream/IIOByteBuffer.java
@@ -1,5 +1,5 @@
/* IIOByteBuffer.java
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ package javax.imageio.stream;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class IIOByteBuffer
{
diff --git a/libjava/javax/imageio/stream/ImageInputStream.java b/libjava/javax/imageio/stream/ImageInputStream.java
index 39296a711c6..c75939e9418 100644
--- a/libjava/javax/imageio/stream/ImageInputStream.java
+++ b/libjava/javax/imageio/stream/ImageInputStream.java
@@ -1,5 +1,5 @@
/* ImageInputStream.java
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ import java.nio.ByteOrder;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public interface ImageInputStream
extends DataInput
diff --git a/libjava/javax/imageio/stream/ImageInputStreamImpl.java b/libjava/javax/imageio/stream/ImageInputStreamImpl.java
index 3a5d6dcb6d7..dbe6d1aaab9 100644
--- a/libjava/javax/imageio/stream/ImageInputStreamImpl.java
+++ b/libjava/javax/imageio/stream/ImageInputStreamImpl.java
@@ -38,8 +38,11 @@ exception statement from your version. */
package javax.imageio.stream;
+import java.io.DataInputStream;
+import java.io.EOFException;
import java.io.IOException;
import java.nio.ByteOrder;
+import java.util.Stack;
/**
* @author Michael Koch (konqueror@gmx.de)
@@ -47,6 +50,9 @@ import java.nio.ByteOrder;
public abstract class ImageInputStreamImpl implements ImageInputStream
{
private boolean closed;
+ private Stack markStack = new Stack();
+
+ byte[] buffer = new byte[8];
protected int bitOffset;
protected ByteOrder byteOrder;
@@ -99,6 +105,7 @@ public abstract class ImageInputStreamImpl implements ImageInputStream
public int getBitOffset()
throws IOException
{
+ checkClosed();
return bitOffset;
}
@@ -115,6 +122,7 @@ public abstract class ImageInputStreamImpl implements ImageInputStream
public long getStreamPosition()
throws IOException
{
+ checkClosed();
return streamPos;
}
@@ -138,6 +146,18 @@ public abstract class ImageInputStreamImpl implements ImageInputStream
return -1L;
}
+ public void mark()
+ {
+ try
+ {
+ markStack.push(new Long(getStreamPosition()));
+ }
+ catch (IOException e)
+ {
+ // Ignored.
+ }
+ }
+
public abstract int read()
throws IOException;
@@ -150,8 +170,346 @@ public abstract class ImageInputStreamImpl implements ImageInputStream
public abstract int read(byte[] data, int offset, int len)
throws IOException;
- public void setByteOrder (ByteOrder byteOrder)
+ public int readBit()
+ throws IOException
+ {
+ checkClosed();
+
+ // Calc new bit offset here, readByte resets it.
+ int newOffset = (bitOffset + 1) & 0x7;
+
+ byte data = readByte();
+
+ if (bitOffset != 0)
+ {
+ seek(getStreamPosition() - 1);
+ data = (byte) (data >> (8 - newOffset));
+ }
+
+ bitOffset = newOffset;
+ return data & 0x1;
+ }
+
+ public long readBits(int numBits)
+ throws IOException
+ {
+ checkClosed();
+
+ if (numBits < 0 || numBits > 64)
+ throw new IllegalArgumentException();
+
+ if (numBits == 0)
+ return 0L;
+
+ long bits = 0L;
+
+ for (int i = 0; i < numBits; i++)
+ {
+ bits <<= 1;
+ bits |= readBit();
+ }
+
+ return bits;
+ }
+
+ public boolean readBoolean()
+ throws IOException
+ {
+ byte data = readByte();
+ return data != 0;
+ }
+
+ public byte readByte()
+ throws IOException
+ {
+ int data = read();
+
+ if (data == -1)
+ throw new EOFException();
+
+ return (byte) data;
+ }
+
+ public void readBytes(IIOByteBuffer buffer, int len)
+ throws IOException
+ {
+ int result = read(buffer.getData(), buffer.getOffset(), len);
+
+ if (result == -1 || result < len)
+ throw new EOFException();
+
+ buffer.setLength(len);
+ }
+
+ public char readChar()
+ throws IOException
+ {
+ return (char) readShort();
+ }
+
+ public double readDouble()
+ throws IOException
+ {
+ return (double) readLong();
+ }
+
+ public float readFloat()
+ throws IOException
+ {
+ return (float) readInt();
+ }
+
+ public void readFully(byte[] data)
+ throws IOException
+ {
+ readFully(data, 0, data.length);
+ }
+
+ public void readFully(byte[] data, int offset, int len)
+ throws IOException
+ {
+ for (int i = 0; i < len; ++i)
+ data[offset + i] = readByte();
+ }
+
+ public void readFully(char[] data, int offset, int len)
+ throws IOException
+ {
+ for (int i = 0; i < len; ++i)
+ data[offset + i] = readChar();
+ }
+
+ public void readFully(double[] data, int offset, int len)
+ throws IOException
+ {
+ for (int i = 0; i < len; ++i)
+ data[offset + i] = readDouble();
+ }
+
+ public void readFully(float[] data, int offset, int len)
+ throws IOException
+ {
+ for (int i = 0; i < len; ++i)
+ data[offset + i] = readFloat();
+ }
+
+ public void readFully(int[] data, int offset, int len)
+ throws IOException
+ {
+ for (int i = 0; i < len; ++i)
+ data[offset + i] = readInt();
+ }
+
+ public void readFully(long[] data, int offset, int len)
+ throws IOException
+ {
+ for (int i = 0; i < len; ++i)
+ data[offset + i] = readLong();
+ }
+
+ public void readFully(short[] data, int offset, int len)
+ throws IOException
+ {
+ for (int i = 0; i < len; ++i)
+ data[offset + i] = readShort();
+ }
+
+ public int readInt()
+ throws IOException
+ {
+ int result = read(buffer, 0, 4);
+
+ if (result == -1)
+ throw new EOFException();
+
+ if (getByteOrder() == ByteOrder.LITTLE_ENDIAN)
+ {
+ return ((buffer[0] & 0xff)
+ + (buffer[1] << 8)
+ + (buffer[2] << 16)
+ + (buffer[3] << 24));
+ }
+
+ return ((buffer[4] << 24)
+ + (buffer[3] << 16)
+ + (buffer[2] << 8)
+ + (buffer[1] & 0xff));
+ }
+
+ public String readLine()
+ throws IOException
+ {
+ checkClosed();
+
+ int c = -1;
+ boolean eol = false;
+ StringBuffer buffer = new StringBuffer();
+
+ while (!eol && (c = read()) != -1)
+ {
+ switch(c)
+ {
+ case '\r':
+ // Consume following \n'
+ long oldPosition = getStreamPosition();
+ if (read() != '\n')
+ seek(oldPosition);
+ case '\n':
+ eol = true;
+ break;
+ default:
+ buffer.append((char) c);
+ break;
+ }
+ }
+
+ if (c == -1 && buffer.length() == 0)
+ return null;
+
+ return buffer.toString();
+ }
+
+ public long readLong()
+ throws IOException
+ {
+ int result = read(buffer, 0, 8);
+
+ if (result == -1)
+ throw new EOFException();
+
+ if (getByteOrder() == ByteOrder.LITTLE_ENDIAN)
+ {
+ return ((buffer[0] & 0xff)
+ + (((buffer[1] & 0xff)) << 8)
+ + (((buffer[2] & 0xff)) << 16)
+ + (((buffer[3] & 0xffL)) << 24)
+ + (((buffer[4] & 0xffL)) << 32)
+ + (((buffer[5] & 0xffL)) << 40)
+ + (((buffer[6] & 0xffL)) << 48)
+ + (((long) buffer[7]) << 56));
+ }
+
+ return ((((long) buffer[7]) << 56)
+ + ((buffer[6] & 0xffL) << 48)
+ + ((buffer[5] & 0xffL) << 40)
+ + ((buffer[4] & 0xffL) << 32)
+ + ((buffer[3] & 0xffL) << 24)
+ + ((buffer[2] & 0xff) << 16)
+ + ((buffer[1] & 0xff) << 8)
+ + (buffer[0] & 0xff));
+ }
+
+ public short readShort()
+ throws IOException
+ {
+ int result = read(buffer, 0, 2);
+
+ if (result == -1)
+ throw new EOFException();
+
+ if (getByteOrder() == ByteOrder.LITTLE_ENDIAN)
+ {
+ return (short) ((buffer[0] & 0xff)
+ + (buffer[1] << 8));
+ }
+
+ return (short) ((buffer[0] << 8)
+ + (buffer[1] & 0xff));
+ }
+
+ public int readUnsignedByte()
+ throws IOException
+ {
+ return readByte() & 0xff;
+ }
+
+ public long readUnsignedInt()
+ throws IOException
+ {
+ return readInt() & 0xffffffff;
+ }
+
+ public int readUnsignedShort()
+ throws IOException
+ {
+ return readShort() & 0xffff;
+ }
+
+ public String readUTF()
+ throws IOException
+ {
+ checkClosed();
+
+ String data;
+ ByteOrder old = getByteOrder();
+ setByteOrder(ByteOrder.BIG_ENDIAN); // Strings are always big endian.
+
+ try
+ {
+ data = DataInputStream.readUTF(this);
+ }
+ finally
+ {
+ setByteOrder(old);
+ }
+
+ return data;
+ }
+
+ public void reset()
+ throws IOException
+ {
+ checkClosed();
+
+ long mark = ((Long) markStack.pop()).longValue();
+ seek(mark);
+ }
+
+ public void seek(long position)
+ throws IOException
+ {
+ checkClosed();
+
+ if (position < getFlushedPosition())
+ throw new IndexOutOfBoundsException("position < flushed position");
+
+ streamPos = position;
+ bitOffset = 0;
+ }
+
+ public void setBitOffset (int bitOffset)
+ throws IOException
+ {
+ checkClosed();
+
+ if (bitOffset < 0 || bitOffset > 7)
+ throw new IllegalArgumentException();
+
+ this.bitOffset = bitOffset;
+ }
+
+ public void setByteOrder(ByteOrder byteOrder)
{
this.byteOrder = byteOrder;
}
+
+ public int skipBytes(int num)
+ throws IOException
+ {
+ checkClosed();
+
+ seek(getStreamPosition() + num);
+ bitOffset = 0;
+ return num;
+ }
+
+ public long skipBytes(long num)
+ throws IOException
+ {
+ checkClosed();
+
+ seek(getStreamPosition() + num);
+ bitOffset = 0;
+ return num;
+ }
}
diff --git a/libjava/javax/imageio/stream/ImageOutputStream.java b/libjava/javax/imageio/stream/ImageOutputStream.java
index f53feab717c..b00b37ff9b7 100644
--- a/libjava/javax/imageio/stream/ImageOutputStream.java
+++ b/libjava/javax/imageio/stream/ImageOutputStream.java
@@ -1,5 +1,5 @@
/* ImageOutputStream.java
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.io.IOException;
*
* @since 1.4
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public interface ImageOutputStream
extends ImageInputStream, DataOutput
diff --git a/libjava/javax/imageio/stream/ImageOutputStreamImpl.java b/libjava/javax/imageio/stream/ImageOutputStreamImpl.java
index d6009431900..2149255457d 100644
--- a/libjava/javax/imageio/stream/ImageOutputStreamImpl.java
+++ b/libjava/javax/imageio/stream/ImageOutputStreamImpl.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package javax.imageio.stream;
import java.io.IOException;
+import java.nio.ByteOrder;
/**
* @author Michael Koch (konqueror@gmx.de)
@@ -51,6 +52,13 @@ public abstract class ImageOutputStreamImpl extends ImageInputStreamImpl
// Do nothing here.
}
+ protected void flushBits()
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
public void write(byte[] data)
throws IOException
{
@@ -62,4 +70,176 @@ public abstract class ImageOutputStreamImpl extends ImageInputStreamImpl
public abstract void write(int value)
throws IOException;
+
+ public void writeBit(int bit)
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
+ public void writeBits(long bits, int numBits)
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
+ public void writeBoolean(boolean value)
+ throws IOException
+ {
+ writeByte(value ? 1 : 0);
+ }
+
+ public void writeByte(int value)
+ throws IOException
+ {
+ write(value & 0xff);
+ }
+
+ public void writeBytes(String data)
+ throws IOException
+ {
+ write(data.getBytes());
+ }
+
+ public void writeChar(int value)
+ throws IOException
+ {
+ writeShort((short) value);
+ }
+
+ public void writeChars(char[] data, int offset, int len)
+ throws IOException
+ {
+ for(int i = 0; i < len; ++len)
+ writeChar(data[offset + i]);
+ }
+
+ public void writeChars(String data)
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
+ public void writeDouble(double value)
+ throws IOException
+ {
+ writeLong((long) value);
+ }
+
+ public void writeDoubles(double[] data, int offset, int len)
+ throws IOException
+ {
+ for(int i = 0; i < len; ++len)
+ writeDouble(data[offset + i]);
+ }
+
+ public void writeFloat(float value)
+ throws IOException
+ {
+ writeInt((int) value);
+ }
+
+ public void writeFloats(float[] data, int offset, int len)
+ throws IOException
+ {
+ for(int i = 0; i < len; ++len)
+ writeFloat(data[offset + i]);
+ }
+
+ public void writeInt(int value)
+ throws IOException
+ {
+ if (getByteOrder() == ByteOrder.LITTLE_ENDIAN)
+ {
+ buffer[0] = ((byte) value);
+ buffer[1] = ((byte) (value >> 8));
+ buffer[2] = ((byte) (value >> 16));
+ buffer[3] = ((byte) (value >> 24));
+ }
+ else
+ {
+ buffer[0] = ((byte) (value >> 24));
+ buffer[1] = ((byte) (value >> 16));
+ buffer[2] = ((byte) (value >> 8));
+ buffer[3] = ((byte) value);
+ }
+
+ write(buffer, 0, 4);
+ }
+
+ public void writeInts(int[] data, int offset, int len)
+ throws IOException
+ {
+ for(int i = 0; i < len; ++len)
+ writeInt(data[offset + i]);
+ }
+
+ public void writeLong(long value)
+ throws IOException
+ {
+ if (getByteOrder() == ByteOrder.LITTLE_ENDIAN)
+ {
+ buffer[0] = ((byte) value);
+ buffer[1] = ((byte) (value >> 8));
+ buffer[2] = ((byte) (value >> 16));
+ buffer[3] = ((byte) (value >> 24));
+ buffer[4] = ((byte) (value >> 32));
+ buffer[5] = ((byte) (value >> 40));
+ buffer[6] = ((byte) (value >> 48));
+ buffer[7] = ((byte) (value >> 56));
+ }
+ else
+ {
+ buffer[0] = ((byte) (value >> 56));
+ buffer[1] = ((byte) (value >> 48));
+ buffer[2] = ((byte) (value >> 40));
+ buffer[3] = ((byte) (value >> 32));
+ buffer[4] = ((byte) (value >> 24));
+ buffer[5] = ((byte) (value >> 16));
+ buffer[6] = ((byte) (value >> 8));
+ buffer[7] = ((byte) value);
+ }
+
+ write(buffer, 0, 8);
+ }
+
+ public void writeLongs(long[] data, int offset, int len)
+ throws IOException
+ {
+ for(int i = 0; i < len; ++len)
+ writeLong(data[offset + i]);
+ }
+
+ public void writeShort(int value)
+ throws IOException
+ {
+ if (getByteOrder() == ByteOrder.LITTLE_ENDIAN)
+ {
+ buffer[0] = ((byte) value);
+ buffer[1] = ((byte) (value >> 8));
+ }
+ else
+ {
+ buffer[0] = ((byte) (value >> 8));
+ buffer[1] = ((byte) value);
+ }
+
+ write(buffer, 0, 2);
+ }
+
+ public void writeShorts(short[] data, int offset, int len)
+ throws IOException
+ {
+ for(int i = 0; i < len; ++len)
+ writeShort(data[offset + i]);
+ }
+
+ public void writeUTF(String data)
+ throws IOException
+ {
+ throw new Error("not implemented");
+ }
}
diff --git a/libjava/javax/imageio/stream/MemoryCacheImageInputStream.java b/libjava/javax/imageio/stream/MemoryCacheImageInputStream.java
index c7ca6d6e06d..3631e64fc20 100644
--- a/libjava/javax/imageio/stream/MemoryCacheImageInputStream.java
+++ b/libjava/javax/imageio/stream/MemoryCacheImageInputStream.java
@@ -38,11 +38,35 @@ exception statement from your version. */
package javax.imageio.stream;
+import java.io.IOException;
+import java.io.InputStream;
+
/**
* @author Michael Koch (konqueror@gmx.de)
*/
-public class MemoryCacheImageInputStream
+public class MemoryCacheImageInputStream extends ImageInputStreamImpl
{
+ private InputStream stream;
+
+ public MemoryCacheImageInputStream(InputStream stream)
+ {
+ this.stream = stream;
+ }
+
+ public void close()
+ throws IOException
+ {
+ super.close();
+ stream.close();
+ }
+
+ public void flushBefore(long position)
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
public boolean isCached()
{
return true;
@@ -57,4 +81,18 @@ public class MemoryCacheImageInputStream
{
return true;
}
+
+ public int read()
+ throws IOException
+ {
+ setBitOffset(0);
+ return stream.read();
+ }
+
+ public int read(byte[] data, int offset, int len)
+ throws IOException
+ {
+ setBitOffset(0);
+ return stream.read(data, offset, len);
+ }
}
diff --git a/libjava/javax/imageio/stream/MemoryCacheImageOutputStream.java b/libjava/javax/imageio/stream/MemoryCacheImageOutputStream.java
index b91fd666382..a21efae984f 100644
--- a/libjava/javax/imageio/stream/MemoryCacheImageOutputStream.java
+++ b/libjava/javax/imageio/stream/MemoryCacheImageOutputStream.java
@@ -38,11 +38,35 @@ exception statement from your version. */
package javax.imageio.stream;
+import java.io.IOException;
+import java.io.OutputStream;
+
/**
* @author Michael Koch (konqueror@gmx.de)
*/
-public class MemoryCacheImageOutputStream
+public class MemoryCacheImageOutputStream extends ImageOutputStreamImpl
{
+ private OutputStream stream;
+
+ public MemoryCacheImageOutputStream(OutputStream stream)
+ {
+ this.stream = stream;
+ }
+
+ public void close()
+ throws IOException
+ {
+ super.close();
+ stream.close();
+ }
+
+ public void flushBefore(long position)
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
public boolean isCached()
{
return true;
@@ -57,4 +81,32 @@ public class MemoryCacheImageOutputStream
{
return true;
}
+
+ public int read()
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
+ public int read (byte[] data, int offset, int len)
+ throws IOException
+ {
+ // FIXME: Implement me.
+ throw new Error("not implemented");
+ }
+
+ public void write(byte[] data, int offset, int len)
+ throws IOException
+ {
+ // FIXME: Flush pending bits.
+ stream.write(data, offset, len);
+ }
+
+ public void write(int value)
+ throws IOException
+ {
+ // FIXME: Flush pending bits.
+ stream.write(value);
+ }
}
diff --git a/libjava/javax/naming/Binding.java b/libjava/javax/naming/Binding.java
index 45f0d13ea5f..066d84ecd5e 100644
--- a/libjava/javax/naming/Binding.java
+++ b/libjava/javax/naming/Binding.java
@@ -1,5 +1,5 @@
/* Binding.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.naming;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*/
public class Binding extends NameClassPair
diff --git a/libjava/javax/naming/CannotProceedException.java b/libjava/javax/naming/CannotProceedException.java
index 0fe382b73aa..db457729c8d 100644
--- a/libjava/javax/naming/CannotProceedException.java
+++ b/libjava/javax/naming/CannotProceedException.java
@@ -1,5 +1,5 @@
/* CannotProceedException.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming;
import java.util.Hashtable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/CompositeName.java b/libjava/javax/naming/CompositeName.java
index e3559a911cf..cd77723ea1f 100644
--- a/libjava/javax/naming/CompositeName.java
+++ b/libjava/javax/naming/CompositeName.java
@@ -1,5 +1,5 @@
/* CompositeName.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.NoSuchElementException;
import java.util.Vector;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*
* FIXME: must write readObject and writeObject to conform to
diff --git a/libjava/javax/naming/CompoundName.java b/libjava/javax/naming/CompoundName.java
index 17f2aab7ea7..2299715877e 100644
--- a/libjava/javax/naming/CompoundName.java
+++ b/libjava/javax/naming/CompoundName.java
@@ -1,5 +1,5 @@
/* CompoundName.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.Properties;
import java.util.Vector;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*
* FIXME: must write readObject and writeObject to conform to
diff --git a/libjava/javax/naming/LinkException.java b/libjava/javax/naming/LinkException.java
index 2b0524d91eb..29179ff5226 100644
--- a/libjava/javax/naming/LinkException.java
+++ b/libjava/javax/naming/LinkException.java
@@ -1,5 +1,5 @@
/* LinkException.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.naming;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/LinkRef.java b/libjava/javax/naming/LinkRef.java
index 53597d38fc7..313574f1685 100644
--- a/libjava/javax/naming/LinkRef.java
+++ b/libjava/javax/naming/LinkRef.java
@@ -1,5 +1,5 @@
/* LinkRef.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.naming;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*/
public class LinkRef extends Reference
diff --git a/libjava/javax/naming/NameClassPair.java b/libjava/javax/naming/NameClassPair.java
index 2f115598641..bc90f224e25 100644
--- a/libjava/javax/naming/NameClassPair.java
+++ b/libjava/javax/naming/NameClassPair.java
@@ -1,5 +1,5 @@
/* NameClassPair.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming;
import java.io.Serializable;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*/
public class NameClassPair implements Serializable
diff --git a/libjava/javax/naming/Reference.java b/libjava/javax/naming/Reference.java
index 7309ebd293f..4b06f4ab910 100644
--- a/libjava/javax/naming/Reference.java
+++ b/libjava/javax/naming/Reference.java
@@ -1,5 +1,5 @@
/* Reference.java --
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.util.Enumeration;
import java.util.Vector;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date May 16, 2001
*/
public class Reference implements Cloneable, Serializable
diff --git a/libjava/javax/naming/ReferralException.java b/libjava/javax/naming/ReferralException.java
index 63e83030cd5..430a38d4da5 100644
--- a/libjava/javax/naming/ReferralException.java
+++ b/libjava/javax/naming/ReferralException.java
@@ -1,5 +1,5 @@
/* ReferralException.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming;
import java.util.Hashtable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/directory/Attribute.java b/libjava/javax/naming/directory/Attribute.java
index f812f166284..e46a563b806 100644
--- a/libjava/javax/naming/directory/Attribute.java
+++ b/libjava/javax/naming/directory/Attribute.java
@@ -1,5 +1,5 @@
/* Attribute.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
public interface Attribute extends Cloneable, Serializable
diff --git a/libjava/javax/naming/directory/AttributeModificationException.java b/libjava/javax/naming/directory/AttributeModificationException.java
index 0012458007b..a1bffba76d3 100644
--- a/libjava/javax/naming/directory/AttributeModificationException.java
+++ b/libjava/javax/naming/directory/AttributeModificationException.java
@@ -1,5 +1,5 @@
/* AttributeModificationException.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.directory;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/directory/Attributes.java b/libjava/javax/naming/directory/Attributes.java
index b0ee5cdc45e..34bb8c09940 100644
--- a/libjava/javax/naming/directory/Attributes.java
+++ b/libjava/javax/naming/directory/Attributes.java
@@ -1,5 +1,5 @@
/* Attributes.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.io.Serializable;
import javax.naming.NamingEnumeration;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 14, 2001
*/
diff --git a/libjava/javax/naming/directory/DirContext.java b/libjava/javax/naming/directory/DirContext.java
index c7c821683e5..a42908b8011 100644
--- a/libjava/javax/naming/directory/DirContext.java
+++ b/libjava/javax/naming/directory/DirContext.java
@@ -1,5 +1,5 @@
/* DirContext.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 13, 2001
*/
diff --git a/libjava/javax/naming/directory/ModificationItem.java b/libjava/javax/naming/directory/ModificationItem.java
index 6b9127df8f0..e5530aa1147 100644
--- a/libjava/javax/naming/directory/ModificationItem.java
+++ b/libjava/javax/naming/directory/ModificationItem.java
@@ -1,5 +1,5 @@
/* ModificationItem.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.directory;
import java.io.Serializable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 13, 2001
*/
diff --git a/libjava/javax/naming/directory/SearchControls.java b/libjava/javax/naming/directory/SearchControls.java
index 0bccb357f94..5e630807a63 100644
--- a/libjava/javax/naming/directory/SearchControls.java
+++ b/libjava/javax/naming/directory/SearchControls.java
@@ -1,5 +1,5 @@
/* SearchControls.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.directory;
import java.io.Serializable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 5, 2001
*/
diff --git a/libjava/javax/naming/directory/SearchResult.java b/libjava/javax/naming/directory/SearchResult.java
index eb4c182e21a..793a28d47d6 100644
--- a/libjava/javax/naming/directory/SearchResult.java
+++ b/libjava/javax/naming/directory/SearchResult.java
@@ -1,5 +1,5 @@
/* SearchResult.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.directory;
import javax.naming.Binding;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 13, 2001
*/
diff --git a/libjava/javax/naming/event/EventContext.java b/libjava/javax/naming/event/EventContext.java
index 81626e1c853..365d73a0624 100644
--- a/libjava/javax/naming/event/EventContext.java
+++ b/libjava/javax/naming/event/EventContext.java
@@ -1,5 +1,5 @@
/* EventContext.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import javax.naming.Name;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/event/EventDirContext.java b/libjava/javax/naming/event/EventDirContext.java
index 5d89e6b8bb2..288ecb171ac 100644
--- a/libjava/javax/naming/event/EventDirContext.java
+++ b/libjava/javax/naming/event/EventDirContext.java
@@ -1,5 +1,5 @@
/* EventDirContext.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import javax.naming.directory.SearchControls;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
public interface EventDirContext extends EventContext, DirContext
diff --git a/libjava/javax/naming/event/NamespaceChangeListener.java b/libjava/javax/naming/event/NamespaceChangeListener.java
index f9163b8fa59..7952d7193db 100644
--- a/libjava/javax/naming/event/NamespaceChangeListener.java
+++ b/libjava/javax/naming/event/NamespaceChangeListener.java
@@ -1,5 +1,5 @@
/* NamespaceChangeListener.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.naming.event;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/event/NamingExceptionEvent.java b/libjava/javax/naming/event/NamingExceptionEvent.java
index 17b71d92963..8fb4255a689 100644
--- a/libjava/javax/naming/event/NamingExceptionEvent.java
+++ b/libjava/javax/naming/event/NamingExceptionEvent.java
@@ -1,5 +1,5 @@
/* NamingExceptionEvent.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.util.EventObject;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 5, 2001
*/
diff --git a/libjava/javax/naming/event/NamingListener.java b/libjava/javax/naming/event/NamingListener.java
index d75dd5b9316..bc820dcb094 100644
--- a/libjava/javax/naming/event/NamingListener.java
+++ b/libjava/javax/naming/event/NamingListener.java
@@ -1,5 +1,5 @@
/* NamingListener.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.event;
import java.util.EventListener;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/event/ObjectChangeListener.java b/libjava/javax/naming/event/ObjectChangeListener.java
index cda1052a70a..0a2b19d1a03 100644
--- a/libjava/javax/naming/event/ObjectChangeListener.java
+++ b/libjava/javax/naming/event/ObjectChangeListener.java
@@ -1,5 +1,5 @@
/* ObjectChangeListener.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.naming.event;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/Control.java b/libjava/javax/naming/ldap/Control.java
index 20ccafebe5e..03de2159ba9 100644
--- a/libjava/javax/naming/ldap/Control.java
+++ b/libjava/javax/naming/ldap/Control.java
@@ -1,5 +1,5 @@
/* Control.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import java.io.Serializable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/ExtendedResponse.java b/libjava/javax/naming/ldap/ExtendedResponse.java
index 4815ad9ab22..66251284812 100644
--- a/libjava/javax/naming/ldap/ExtendedResponse.java
+++ b/libjava/javax/naming/ldap/ExtendedResponse.java
@@ -1,5 +1,5 @@
/* ExtendedResponse.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import java.io.Serializable;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/HasControls.java b/libjava/javax/naming/ldap/HasControls.java
index 079afa3a95f..6153e5451c6 100644
--- a/libjava/javax/naming/ldap/HasControls.java
+++ b/libjava/javax/naming/ldap/HasControls.java
@@ -1,5 +1,5 @@
/* HasControls.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/LdapContext.java b/libjava/javax/naming/ldap/LdapContext.java
index db7bf254a71..7f554a61845 100644
--- a/libjava/javax/naming/ldap/LdapContext.java
+++ b/libjava/javax/naming/ldap/LdapContext.java
@@ -1,5 +1,5 @@
/* LdapContext.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.naming.NamingException;
import javax.naming.directory.DirContext;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/UnsolicitedNotification.java b/libjava/javax/naming/ldap/UnsolicitedNotification.java
index 6c37eb807b5..5a97227b1e9 100644
--- a/libjava/javax/naming/ldap/UnsolicitedNotification.java
+++ b/libjava/javax/naming/ldap/UnsolicitedNotification.java
@@ -1,5 +1,5 @@
/* UnsolicitedNotification.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java b/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java
index 4d5161c3093..bade7e1c39c 100644
--- a/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java
+++ b/libjava/javax/naming/ldap/UnsolicitedNotificationEvent.java
@@ -1,5 +1,5 @@
/* UnsolicitedNotificationEvent.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import java.util.EventObject;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 5, 2001
*/
public class UnsolicitedNotificationEvent extends EventObject
diff --git a/libjava/javax/naming/ldap/UnsolicitedNotificationListener.java b/libjava/javax/naming/ldap/UnsolicitedNotificationListener.java
index d540d9675db..e5b15c566c6 100644
--- a/libjava/javax/naming/ldap/UnsolicitedNotificationListener.java
+++ b/libjava/javax/naming/ldap/UnsolicitedNotificationListener.java
@@ -1,5 +1,5 @@
/* UnsolicitedNotificationListener.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.naming.ldap;
import javax.naming.event.NamingListener;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/naming/spi/DirectoryManager.java b/libjava/javax/naming/spi/DirectoryManager.java
index c43a28d2dfe..a98b05df803 100644
--- a/libjava/javax/naming/spi/DirectoryManager.java
+++ b/libjava/javax/naming/spi/DirectoryManager.java
@@ -1,5 +1,5 @@
/* DirectoryManager.java --
- Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -54,7 +54,7 @@ import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date June 25, 2001
*/
public class DirectoryManager extends NamingManager
diff --git a/libjava/javax/naming/spi/ResolveResult.java b/libjava/javax/naming/spi/ResolveResult.java
index 25dd8494e70..d9c637629a6 100644
--- a/libjava/javax/naming/spi/ResolveResult.java
+++ b/libjava/javax/naming/spi/ResolveResult.java
@@ -1,5 +1,5 @@
/* ResolveResult.java --
- Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import javax.naming.InvalidNameException;
import javax.naming.Name;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 5, 2001
*/
diff --git a/libjava/javax/naming/spi/Resolver.java b/libjava/javax/naming/spi/Resolver.java
index 68ec5d69233..0f7f3868e55 100644
--- a/libjava/javax/naming/spi/Resolver.java
+++ b/libjava/javax/naming/spi/Resolver.java
@@ -1,5 +1,5 @@
/* Resolver.java --
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.naming.Name;
import javax.naming.NamingException;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date June 1, 2001
*/
diff --git a/libjava/javax/net/ssl/SSLContext.java b/libjava/javax/net/ssl/SSLContext.java
index f69e2678beb..6cab45351bf 100644
--- a/libjava/javax/net/ssl/SSLContext.java
+++ b/libjava/javax/net/ssl/SSLContext.java
@@ -140,7 +140,7 @@ public class SSLContext
{
if (provider == null)
{
- throw new IllegalArgumentException();
+ throw new IllegalArgumentException("null provider");
}
Provider p = Security.getProvider(provider);
if (p == null)
@@ -174,13 +174,13 @@ public class SSLContext
}
catch (InvocationTargetException ite)
{
- ite.printStackTrace();
- throw new NoSuchAlgorithmException();
+ NoSuchAlgorithmException nsae = new NoSuchAlgorithmException(protocol);
+ throw (NoSuchAlgorithmException) nsae.initCause(ite);
}
catch (ClassCastException cce)
{
- cce.printStackTrace();
- throw new NoSuchAlgorithmException();
+ NoSuchAlgorithmException nsae = new NoSuchAlgorithmException(protocol);
+ throw (NoSuchAlgorithmException) nsae.initCause(cce);
}
}
diff --git a/libjava/javax/security/auth/Subject.java b/libjava/javax/security/auth/Subject.java
index 5391acec825..37baecc8aed 100644
--- a/libjava/javax/security/auth/Subject.java
+++ b/libjava/javax/security/auth/Subject.java
@@ -235,7 +235,7 @@ public final class Subject implements Serializable
*/
public static Object doAsPrivileged (final Subject subject,
final PrivilegedExceptionAction action,
- final AccessControlContext acc)
+ AccessControlContext acc)
throws PrivilegedActionException
{
final SecurityManager sm = System.getSecurityManager();
@@ -243,6 +243,8 @@ public final class Subject implements Serializable
{
sm.checkPermission (new AuthPermission ("doAsPrivileged"));
}
+ if (acc == null)
+ acc = new AccessControlContext (new java.security.ProtectionDomain[0]);
AccessControlContext context =
new AccessControlContext (acc, new SubjectDomainCombiner (subject));
return AccessController.doPrivileged (action, context);
diff --git a/libjava/javax/security/auth/callback/Callback.java b/libjava/javax/security/auth/callback/Callback.java
index 655ad3348ba..71932cb0f13 100644
--- a/libjava/javax/security/auth/callback/Callback.java
+++ b/libjava/javax/security/auth/callback/Callback.java
@@ -59,7 +59,6 @@ package javax.security.auth.callback;
* @see PasswordCallback
* @see TextInputCallback
* @see TextOutputCallback
- * @version $Revision: 1.1 $
*/
public interface Callback {
}
diff --git a/libjava/javax/security/auth/callback/CallbackHandler.java b/libjava/javax/security/auth/callback/CallbackHandler.java
index 289999c5ee1..ed1195a89e3 100644
--- a/libjava/javax/security/auth/callback/CallbackHandler.java
+++ b/libjava/javax/security/auth/callback/CallbackHandler.java
@@ -80,7 +80,6 @@ import java.io.IOException;
* <p>All default handler implementations must provide a public zero-argument
* constructor.</p>
*
- * @version $Revision: 1.1 $
*/
public interface CallbackHandler
{
diff --git a/libjava/javax/security/auth/callback/ChoiceCallback.java b/libjava/javax/security/auth/callback/ChoiceCallback.java
index 44b5ffcba5e..8fd038edf70 100644
--- a/libjava/javax/security/auth/callback/ChoiceCallback.java
+++ b/libjava/javax/security/auth/callback/ChoiceCallback.java
@@ -47,7 +47,6 @@ import java.io.Serializable;
* selected choice(s).
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class ChoiceCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/ConfirmationCallback.java b/libjava/javax/security/auth/callback/ConfirmationCallback.java
index 8abd393f52c..aa912189fb2 100644
--- a/libjava/javax/security/auth/callback/ConfirmationCallback.java
+++ b/libjava/javax/security/auth/callback/ConfirmationCallback.java
@@ -47,7 +47,6 @@ import java.io.Serializable;
* similar confirmations.
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class ConfirmationCallback implements Callback, Serializable
{
@@ -254,7 +253,7 @@ public class ConfirmationCallback implements Callback, Serializable
* NO, CANCEL or OK).
* @throws IllegalArgumentException if <code>prompt</code> is <code>null</code>,
* if <code>prompt</code> has a length of <code>0</code>, if
- * <code>messageType</code> is not either <ode>INFORMATION</code>,
+ * <code>messageType</code> is not either <code>INFORMATION</code>,
* <code>WARNING</code>, or <code>ERROR</code>, if <code>optionType</code> is
* not either <code>YES_NO_OPTION</code>, <code>YES_NO_CANCEL_OPTION</code>,
* or <code>OK_CANCEL_OPTION</code>, or if <code>defaultOption</code> does
@@ -289,7 +288,7 @@ public class ConfirmationCallback implements Callback, Serializable
* <code>options</code> array.
* @throws IllegalArgumentException if <code>prompt</code> is <code>null</code>,
* if <code>prompt</code> has a length of <code>0</code>, if
- * <code>messageType</code> is not either <ode>INFORMATION</code>,
+ * <code>messageType</code> is not either <code>INFORMATION</code>,
* <code>WARNING</code>, or <code>ERROR</code>, if <code>options</code> is
* <code>null</code>, if <code>options</code> has a length of <code>0</code>,
* if any element from <code>options</code> is <code>null</code>, if any
diff --git a/libjava/javax/security/auth/callback/LanguageCallback.java b/libjava/javax/security/auth/callback/LanguageCallback.java
index 71910632b48..b53149adcb3 100644
--- a/libjava/javax/security/auth/callback/LanguageCallback.java
+++ b/libjava/javax/security/auth/callback/LanguageCallback.java
@@ -47,7 +47,6 @@ import java.util.Locale;
* the {@link Locale} used for localizing text.
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class LanguageCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/NameCallback.java b/libjava/javax/security/auth/callback/NameCallback.java
index c98edfdbea9..094349e19a0 100644
--- a/libjava/javax/security/auth/callback/NameCallback.java
+++ b/libjava/javax/security/auth/callback/NameCallback.java
@@ -46,7 +46,6 @@ import java.io.Serializable;
* name information.
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class NameCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/PasswordCallback.java b/libjava/javax/security/auth/callback/PasswordCallback.java
index 5620bc5cd79..7e5f9cb7cab 100644
--- a/libjava/javax/security/auth/callback/PasswordCallback.java
+++ b/libjava/javax/security/auth/callback/PasswordCallback.java
@@ -46,7 +46,6 @@ import java.io.Serializable;
* password information.
*
* @see CallbackHandler,
- * @version $Revision: 1.1 $
*/
public class PasswordCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/TextInputCallback.java b/libjava/javax/security/auth/callback/TextInputCallback.java
index 55c1aa2534d..01b544cb24b 100644
--- a/libjava/javax/security/auth/callback/TextInputCallback.java
+++ b/libjava/javax/security/auth/callback/TextInputCallback.java
@@ -46,7 +46,6 @@ import java.io.Serializable;
* generic text information.
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class TextInputCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/TextOutputCallback.java b/libjava/javax/security/auth/callback/TextOutputCallback.java
index fac08874df1..47202bcaa72 100644
--- a/libjava/javax/security/auth/callback/TextOutputCallback.java
+++ b/libjava/javax/security/auth/callback/TextOutputCallback.java
@@ -47,7 +47,6 @@ import java.io.Serializable;
* error messages.</p>
*
* @see CallbackHandler
- * @version $Revision: 1.1 $
*/
public class TextOutputCallback implements Callback, Serializable
{
diff --git a/libjava/javax/security/auth/callback/UnsupportedCallbackException.java b/libjava/javax/security/auth/callback/UnsupportedCallbackException.java
index 215942c40b5..167a5e23671 100644
--- a/libjava/javax/security/auth/callback/UnsupportedCallbackException.java
+++ b/libjava/javax/security/auth/callback/UnsupportedCallbackException.java
@@ -42,7 +42,6 @@ package javax.security.auth.callback;
* Signals that a {@link CallbackHandler} does not recognize a particular
* {@link Callback}.
*
- * @version $Revision: 1.1 $
*/
public class UnsupportedCallbackException extends Exception
{
diff --git a/libjava/javax/security/sasl/Sasl.java b/libjava/javax/security/sasl/Sasl.java
index 334aac602ba..257198b0e45 100644
--- a/libjava/javax/security/sasl/Sasl.java
+++ b/libjava/javax/security/sasl/Sasl.java
@@ -1,5 +1,5 @@
/* Sasl.java --
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -221,7 +221,7 @@ public class Sasl
* breaking into future sessions. The property contains <code>"true"</code>
* if mechanisms that implement forward secrecy between sessions are
* required; <code>"false"</code> if such mechanisms are not required. The
- * default is <code>"false"</code>.</p>
+ * default is <code>"false"</code>.
*
* <p>The value of this constant is <code>"javax.security.sasl.policy.forward"</code>.
* </p>
@@ -233,7 +233,6 @@ public class Sasl
* credentials are required. The property contains <code>"true"</code> if
* mechanisms that pass client credentials are required; <code>"false"</code>
* if such mechanisms are not required. The default is <code>"false"</code>.
- * </p>
*
* <p>The value of this constant is <code>"javax.security.sasl.policy.credentials"</code>.
* </p>
@@ -280,7 +279,7 @@ public class Sasl
// -------------------------------------------------------------------------
/**
- * <p>Creates a {@link SaslClient} for the specified mechanism.</p>
+ * Creates a {@link SaslClient} for the specified mechanism.
*
* <p>This method uses the JCA Security Provider Framework, described in the
* "Java Cryptography Architecture API Specification &amp; Reference", for
@@ -490,7 +489,7 @@ public class Sasl
}
/**
- * <p>Creates a {@link SaslServer} for the specified mechanism.</p>
+ * Creates a {@link SaslServer} for the specified mechanism.
*
* <p>This method uses the JCA Security Provider Framework, described in the
* "Java Cryptography Architecture API Specification &amp; Reference", for
@@ -521,7 +520,7 @@ public class Sasl
*
* <pre>
* SaslServerFactory.DIGEST-MD5 com.wiz.sasl.digest.ServerFactory
- * </pre></p>
+ * </pre>
*
* <p>See the "Java Cryptography Architecture API Specification &amp;
* Reference" for information about how to install and configure security
diff --git a/libjava/javax/security/sasl/SaslServerFactory.java b/libjava/javax/security/sasl/SaslServerFactory.java
index 1299634d8b5..d2f279190fa 100644
--- a/libjava/javax/security/sasl/SaslServerFactory.java
+++ b/libjava/javax/security/sasl/SaslServerFactory.java
@@ -48,8 +48,8 @@ import javax.security.auth.callback.CallbackHandler;
* simultaneous requests. It must also have a public constructor that accepts
* no arguments.</p>
*
- * This interface is not normally accessed directly by a server, which will use
- * the {@link Sasl} static methods to create a {@link SaslServer} instance
+ * <p>This interface is not normally accessed directly by a server, which will
+ * use the {@link Sasl} static methods to create a {@link SaslServer} instance
* instead. However, a particular environment may provide and install a new or
* different <code>SaslServerFactory</code>.</p>
*
diff --git a/libjava/javax/swing/AbstractAction.java b/libjava/javax/swing/AbstractAction.java
index 4f0af1c9dd4..c0ddf44ffa5 100644
--- a/libjava/javax/swing/AbstractAction.java
+++ b/libjava/javax/swing/AbstractAction.java
@@ -1,5 +1,5 @@
/* AbstractAction.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.
@@ -55,15 +55,13 @@ import javax.swing.event.SwingPropertyChangeSupport;
public abstract class AbstractAction
implements Action, Cloneable, Serializable
{
- static final long serialVersionUID = -6803159439231523484L;
+ private static final long serialVersionUID = -6803159439231523484L;
/**
* enabled
*/
protected boolean enabled = true;
- public static final String ENABLED_PROPERTY = "enabled";
-
/**
* changeSupport
*/
@@ -193,7 +191,7 @@ public abstract class AbstractAction
if (enabled != this.enabled)
{
this.enabled = enabled;
- firePropertyChange(ENABLED_PROPERTY, !this.enabled, this.enabled);
+ firePropertyChange("enabled", !this.enabled, this.enabled);
}
}
diff --git a/libjava/javax/swing/AbstractButton.java b/libjava/javax/swing/AbstractButton.java
index adb3af40823..1232a4ab4fd 100644
--- a/libjava/javax/swing/AbstractButton.java
+++ b/libjava/javax/swing/AbstractButton.java
@@ -661,7 +661,7 @@ public abstract class AbstractButton extends JComponent
*
* @param e The event signifying that the button's model changed state
*/
- public void fireItemStateChanged(ItemEvent e)
+ protected void fireItemStateChanged(ItemEvent e)
{
e.setSource(this);
ItemListener[] listeners = getItemListeners();
@@ -676,7 +676,7 @@ public abstract class AbstractButton extends JComponent
*
* @param e The event signifying that the button's model was clicked
*/
- public void fireActionPerformed(ActionEvent e)
+ protected void fireActionPerformed(ActionEvent e)
{
e.setSource(this);
ActionListener[] listeners = getActionListeners();
@@ -689,7 +689,7 @@ public abstract class AbstractButton extends JComponent
* Calls {@link ChangeEvent.stateChanged} on each {@link ChangeListener}
* in the button's listener list.
*/
- public void fireStateChanged()
+ protected void fireStateChanged()
{
ChangeListener[] listeners = getChangeListeners();
@@ -740,10 +740,10 @@ public abstract class AbstractButton extends JComponent
if (old != mne)
{
- getModel().setMnemonic(mne);
+ getModel().setMnemonic(mne);
if (text != null && ! text.equals(""))
- {
+ {
// Since lower case char = upper case char for
// mnemonic, we will convert both text and mnemonic
// to upper case before checking if mnemonic character occurs
@@ -753,9 +753,9 @@ public abstract class AbstractButton extends JComponent
setDisplayedMnemonicIndex(upperCaseText.indexOf(upperCaseMne));
}
- firePropertyChange(MNEMONIC_CHANGED_PROPERTY, old, mne);
- revalidate();
- repaint();
+ firePropertyChange(MNEMONIC_CHANGED_PROPERTY, old, mne);
+ revalidate();
+ repaint();
}
}
@@ -806,7 +806,7 @@ public abstract class AbstractButton extends JComponent
public void setRolloverEnabled(boolean r)
{
if (rollOverEnabled != r)
- {
+ {
rollOverEnabled = r;
firePropertyChange(ROLLOVER_ENABLED_CHANGED_PROPERTY, !r, r);
revalidate();
@@ -1450,7 +1450,7 @@ public abstract class AbstractButton extends JComponent
// Set actionCommand to button's text by default if it is not specified
if (actionCommand != null)
- setActionCommand((String)(a.getValue(Action.ACTION_COMMAND_KEY)));
+ setActionCommand((String)(a.getValue(Action.ACTION_COMMAND_KEY)));
else
setActionCommand(getText());
}
@@ -1509,7 +1509,7 @@ public abstract class AbstractButton extends JComponent
public void propertyChange(PropertyChangeEvent e)
{
Action act = (Action) (e.getSource());
- if (e.getPropertyName().equals(AbstractAction.ENABLED_PROPERTY))
+ if (e.getPropertyName().equals("enabled"))
setEnabled(act.isEnabled());
else if (e.getPropertyName().equals(Action.NAME))
setText((String)(act.getValue(Action.NAME)));
@@ -1847,7 +1847,39 @@ public abstract class AbstractButton extends JComponent
*/
protected String paramString()
{
- return "AbstractButton";
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.paramString());
+ sb.append(",defaultIcon=");
+ if (getIcon() != null)
+ sb.append(getIcon());
+ sb.append(",disabledIcon=");
+ if (getDisabledIcon() != null)
+ sb.append(getDisabledIcon());
+ sb.append(",disabledSelectedIcon=");
+ if (getDisabledSelectedIcon() != null)
+ sb.append(getDisabledSelectedIcon());
+ sb.append(",margin=");
+ if (getMargin() != null)
+ sb.append(getMargin());
+ sb.append(",paintBorder=").append(isBorderPainted());
+ sb.append(",paintFocus=").append(isFocusPainted());
+ sb.append(",pressedIcon=");
+ if (getPressedIcon() != null)
+ sb.append(getPressedIcon());
+ sb.append(",rolloverEnabled=").append(isRolloverEnabled());
+ sb.append(",rolloverIcon=");
+ if (getRolloverIcon() != null)
+ sb.append(getRolloverIcon());
+ sb.append(",rolloverSelected=");
+ if (getRolloverSelectedIcon() != null)
+ sb.append(getRolloverSelectedIcon());
+ sb.append(",selectedIcon=");
+ if (getSelectedIcon() != null)
+ sb.append(getSelectedIcon());
+ sb.append(",text=");
+ if (getText() != null)
+ sb.append(getText());
+ return sb.toString();
}
/**
diff --git a/libjava/javax/swing/AbstractCellEditor.java b/libjava/javax/swing/AbstractCellEditor.java
index 196e2e2696c..7cc57516a1c 100644
--- a/libjava/javax/swing/AbstractCellEditor.java
+++ b/libjava/javax/swing/AbstractCellEditor.java
@@ -53,7 +53,7 @@ import javax.swing.event.EventListenerList;
public abstract class AbstractCellEditor
implements CellEditor, Serializable
{
- static final long serialVersionUID = -1048006551406220959L;
+ private static final long serialVersionUID = -1048006551406220959L;
/**
* listenerList
diff --git a/libjava/javax/swing/AbstractListModel.java b/libjava/javax/swing/AbstractListModel.java
index 9fe1bcbee2f..a380b2a2eda 100644
--- a/libjava/javax/swing/AbstractListModel.java
+++ b/libjava/javax/swing/AbstractListModel.java
@@ -54,7 +54,7 @@ import javax.swing.event.ListDataListener;
*/
public abstract class AbstractListModel implements ListModel, Serializable
{
- static final long serialVersionUID = -3285184064379168730L;
+ private static final long serialVersionUID = -3285184064379168730L;
/** List of ListDataListeners called for each change to the list. */
protected EventListenerList listenerList;
@@ -100,25 +100,12 @@ public abstract class AbstractListModel implements ListModel, Serializable
protected void fireContentsChanged(Object source, int startIndex,
int endIndex)
{
- // Variables
- ListDataEvent event;
- ListDataListener[] listeners;
- ListDataListener listener;
- int index;
-
- // Create Event
- event = new ListDataEvent(source, ListDataEvent.CONTENTS_CHANGED,
- startIndex, endIndex);
-
- // Get Listeners
- listeners = getListDataListeners();
-
- // Process Listeners
- for (index = 0; index < listeners.length; index++)
- {
- listener = (ListDataListener) listeners[index];
- listener.contentsChanged(event);
- }
+ ListDataEvent event = new ListDataEvent(source, ListDataEvent.CONTENTS_CHANGED,
+ startIndex, endIndex);
+ ListDataListener[] listeners = getListDataListeners();
+
+ for (int index = 0; index < listeners.length; index++)
+ listeners[index].contentsChanged(event);
}
/**
@@ -134,25 +121,13 @@ public abstract class AbstractListModel implements ListModel, Serializable
*/
protected void fireIntervalAdded(Object source, int startIndex, int endIndex)
{
- // Variables
- ListDataEvent event;
- ListDataListener[] listeners;
- ListDataListener listener;
- int index;
-
- // Create Event
- event = new ListDataEvent(source, ListDataEvent.INTERVAL_ADDED,
- startIndex, endIndex);
-
- // Get Listeners
- listeners = getListDataListeners();
-
- // Process Listeners
- for (index = 0; index < listeners.length; index++)
- {
- listener = listeners[index];
- listener.intervalAdded(event);
- }
+ ListDataEvent event =
+ new ListDataEvent(source, ListDataEvent.INTERVAL_ADDED,
+ startIndex, endIndex);
+ ListDataListener[] listeners = getListDataListeners();
+
+ for (int index = 0; index < listeners.length; index++)
+ listeners[index].intervalAdded(event);
}
/**
@@ -169,25 +144,13 @@ public abstract class AbstractListModel implements ListModel, Serializable
protected void fireIntervalRemoved(Object source, int startIndex,
int endIndex)
{
- // Variables
- ListDataEvent event;
- ListDataListener[] listeners;
- ListDataListener listener;
- int index;
-
- // Create Event
- event = new ListDataEvent(source, ListDataEvent.INTERVAL_REMOVED,
- startIndex, endIndex);
-
- // Get Listeners
- listeners = getListDataListeners();
-
- // Process Listeners
- for (index = 0; index < listeners.length; index++)
- {
- listener = listeners[index];
- listener.intervalRemoved(event);
- }
+ ListDataEvent event =
+ new ListDataEvent(source, ListDataEvent.INTERVAL_REMOVED,
+ startIndex, endIndex);
+ ListDataListener[] listeners = getListDataListeners();
+
+ for (int index = 0; index < listeners.length; index++)
+ listeners[index].intervalRemoved(event);
}
/**
diff --git a/libjava/javax/swing/AbstractSet.java b/libjava/javax/swing/AbstractSet.java
deleted file mode 100644
index 01bb58fd883..00000000000
--- a/libjava/javax/swing/AbstractSet.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* AbstractSet.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-package javax.swing;
-
-import java.util.AbstractCollection;
-import java.util.Collection;
-import java.util.Set;
-
-/**
- * Empty
- *
- * @author Ronald Veldema (rveldema@cs.vu.nl)
- */
-public abstract class AbstractSet extends AbstractCollection implements Set
-{
- boolean contained(Object []a1, Object b)
- {
- for (int i=0;i<a1.length;i++)
- {
- if (a1[i] == b)
- return true;
- }
- return false;
- }
-
- public boolean equals(Object o)
- {
- if (! (o instanceof AbstractSet))
- return false;
- AbstractSet s = (AbstractSet) o;
-
- if (s == this)
- return true;
-
- if (s.size() != size())
- return false;
-
- Object[] a1 = s.toArray();
- Object[] a2 = toArray();
-
- for (int i=0;i<a1.length;i++)
- {
- if (! contained(a2, a1[i]))
- return false;
- }
- return true;
- }
-
- public int hashCode()
- {
- int hash = 0;
- Object[] a1 = toArray();
-
- if (a1 == null)
- return 0;
-
- for (int i=0; i<a1.length; i++)
- {
- hash += a1[i].hashCode();
- }
- return hash;
- }
-
- public boolean removeAll(Collection c)
- {
- return false;
- }
-}
diff --git a/libjava/javax/swing/ActionMap.java b/libjava/javax/swing/ActionMap.java
index 645252f5b26..26d1d6fa989 100644
--- a/libjava/javax/swing/ActionMap.java
+++ b/libjava/javax/swing/ActionMap.java
@@ -49,7 +49,7 @@ import java.util.Set;
/**
- * @author Andrew Selkirk
+ * @author Andrew Selkirk
* @author Michael Koch
*/
public class ActionMap
@@ -57,30 +57,30 @@ public class ActionMap
{
private static final long serialVersionUID = -6277518704513986346L;
- /**
- * actionMap
- */
- private Map actionMap = new HashMap();
+ /**
+ * actionMap
+ */
+ private Map actionMap = new HashMap();
- /**
- * parent
- */
+ /**
+ * parent
+ */
private ActionMap parent;
- /**
+ /**
* Creates a new <code>ActionMap</code> instance.
- */
+ */
public ActionMap()
{
}
- /**
+ /**
* Returns an action associated with an object.
*
* @param key the key of the enty
*
* @return the action associated with key, may be null
- */
+ */
public Action get(Object key)
{
Object result = actionMap.get(key);
@@ -88,123 +88,123 @@ public class ActionMap
if (result == null && parent != null)
result = parent.get(key);
- return (Action) result;
+ return (Action) result;
}
- /**
+ /**
* Puts a new <code>Action</code> into the <code>ActionMap</code>.
* If action is null an existing entry will be removed.
*
* @param key the key for the entry
* @param action the action.
- */
+ */
public void put(Object key, Action action)
{
if (action == null)
- actionMap.remove(key);
+ actionMap.remove(key);
else
- actionMap.put(key, action);
+ actionMap.put(key, action);
}
- /**
+ /**
* Remove an entry from the <code>ActionMap</code>.
*
* @param key the key of the entry to remove
- */
+ */
public void remove(Object key)
{
- actionMap.remove(key);
+ actionMap.remove(key);
}
- /**
+ /**
* Returns the parent of this <code>ActionMap</code>.
*
* @return the parent, may be null.
- */
+ */
public ActionMap getParent()
{
- return parent;
+ return parent;
}
- /**
+ /**
* Sets a parent for this <code>ActionMap</code>.
*
* @param parentMap the new parent
- */
+ */
public void setParent(ActionMap parentMap)
{
- parent = parentMap;
+ parent = parentMap;
}
- /**
+ /**
* Returns the number of entries in this <code>ActionMap</code>.
*
* @return the number of entries
- */
+ */
public int size()
{
- return actionMap.size();
+ return actionMap.size();
}
- /**
+ /**
* Clears the <code>ActionMap</code>.
- */
+ */
public void clear()
{
- actionMap.clear();
+ actionMap.clear();
}
- /**
+ /**
* Returns all keys of entries in this <code>ActionMap</code>.
*
* @return an array of keys
- */
+ */
public Object[] keys()
{
return actionMap.keySet().toArray();
}
- /**
+ /**
* Returns all keys of entries in this <code>ActionMap</code>
* and all its parents.
*
* @return an array of keys
- */
+ */
public Object[] allKeys()
{
Set set = new HashSet();
if (parent != null)
- set.addAll(Arrays.asList(parent.allKeys()));
+ set.addAll(Arrays.asList(parent.allKeys()));
set.addAll(actionMap.keySet());
return set.toArray();
}
- /**
- * writeObject
+ /**
+ * writeObject
*
* @param stream the stream to write to
*
* @exception IOException If an error occurs
- */
+ */
private void writeObject(ObjectOutputStream stream)
throws IOException
{
- // TODO
+ // TODO
}
- /**
- * readObject
+ /**
+ * readObject
*
* @param stream the stream to read from
*
* @exception ClassNotFoundException If the serialized class cannot be found
* @exception IOException If an error occurs
- */
+ */
private void readObject(ObjectInputStream stream)
throws ClassNotFoundException, IOException
{
- // TODO
+ // TODO
}
}
diff --git a/libjava/javax/swing/BoundedRangeModel.java b/libjava/javax/swing/BoundedRangeModel.java
index 907e7045dc1..92cf69df816 100644
--- a/libjava/javax/swing/BoundedRangeModel.java
+++ b/libjava/javax/swing/BoundedRangeModel.java
@@ -35,103 +35,134 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
+
package javax.swing;
import javax.swing.event.ChangeListener;
/**
- * BoundedRangeModel
- * @author Andrew Selkirk
- * @version 1.0
+ * @author Andrew Selkirk
*/
-public interface BoundedRangeModel {
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * getValue
- * @returns int
- */
- int getValue();
-
- /**
- * setValue
- * @param value TODO
- */
- void setValue(int value);
-
- /**
- * getMinimum
- * @returns int
- */
- int getMinimum();
-
- /**
- * setMinimum
- * @param minimum TODO
- */
- void setMinimum(int minimum);
-
- /**
- * getMaximum
- * @returns int
- */
- int getMaximum();
-
- /**
- * setMaximum
- * @param maximum TODO
- */
- void setMaximum(int maximum);
-
- /**
- * getValueIsAdjusting
- * @returns boolean
- */
- boolean getValueIsAdjusting();
-
- /**
- * setValueIsAdjusting
- * @param adjusting TODO
- */
- void setValueIsAdjusting(boolean adjusting);
-
- /**
- * getExtent
- * @returns int
- */
- int getExtent();
-
- /**
- * setExtent
- * @param extent TODO
- */
- void setExtent(int extent);
-
- /**
- * setRangeProperties
- * @param value TODO
- * @param extent TODO
- * @param min TODO
- * @param max TODO
- * @param adjusting TODO
- */
- void setRangeProperties(int value, int extent, int min,
- int max, boolean adjusting);
-
- /**
- * addChangeListener
- * @param listener TODO
- */
- void addChangeListener(ChangeListener listener);
-
- /**
- * removeChangeListener
- * @param listener TODO
- */
- void removeChangeListener(ChangeListener listener);
-
-
-} // BoundedRangeModel
+public interface BoundedRangeModel
+{
+ /**
+ * getValue
+ *
+ * @return int
+ *
+ * @see #setValue(int)
+ */
+ int getValue();
+
+ /**
+ * setValue
+ *
+ * @param value the value
+ *
+ * @see #getValue()
+ */
+ void setValue(int value);
+
+ /**
+ * getMinimum
+ *
+ * @return int
+ *
+ * @see #setMinimum(int)
+ */
+ int getMinimum();
+
+ /**
+ * setMinimum
+ *
+ * @param minimum the minimum value
+ *
+ * @see #getMinimum()
+ */
+ void setMinimum(int minimum);
+
+ /**
+ * getMaximum
+ *
+ * @return int
+ *
+ * @see #setMaximum(int)
+ */
+ int getMaximum();
+
+ /**
+ * setMaximum
+ *
+ * @param maximum the maximum value
+ *
+ * @see #getMaximum()
+ */
+ void setMaximum(int maximum);
+
+ /**
+ * Returns the value of the <code>valueIsAdjusting</code> property.
+ *
+ * @return <code>true</code> if value is adjusting,
+ * otherwise <code>false</code>
+ *
+ * @see setValueIsAdjusting(boolean)
+ */
+ boolean getValueIsAdjusting();
+
+ /**
+ * setValueIsAdjusting
+ *
+ * @param adjusting <code>true</code> if adjusting,
+ * <code>false</code> otherwise
+ *
+ * @see #getValueIsAdjusting()
+ */
+ void setValueIsAdjusting(boolean adjusting);
+
+ /**
+ * Returns the current extent.
+ *
+ * @return the extent
+ *
+ * @see #setExtent(int)
+ */
+ int getExtent();
+
+ /**
+ * setExtent
+ *
+ * @param extent the extent
+ *
+ * @see #getExtent()
+ */
+ void setExtent(int extent);
+
+ /**
+ * setRangeProperties
+ * @param value the value
+ * @param extent the extent
+ * @param minnimum the minimum value
+ * @param maximum the maximum value
+ * @param adjusting TODO
+ */
+ void setRangeProperties(int value, int extent, int minimum, int maximum,
+ boolean adjusting);
+
+ /**
+ * Adds a <code>ChangeListener</code> to this object.
+ *
+ * @param listener the listener to add
+ *
+ * @see #removeChangeListener(javax.swing.event.ChangeListener)
+ */
+ void addChangeListener(ChangeListener listener);
+
+ /**
+ * Removes a <code>ChangeListener</code> from this object.
+ *
+ * @param listener the listener to remove
+ *
+ * @see #addChangeListener(javax.swing.event.ChangeListener)
+ */
+ void removeChangeListener(ChangeListener listener);
+}
diff --git a/libjava/javax/swing/ComponentInputMap.java b/libjava/javax/swing/ComponentInputMap.java
index 84110c5f0f2..1c85892f56a 100644
--- a/libjava/javax/swing/ComponentInputMap.java
+++ b/libjava/javax/swing/ComponentInputMap.java
@@ -39,17 +39,17 @@ package javax.swing;
/**
- * @author Andrew Selkirk
+ * @author Andrew Selkirk
* @author Michael Koch
*/
public class ComponentInputMap extends InputMap
{
- /**
+ /**
* The component to notify.
- */
- private JComponent component;
+ */
+ private JComponent component;
- /**
+ /**
* Creates <code>ComponentInputMap</code> object that notifies the given
* component about changes to it.
*
diff --git a/libjava/javax/swing/DebugGraphics.java b/libjava/javax/swing/DebugGraphics.java
index 6aa80adf5af..074d4511477 100644
--- a/libjava/javax/swing/DebugGraphics.java
+++ b/libjava/javax/swing/DebugGraphics.java
@@ -1,5 +1,5 @@
/* DebugGraphics.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.
@@ -56,6 +56,30 @@ import java.text.AttributedCharacterIterator;
*/
public class DebugGraphics extends Graphics
{
+ /**
+ * LOG_OPTION
+ */
+ public static final int LOG_OPTION = 1;
+
+ /**
+ * FLASH_OPTION
+ */
+ public static final int FLASH_OPTION = 2;
+
+ /**
+ * BUFFERED_OPTION
+ */
+ public static final int BUFFERED_OPTION = 4;
+
+ /**
+ * NONE_OPTION
+ */
+ public static final int NONE_OPTION = -1;
+
+ static Color debugFlashColor = Color.RED;
+ static int debugFlashCount = 10;
+ static int debugFlashTime = 1000;
+ static PrintStream debugLogStream = System.out;
/**
* graphics
@@ -63,6 +87,11 @@ public class DebugGraphics extends Graphics
Graphics graphics;
/**
+ * color
+ */
+ Color color = Color.BLACK;
+
+ /**
* buffer
*/
Image buffer;
@@ -88,26 +117,6 @@ public class DebugGraphics extends Graphics
int yOffset;
/**
- * LOG_OPTION
- */
- public static final int LOG_OPTION = 1;
-
- /**
- * FLASH_OPTION
- */
- public static final int FLASH_OPTION = 2;
-
- /**
- * BUFFERED_OPTION
- */
- public static final int BUFFERED_OPTION = 4;
-
- /**
- * NONE_OPTION
- */
- public static final int NONE_OPTION = -1;
-
- /**
* Creates a <code>DebugGraphics</code> object.
*/
public DebugGraphics()
@@ -116,55 +125,62 @@ public class DebugGraphics extends Graphics
}
/**
- * Constructor DebugGraphics
- * @param graphics TODO
+ * Creates a <code>DebugGraphics</code> object.
+ *
+ * @param graphics The <code>Graphics</code> object to wrap
* @param component TODO
*/
public DebugGraphics(Graphics graphics, JComponent component)
{
- // TODO
+ this.graphics = graphics;
+ // FIXME: What shall we do with component ?
}
/**
- * Constructor DebugGraphics
- * @param graphics TODO
+ * Creates a <code>DebugGraphics</code> object.
+ *
+ * @param graphics The <code>Graphics</code> object to wrap
*/
public DebugGraphics(Graphics graphics)
{
- // TODO
+ this.graphics = graphics;
}
/**
- * setColor
- * @param value0 TODO
+ * Sets the color to draw stuff with.
+ *
+ * @param color The color
*/
public void setColor(Color color)
{
- // TODO
+ this.color = color;
}
/**
- * create
+ * Creates a overrides <code>Graphics.create</code> to create a
+ * <code>DebugGraphics</code> object.
*
- * @return Graphics
+ * @return a new <code>DebugGraphics</code> object.
*/
public Graphics create()
{
- return null; // TODO
+ return new DebugGraphics(graphics.create());
}
/**
- * create
+ * Creates a overrides <code>Graphics.create</code> to create a
+ * <code>DebugGraphics</code> object.
*
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
- * @returns Graphics
+ * @param x the x coordinate
+ * @param y the y coordinate
+ * @param width the width
+ * @param height the height
+ *
+ * @return a new <code>DebugGraphics</code> object.
*/
- public Graphics create(int valx, int y, int w, int h)
+ public Graphics create(int x, int y, int width, int height)
{
- return null; // TODO
+ return new DebugGraphics(graphics.create(x, y, width, height));
}
/**
@@ -174,7 +190,7 @@ public class DebugGraphics extends Graphics
*/
public static Color flashColor()
{
- return null; // TODO
+ return debugFlashColor;
}
/**
@@ -184,7 +200,7 @@ public class DebugGraphics extends Graphics
*/
public static void setFlashColor(Color color)
{
- // TODO
+ debugFlashColor = color;
}
/**
@@ -194,7 +210,7 @@ public class DebugGraphics extends Graphics
*/
public static int flashTime()
{
- return 0; // TODO
+ return debugFlashTime;
}
/**
@@ -204,16 +220,17 @@ public class DebugGraphics extends Graphics
*/
public static void setFlashTime(int time)
{
- // TODO
+ debugFlashTime = time;
}
/**
* flashCount
- * @returns int
+ *
+ * @return The number of flashes
*/
public static int flashCount()
{
- return 0; // TODO
+ return debugFlashCount;
}
/**
@@ -223,7 +240,7 @@ public class DebugGraphics extends Graphics
*/
public static void setFlashCount(int count)
{
- // TODO
+ debugFlashCount = count;
}
/**
@@ -233,7 +250,7 @@ public class DebugGraphics extends Graphics
*/
public static PrintStream logStream()
{
- return null; // TODO
+ return debugLogStream;
}
/**
@@ -243,16 +260,17 @@ public class DebugGraphics extends Graphics
*/
public static void setLogStream(PrintStream stream)
{
- // TODO
+ debugLogStream = stream;
}
/**
* getFont
- * @returns Font
+ *
+ * @return The font
*/
public Font getFont()
{
- return null; // TODO
+ return graphics.getFont();
}
/**
@@ -262,46 +280,50 @@ public class DebugGraphics extends Graphics
*/
public void setFont(Font font)
{
- // TODO
+ graphics.setFont(font);
}
/**
- * getColor
- * @returns Color
+ * Returns the color used for drawing.
+ *
+ * @return The color.
*/
public Color getColor()
{
- return null; // TODO
+ return color;
}
/**
- * getFontMetrics
- * @returns FontMetrics
+ * Returns the font metrics of the current font.
+ *
+ * @return a <code>FontMetrics</code> object
*/
public FontMetrics getFontMetrics()
{
- return null; // TODO
+ return graphics.getFontMetrics();
}
/**
- * getFontMetrics
- * @param font TODO
- * @returns FontMetrics
+ * Returns the font metrics for a given font.
+ *
+ * @param font the font to get the metrics for
+ *
+ * @return a <code>FontMetrics</code> object
*/
public FontMetrics getFontMetrics(Font font)
{
- return null; // TODO
+ return graphics.getFontMetrics(font);
}
/**
* translate
*
- * @param x TODO
- * @param y TODO
+ * @param x the x coordinate
+ * @param y the y coordinate
*/
public void translate(int x, int y)
{
- // TODO
+ graphics.translate(x, y);
}
/**
@@ -309,237 +331,291 @@ public class DebugGraphics extends Graphics
*/
public void setPaintMode()
{
- // TODO
+ graphics.setPaintMode();
}
/**
* setXORMode
*
- * @param color TODO
+ * @param color the color
*/
public void setXORMode(Color color)
{
- // TODO
+ graphics.setXORMode(color);
}
/**
* getClipBounds
- * @returns Rectangle
+ *
+ * @return Rectangle
*/
public Rectangle getClipBounds()
{
- return null; // TODO
+ return graphics.getClipBounds();
}
/**
- * clipRect
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
- * @param value3 TODO
+ * Intersects the current clip region with the given region.
+ *
+ * @param x The x-position of the region
+ * @param y The y-position of the region
+ * @param width The width of the region
+ * @param height The height of the region
*/
- public void clipRect(int value0, int value1, int value2, int value3)
+ public void clipRect(int x, int y, int width, int height)
{
- // TODO
+ graphics.clipRect(x, y, width, height);
}
/**
- * setClip
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ * Sets the clipping region.
+ *
+ * @param x The x-position of the region
+ * @param y The y-position of the region
+ * @param width The width of the region
+ * @param height The height of the region
*/
- public void setClip(int x, int y, int w, int h)
+ public void setClip(int x, int y, int width, int height)
{
- // TODO
+ graphics.setClip(x, y, width, height);
}
/**
- * getClip
- * @returns Shape
+ * Returns the current clipping region.
+ *
+ * @return Shape
*/
public Shape getClip()
{
- return null; // TODO
+ return graphics.getClip();
}
/**
- * setClip
- * @param shape TODO
+ * Sets the current clipping region
+ *
+ * @param shape The clippin region
*/
public void setClip(Shape shape)
{
- // TODO
+ graphics.setClip(shape);
}
+ private void sleep(int milliseconds)
+ {
+ try
+ {
+ Thread.sleep(milliseconds);
+ }
+ catch (InterruptedException e)
+ {
+ // Ignore this.
+ }
+ }
+
/**
- * drawRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param valh TODO
+ * Draws a rectangle.
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
*/
- public void drawRect(int x, int y, int w, int h)
+ public void drawRect(int x, int y, int width, int height)
{
- // TODO
- } // drawRect()
+ for (int index = 0; index < (debugFlashCount - 1); ++index)
+ {
+ graphics.setColor(color);
+ graphics.drawRect(x, y, width, height);
+ sleep(debugFlashTime);
+
+ graphics.setColor(debugFlashColor);
+ graphics.drawRect(x, y, width, height);
+ sleep(debugFlashTime);
+ }
+
+ graphics.setColor(color);
+ graphics.drawRect(x, y, width, height);
+ }
/**
- * fillRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ * Draws a filled rectangle.
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
*/
- public void fillRect(int x, int y, int w, int h)
+ public void fillRect(int x, int y, int width, int height)
{
- // TODO
- } // fillRect()
+ for (int index = 0; index < (debugFlashCount - 1); ++index)
+ {
+ graphics.setColor(color);
+ graphics.fillRect(x, y, width, height);
+ sleep(debugFlashTime);
+
+ graphics.setColor(debugFlashColor);
+ graphics.fillRect(x, y, width, height);
+ sleep(debugFlashTime);
+ }
+
+ graphics.setColor(color);
+ graphics.fillRect(x, y, width, height);
+ }
/**
* clearRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
*/
- public void clearRect(int x, int y, int w, int h)
+ public void clearRect(int x, int y, int width, int height)
{
- // TODO
+ graphics.clearRect(x, y, width, height);
}
/**
* drawRoundRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
* @param arcWidth TODO
* @param arcHeight TODO
*/
- public void drawRoundRect(int x, int y, int w, int h, int arcWidth,
- int arcHeight)
+ public void drawRoundRect(int x, int y, int width, int height,
+ int arcWidth, int arcHeight)
{
- // TODO
+ graphics.drawRoundRect(x, y, width, height, arcWidth, arcHeight);
}
/**
* fillRoundRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
* @param arcWidth TODO
* @param arcHeight TODO
*/
- public void fillRoundRect(int x, int y, int w, int h, int arcWidth,
- int arcHeight)
+ public void fillRoundRect(int x, int y, int width, int height,
+ int arcWidth, int arcHeight)
{
- // TODO
+ graphics.fillRoundRect(x, y, width, height, arcWidth, arcHeight);
}
/**
* drawLine
- * @param x1 TODO
- * @param y1 TODO
- * @param x2 TODO
- * @param y2 TODO
+ *
+ * @param x1 The x-position of the start
+ * @param y1 The y-position of the start
+ * @param x2 The x-position of the end
+ * @param y2 The y-position of the end
*/
public void drawLine(int x1, int y1, int x2, int y2)
{
- // TODO
+ graphics.drawLine(x1, y1, x2, y2);
}
/**
* draw3DRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
* @param raised TODO
*/
- public void draw3DRect(int x, int y, int w, int h, boolean raised)
+ public void draw3DRect(int x, int y, int width, int height, boolean raised)
{
- // TODO
+ graphics.draw3DRect(x, y, width, height, raised);
}
/**
* fill3DRect
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x The x-position of the rectangle
+ * @param y The y-position of the rectangle
+ * @param width The width of the rectangle
+ * @param height The height of the rectangle
* @param raised TODO
*/
- public void fill3DRect(int x, int y, int w, int h, boolean raised)
+ public void fill3DRect(int x, int y, int width, int height, boolean raised)
{
- // TODO
+ graphics.fill3DRect(x, y, width, height, raised);
}
/**
* drawOval
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x the x coordinate
+ * @param y the y coordiante
+ * @param width the width
+ * @param height the height
*/
- public void drawOval(int x, int y, int w, int h)
+ public void drawOval(int x, int y, int width, int height)
{
- // TODO
+ graphics.drawOval(x, y, width, height);
}
/**
* fillOval
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ *
+ * @param x the x coordinate
+ * @param y the y coordinate
+ * @param width the width
+ * @param height the height
*/
- public void fillOval(int x, int y, int w, int h)
+ public void fillOval(int x, int y, int width, int height)
{
- // TODO
+ graphics.fillOval(x, y, width, height);
}
/**
* drawArc
*
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ * @param x the x coordinate
+ * @param y the y coordinate
+ * @param width the width
+ * @param height the height
* @param startAngle TODO
* @param arcAngle TODO
*/
- public void drawArc(int x, int y, int w, int h, int startAngle, int arcAngle)
+ public void drawArc(int x, int y, int width, int height,
+ int startAngle, int arcAngle)
{
- // TODO
+ graphics.drawArc(x, y, width, height, startAngle, arcAngle);
}
/**
* fillArc
*
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
+ * @param x the coordinate
+ * @param y the y coordinate
+ * @param width the width
+ * @param height the height
* @param startAngle TODO
* @param arcAngle TODO
*/
- public void fillArc(int x, int y, int w, int h, int startAngle, int arcAngle)
+ public void fillArc(int x, int y, int width, int height,
+ int startAngle, int arcAngle)
{
- // TODO
+ graphics.fillArc(x, y, width, height, startAngle, arcAngle);
}
/**
* drawPolyline
+ *
* @param xpoints TODO
* @param ypoints TODO
* @param npoints TODO
*/
public void drawPolyline(int[] xpoints, int[] ypoints, int npoints)
{
- // TODO
+ graphics.drawPolyline(xpoints, ypoints, npoints);
}
/**
@@ -551,7 +627,7 @@ public class DebugGraphics extends Graphics
*/
public void drawPolygon(int[] xpoints, int[] ypoints, int npoints)
{
- // TODO
+ graphics.drawPolygon(xpoints, ypoints, npoints);
}
/**
@@ -563,31 +639,32 @@ public class DebugGraphics extends Graphics
*/
public void fillPolygon(int[] xpoints, int[] ypoints, int npoints)
{
- // TODO
+ graphics.fillPolygon(xpoints, ypoints, npoints);
}
/**
* drawString
*
- * @param string TODO
- * @param x TODO
- * @param y TODO
+ * @param string the string
+ * @param x the x coordinate
+ * @param y the y coordinate
*/
- public void drawString(String string, int s, int y)
+ public void drawString(String string, int x, int y)
{
- // TODO
+ graphics.drawString(string, x, y);
}
/**
* drawString
*
* @param iterator TODO
- * @param x TODO
- * @param y TODO
+ * @param x the x coordinate
+ * @param y the y coordinate
*/
- public void drawString(AttributedCharacterIterator iterator, int x, int y)
+ public void drawString(AttributedCharacterIterator iterator,
+ int x, int y)
{
- // TODO
+ graphics.drawString(iterator, x, y);
}
/**
@@ -596,86 +673,111 @@ public class DebugGraphics extends Graphics
* @param data TODO
* @param offset TODO
* @param length TODO
- * @param x TODO
- * @param y TODO
+ * @param x the x coordinate
+ * @param y the y coordinate
*/
- public void drawBytes(byte[] data, int offset, int length, int x, int y)
+ public void drawBytes(byte[] data, int offset, int length,
+ int x, int y)
{
- // TODO
+ graphics.drawBytes(data, offset, length, x, y);
}
/**
* drawChars
- * @param data TODO
- * @param offset TODO
- * @param length TODO
- * @param value3 TODO
- * @param value4 TODO
+ *
+ * @param data array of characters to draw
+ * @param offset offset in array
+ * @param length number of characters in array to draw
+ * @param x x-position
+ * @param y y-position
*/
- public void drawChars(char[] data, int offset, int value2, int x, int y)
+ public void drawChars(char[] data, int offset, int length,
+ int x, int y)
{
- // TODO
- } // drawChars()
+ for (int index = 0; index < (debugFlashCount - 1); ++index)
+ {
+ graphics.setColor(color);
+ graphics.drawChars(data, offset, length, x, y);
+ sleep(debugFlashTime);
+
+ graphics.setColor(debugFlashColor);
+ graphics.drawChars(data, offset, length, x, y);
+ sleep(debugFlashTime);
+ }
+
+ graphics.setColor(color);
+ graphics.drawChars(data, offset, length, x, y);
+ }
/**
* drawImage
- * @param image TODO
- * @param x TODO
- * @param y TODO
- * @param observer TODO
- * @returns boolean
+ *
+ * @param image The image to draw
+ * @param x The x position
+ * @param y The y position
+ * @param observer The image observer
+ * @return boolean
*/
- public boolean drawImage(Image image, int x, int y, ImageObserver observer)
+ public boolean drawImage(Image image, int x, int y,
+ ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, x, y, observer);
}
/**
* drawImage
- * @param image TODO
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
- * @param observer TODO
- * @returns boolean
+ *
+ * @param image The image to draw
+ * @param x The x position
+ * @param y The y position
+ * @param width The width of the area to draw the image
+ * @param height The height of the area to draw the image
+ * @param observer The image observer
+ *
+ * @return boolean
*/
- public boolean drawImage(Image image, int x, int y, int w, int h,
- ImageObserver observer)
+ public boolean drawImage(Image image, int x, int y, int width,
+ int height, ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, x, y, width, height, observer);
}
/**
* drawImage
- * @param image TODO
- * @param x TODO
- * @param y TODO
- * @param background TODO
- * @param observer TODO
- * @returns boolean
+ *
+ * @param image The image to draw
+ * @param x The x position
+ * @param y The y position
+ * @param background The color for the background in the opaque regions
+ * of the image
+ * @param observer The image observer
+ *
+ * @return boolean
*/
- public boolean drawImage(Image image, int x, int y, Color background,
- ImageObserver observer)
+ public boolean drawImage(Image image, int x, int y,
+ Color background, ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, x, y, background, observer);
}
/**
* drawImage
- * @param image TODO
- * @param x TODO
- * @param y TODO
- * @param w TODO
- * @param h TODO
- * @param background TODO
- * @param observer TODO
- * @returns boolean
- */
- public boolean drawImage(Image image, int x, int y, int w, int h,
- Color background, ImageObserver observer)
+ *
+ * @param image The image to draw
+ * @param x The x position
+ * @param y The y position
+ * @param width The width of the area to draw the image
+ * @param height The height of the area to draw the image
+ * @param background The color for the background in the opaque regions
+ * of the image
+ * @param observer The image observer
+ *
+ * @return boolean
+ */
+ public boolean drawImage(Image image, int x, int y, int width, int height,
+ Color background, ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, x, y, width, height, background, observer);
}
/**
@@ -690,14 +792,15 @@ public class DebugGraphics extends Graphics
* @param sy1 TODO
* @param sx2 TODO
* @param sy2 TODO
- * @param observer TODO
- * @returns boolean
+ * @param observer The image observer
+ *
+ * @return boolean
*/
- public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2,
- ImageObserver observer)
+ public boolean drawImage(Image image, int dx1, int dy1,
+ int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,
+ ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer);
}
/**
@@ -712,15 +815,17 @@ public class DebugGraphics extends Graphics
* @param sy1 TODO
* @param sx2 TODO
* @param sy2 TODO
- * @param background TODO
- * @param observer TODO
- * @returns boolean
+ * @param background The color for the background in the opaque regions
+ * of the image
+ * @param observer The image observer
+ *
+ * @return boolean
*/
- public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2,
- Color background, ImageObserver observer)
+ public boolean drawImage(Image image, int dx1, int dy1,
+ int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,
+ Color background, ImageObserver observer)
{
- return false; // TODO
+ return graphics.drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, background, observer);
}
/**
@@ -733,9 +838,10 @@ public class DebugGraphics extends Graphics
* @param destx The x position of the destination area
* @param desty The y posiiton of the destination area
*/
- public void copyArea(int x, int y, int w, int h, int destx, int desty)
+ public void copyArea(int x, int y, int width, int height,
+ int destx, int desty)
{
- // TODO
+ graphics.copyArea(x, y, width, height, destx, desty);
}
/**
@@ -743,7 +849,8 @@ public class DebugGraphics extends Graphics
*/
public void dispose()
{
- // TODO
+ graphics.dispose();
+ graphics = null;
}
/**
@@ -757,22 +864,13 @@ public class DebugGraphics extends Graphics
}
/**
- * toShortString
- * @returns String
- */
- String toShortString()
- {
- return null; // TODO
- } // toShortString()
-
- /**
* setDebugOptions
*
* @param options the debug options
*/
public void setDebugOptions(int options)
{
- // TODO
+ debugOptions = options;
}
/**
@@ -782,6 +880,6 @@ public class DebugGraphics extends Graphics
*/
public int getDebugOptions()
{
- return 0; // TODO
+ return debugOptions;
}
}
diff --git a/libjava/javax/swing/DefaultBoundedRangeModel.java b/libjava/javax/swing/DefaultBoundedRangeModel.java
index 9a2d974cbaa..9c1962379a8 100644
--- a/libjava/javax/swing/DefaultBoundedRangeModel.java
+++ b/libjava/javax/swing/DefaultBoundedRangeModel.java
@@ -1,6 +1,6 @@
/* DefaultBoundedRangeModel.java -- Default implementation
of BoundedRangeModel.
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,10 +47,10 @@ import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
/**
- * A default implementation of BoundedRangeModel.
+ * A default implementation of <code>BoundedRangeModel</code>.
*
- * @author <a href="mailto:aselkirk@sympatico.ca">Andrew Selkirk</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Andrew Selkirk (aselkirk@sympatico.ca)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class DefaultBoundedRangeModel
implements BoundedRangeModel, Serializable
@@ -59,7 +59,7 @@ public class DefaultBoundedRangeModel
* The identifier of this class in object serialization. Verified
* using the serialver tool of Sun J2SE 1.4.1_01.
*/
- static final long serialVersionUID = 5034068491295259790L;
+ private static final long serialVersionUID = 5034068491295259790L;
/**
@@ -67,7 +67,7 @@ public class DefaultBoundedRangeModel
* when the state of this range model has changed.
*
* <p>The event object is created on demand, the first time it
- * is actually needed.
+ * is actually needed.</p>
*
* @see #fireStateChanged()
*/
@@ -155,7 +155,7 @@ public class DefaultBoundedRangeModel
* @param maximum the initial maximal value of the range model.
*
* @throws IllegalArgumentException if the following condition is
- * not satisfied: <code>minimum <= value <= value + extent <=
+ * not satisfied: <code>minimum &lt;= value &lt;= value + extent &lt;=
* maximum</code>.
*/
public DefaultBoundedRangeModel(int value, int extent, int minimum,
@@ -176,6 +176,8 @@ public class DefaultBoundedRangeModel
/**
* Returns a string with all relevant properties of this range
* model.
+ *
+ * @return a string representing the object
*/
public String toString()
{
@@ -193,6 +195,8 @@ public class DefaultBoundedRangeModel
* Returns the current value of this bounded range model. In a
* scroll bar visualization of a {@link BoundedRangeModel}, the
* <code>value</code> is displayed as the position of the thumb.
+ *
+ * @return the value
*/
public int getValue()
{
@@ -206,6 +210,8 @@ public class DefaultBoundedRangeModel
* <code>value</code> is displayed as the position of the thumb;
* changing the <code>value</code> of a scroll bar's model
* thus moves the thumb to a different position.
+ *
+ * @param value the value
*/
public void setValue(int value)
{
@@ -226,6 +232,8 @@ public class DefaultBoundedRangeModel
* a number greater than or equal to zero. In a scroll bar
* visualization of a {@link BoundedRangeModel}, the
* <code>extent</code> is displayed as the size of the thumb.
+ *
+ * @return the extent
*/
public int getExtent()
{
@@ -282,6 +290,8 @@ public class DefaultBoundedRangeModel
/**
* Returns the current maximal value of this bounded range model.
+ *
+ * @return the maximum
*/
public int getMaximum()
{
@@ -313,7 +323,7 @@ public class DefaultBoundedRangeModel
* around; when the mouse is relased, they set the property to
* <code>false</code> and post a final {@link ChangeEvent}.
*
- * @returns <code>true</code> if the value will change soon again;
+ * @return <code>true</code> if the value will change soon again;
* <code>false</code> if the value will probably not change soon.
*/
public boolean getValueIsAdjusting()
@@ -344,7 +354,7 @@ public class DefaultBoundedRangeModel
/**
- * setRangeProperties
+ * Sets all properties.
*
* @param value the new value of the range model. In a scroll bar
* visualization of a {@link BoundedRangeModel}, the
@@ -422,16 +432,13 @@ public class DefaultBoundedRangeModel
*/
protected void fireStateChanged()
{
- Object[] listeners;
-
- listeners = listenerList.getListenerList();
- for (int i = listeners.length - 2; i >= 0; i -= 2)
- if (listeners[i] == ChangeListener.class)
- {
- if (changeEvent == null)
- changeEvent = new ChangeEvent(this);
- ((ChangeListener) listeners[i + 1]).stateChanged(changeEvent);
- }
+ ChangeListener[] listeners = getChangeListeners();
+
+ if (changeEvent == null)
+ changeEvent = new ChangeEvent(this);
+
+ for (int i = listeners.length - 1; i >= 0; --i)
+ listeners[i].stateChanged(changeEvent);
}
diff --git a/libjava/javax/swing/DefaultButtonModel.java b/libjava/javax/swing/DefaultButtonModel.java
index 543428a931d..0473f53bc21 100644
--- a/libjava/javax/swing/DefaultButtonModel.java
+++ b/libjava/javax/swing/DefaultButtonModel.java
@@ -71,7 +71,7 @@ import javax.swing.event.EventListenerList;
public class DefaultButtonModel implements ButtonModel, Serializable
{
/** DOCUMENT ME! */
- static final long serialVersionUID = -5342609566534980231L;
+ private static final long serialVersionUID = -5342609566534980231L;
/**
* Indicates that the button is <em>partially</em> committed to being
@@ -272,7 +272,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
*
* @param e The ItemEvent to fire
*/
- public void fireItemStateChanged(ItemEvent e)
+ protected void fireItemStateChanged(ItemEvent e)
{
ItemListener[] ll = getItemListeners();
@@ -288,7 +288,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
*
* @param e The ActionEvent to fire
*/
- public void fireActionPerformed(ActionEvent e)
+ protected void fireActionPerformed(ActionEvent e)
{
ActionListener[] ll = getActionListeners();
@@ -301,7 +301,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* has occurred. This happens in response to the any change to a property
* of the model.
*/
- public void fireStateChanged()
+ protected void fireStateChanged()
{
ChangeListener[] ll = getChangeListeners();
@@ -315,7 +315,7 @@ public class DefaultButtonModel implements ButtonModel, Serializable
* @param stateflag DOCUMENT ME!
* @param b DOCUMENT ME!
*/
- protected void changeState(int stateflag, boolean b)
+ private void changeState(int stateflag, boolean b)
{
int oldstate = stateMask;
int newstate;
diff --git a/libjava/javax/swing/DefaultCellEditor.java b/libjava/javax/swing/DefaultCellEditor.java
index 1dd17b43555..26bf708be2d 100644
--- a/libjava/javax/swing/DefaultCellEditor.java
+++ b/libjava/javax/swing/DefaultCellEditor.java
@@ -58,7 +58,7 @@ public class DefaultCellEditor
extends AbstractCellEditor
implements TableCellEditor, TreeCellEditor
{
- static final long serialVersionUID = 3564035141373880027L;
+ private static final long serialVersionUID = 3564035141373880027L;
/**
* EditorDelegate
diff --git a/libjava/javax/swing/DefaultCellRenderer.java b/libjava/javax/swing/DefaultCellRenderer.java
deleted file mode 100644
index fca2f1d70c9..00000000000
--- a/libjava/javax/swing/DefaultCellRenderer.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* DefaultCellRenderer.java --
- Copyright (C) 2002, 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;
-
-// this is what SUN basically told us to do so:
-// no icon though as that's not implemented yet....
-
-import java.awt.Component;
-
-public class DefaultCellRenderer extends JLabel implements ListCellRenderer
-{
- public Component getListCellRendererComponent(JList list,
- Object value,
- int index,
- boolean isSelected,
- boolean cellHasFocus)
- {
- String s = value.toString();
- setText(s);
-
- // System.out.println("=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" + s);
-
-
- if (isSelected)
- {
- setBackground(list.getSelectionBackground());
- setForeground(list.getSelectionForeground());
- }
- else
- {
- setBackground(list.getBackground());
- setForeground(list.getForeground());
- }
-
- setEnabled(list.isEnabled());
- setFont(list.getFont());
- return this;
- }
-}
diff --git a/libjava/javax/swing/DefaultComboBoxModel.java b/libjava/javax/swing/DefaultComboBoxModel.java
index a5546f2954a..c2ece643551 100644
--- a/libjava/javax/swing/DefaultComboBoxModel.java
+++ b/libjava/javax/swing/DefaultComboBoxModel.java
@@ -50,12 +50,13 @@ import java.util.Vector;
*
* @author Andrew Selkirk
* @author Olga Rodimina
+ * @author Robert Schuster
* @version 1.0
*/
public class DefaultComboBoxModel extends AbstractListModel
implements MutableComboBoxModel, Serializable
{
- static final long serialVersionUID = 6698657703676921904L;
+ private static final long serialVersionUID = 6698657703676921904L;
/**
* List containing items in the combo box
@@ -182,13 +183,23 @@ public class DefaultComboBoxModel extends AbstractListModel
* ListDataEvent to all registered ListDataListeners of the JComboBox. The
* start and end index of the event is set to -1 to indicate combo box's
* selection has changed, and not its contents.
+ *
+ * <p>If the given object is not contained in the combo box list then nothing
+ * happens.</p>
*
* @param object item to select in the JComboBox
*/
public void setSelectedItem(Object object)
{
- selectedItem = object;
- fireContentsChanged(this, -1, -1);
+
+ /* Updates the selected item only if the given object
+ * is null or in the list (this is how the JDK behaves).
+ */
+ if(object == null || list.contains(object)) {
+ selectedItem = object;
+ fireContentsChanged(this, -1, -1);
+ }
+
}
/**
diff --git a/libjava/javax/swing/DefaultDesktopManager.java b/libjava/javax/swing/DefaultDesktopManager.java
index 4928c5dc9f4..a0dd5e2d1a1 100644
--- a/libjava/javax/swing/DefaultDesktopManager.java
+++ b/libjava/javax/swing/DefaultDesktopManager.java
@@ -1,5 +1,5 @@
/* DefaultDesktopManager.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;
import java.awt.Component;
@@ -56,7 +57,7 @@ import javax.swing.JInternalFrame.JDesktopIcon;
public class DefaultDesktopManager implements DesktopManager, Serializable
{
/** DOCUMENT ME! */
- static final long serialVersionUID = 4657624909838017887L;
+ private static final long serialVersionUID = 4657624909838017887L;
/** The property change event fired when the wasIcon property changes. */
static final String WAS_ICON_ONCE_PROPERTY = "wasIconOnce";
@@ -80,7 +81,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
private transient Container pane;
/**
- * An array of Rectangles that holds the bounds of the JDesktopIcons in the
+ * An array of Rectangles that holds the bounds of the JDesktopIcons in the
* JDesktopPane when looking for where to place a new icon.
*/
private transient Rectangle[] iconRects;
@@ -90,7 +91,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
*/
public DefaultDesktopManager()
{
- } // DefaultDesktopManager()
+ }
/**
* This method is not normally called since the user will typically add the
@@ -111,7 +112,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
c.remove(frame.getDesktopIcon());
c.add(frame);
frame.setVisible(true);
- } // openFrame()
+ }
/**
* This method removes the JInternalFrame and JDesktopIcon (if one is
@@ -132,7 +133,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
c.remove(frame);
c.repaint();
}
- } // closeFrame()
+ }
/**
* This method resizes the JInternalFrame to match its parent's bounds.
@@ -171,7 +172,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
// Do nothing.
}
}
- } // maximizeFrame()
+ }
/**
* This method restores the JInternalFrame's bounds to what they were
@@ -200,7 +201,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
setBoundsForFrame(frame, normalBounds.x, normalBounds.y,
normalBounds.width, normalBounds.height);
- } // minimizeFrame()
+ }
/**
* This method removes the JInternalFrame from its parent and adds its
@@ -231,7 +232,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
{
Rectangle r = getBoundsForIconOf(frame);
icon.setBounds(r);
- setWasIcon(frame, true);
+ setWasIcon(frame, Boolean.TRUE);
}
if (c != null)
@@ -243,7 +244,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
}
c.remove(frame);
}
- } // iconifyFrame()
+ }
/**
* This method removes the JInternalFrame's JDesktopIcon representation and
@@ -279,7 +280,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
}
c.invalidate();
- } // deiconifyFrame()
+ }
/**
* This method activates the JInternalFrame by moving it to the front and
@@ -305,7 +306,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
}
frame.toFront();
- } // activateFrame()
+ }
/**
* This method is called when the JInternalFrame loses focus.
@@ -330,7 +331,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
{
}
}
- } // deactivateFrame()
+ }
/**
* This method is called to indicate that the DesktopManager should prepare
@@ -354,7 +355,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
currentDragMode = JDesktopPane.LIVE_DRAG_MODE;
else
currentDragMode = ((JDesktopPane) pane).getDragMode();
- } // beginDraggingFrame()
+ }
/**
* This method is called to drag the JInternalFrame to a new location.
@@ -378,7 +379,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
setBoundsForFrame((JInternalFrame) component, newX, newY, b.width,
b.height);
}
- } // dragFrame()
+ }
/**
* This method indicates that the dragging is done. Any state information
@@ -396,7 +397,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
dragCache = null;
}
component.repaint();
- } // endDraggingFrame()
+ }
/**
* This method is called to indicate that the given JComponent will be
@@ -417,7 +418,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
currentDragMode = JDesktopPane.LIVE_DRAG_MODE;
else
currentDragMode = ((JDesktopPane) pane).getDragMode();
- } // beginResizingFrame()
+ }
/**
* This method resizes the give JComponent.
@@ -440,7 +441,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
else
setBoundsForFrame(component, dragCache.x, dragCache.y, dragCache.width,
dragCache.height);
- } // resizeFrame()
+ }
/**
* This method is called to indicate that the given JComponent has finished
@@ -459,7 +460,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
dragCache = null;
}
component.repaint();
- } // endResizingFrame()
+ }
/**
* This method calls setBounds with the given parameters and repaints the
@@ -482,7 +483,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
component.getParent().repaint();
else
component.repaint();
- } // setBoundsForFrame()
+ }
/**
* This is a helper method that removes the JDesktopIcon of the given
@@ -496,7 +497,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
Container c = icon.getParent();
if (c != null && icon != null)
c.remove(icon);
- } // removeIconFor()
+ }
/**
* This method is called by iconifyFrame to determine the bounds of the
@@ -570,7 +571,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
}
return ideal;
- } // getBoundsForIconOf()
+ }
/**
* This method sets the bounds of the JInternalFrame right before the
@@ -582,7 +583,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
protected void setPreviousBounds(JInternalFrame frame, Rectangle rect)
{
frame.setNormalBounds(rect);
- } // setPreviousBounds()
+ }
/**
* This method returns the normal bounds of the JInternalFrame from before
@@ -595,7 +596,7 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
protected Rectangle getPreviousBounds(JInternalFrame frame)
{
return frame.getNormalBounds();
- } // getPreviousBounds()
+ }
/**
* This method sets the value to true if the given JInternalFrame has been
@@ -605,10 +606,10 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
* @param value True if the JInternalFrame has been iconized and the bounds
* of the JDesktopIcon are valid.
*/
- protected void setWasIcon(JInternalFrame frame, boolean value)
+ protected void setWasIcon(JInternalFrame frame, Boolean value)
{
- frame.setWasIcon(value, WAS_ICON_ONCE_PROPERTY);
- } // setWasIcon()
+ frame.setWasIcon(value.booleanValue(), WAS_ICON_ONCE_PROPERTY);
+ }
/**
* This method returns true if the given JInternalFrame has been iconized
@@ -622,5 +623,5 @@ public class DefaultDesktopManager implements DesktopManager, Serializable
protected boolean wasIcon(JInternalFrame frame)
{
return frame.getWasIcon();
- } // wasIcon()
-} // DefaultDesktopManager
+ }
+}
diff --git a/libjava/javax/swing/DefaultListCellRenderer.java b/libjava/javax/swing/DefaultListCellRenderer.java
index 4c4cee3c2bb..91b8a8a2edd 100644
--- a/libjava/javax/swing/DefaultListCellRenderer.java
+++ b/libjava/javax/swing/DefaultListCellRenderer.java
@@ -52,10 +52,10 @@ import javax.swing.border.EmptyBorder;
* @author Andrew Selkirk
* @version 1.0
*/
-public class DefaultListCellRenderer extends JLabel implements ListCellRenderer,
- Serializable
+public class DefaultListCellRenderer extends JLabel
+ implements ListCellRenderer, Serializable
{
- static final long serialVersionUID = 7708947179685189462L;
+ private static final long serialVersionUID = 7708947179685189462L;
public static class UIResource extends DefaultListCellRenderer
implements javax.swing.plaf.UIResource
@@ -89,6 +89,7 @@ public class DefaultListCellRenderer extends JLabel implements ListCellRenderer,
String s = value.toString();
setText(s);
setOpaque(true);
+ setHorizontalAlignment(LEFT);
if (isSelected)
{
diff --git a/libjava/javax/swing/DefaultListModel.java b/libjava/javax/swing/DefaultListModel.java
index 53dd20cbc10..c3704dbea9e 100644
--- a/libjava/javax/swing/DefaultListModel.java
+++ b/libjava/javax/swing/DefaultListModel.java
@@ -1,5 +1,5 @@
/* DefaultListModel.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.
@@ -198,7 +198,7 @@ public class DefaultListModel extends AbstractListModel
public void add(int index, Object element)
{
elements.add(index, element);
- fireContentsChanged(this, index, index);
+ fireIntervalAdded(this, index, index);
}
/**
@@ -209,8 +209,9 @@ public class DefaultListModel extends AbstractListModel
*/
public void addElement(Object element)
{
+ int s = elements.size();
elements.add(element);
- fireIntervalAdded(this, elements.size(), elements.size());
+ fireIntervalAdded(this, s, s);
}
/**
@@ -266,8 +267,12 @@ public class DefaultListModel extends AbstractListModel
*/
public void clear()
{
- elements.clear();
- fireIntervalRemoved(this, 0, elements.size());
+ int s = elements.size();
+ if (s > 0)
+ {
+ elements.clear();
+ fireIntervalRemoved(this, 0, s - 1);
+ }
}
/**
@@ -341,7 +346,16 @@ public class DefaultListModel extends AbstractListModel
*/
public void setSize(int size)
{
+ int oldSize = elements.size();
elements.setSize(size);
+ if (oldSize < size)
+ {
+ fireIntervalAdded(this, oldSize, size - 1);
+ }
+ else if (oldSize > size)
+ {
+ this.fireIntervalRemoved(this, size, oldSize - 1);
+ }
}
/**
diff --git a/libjava/javax/swing/DefaultListSelectionModel.java b/libjava/javax/swing/DefaultListSelectionModel.java
index d5801c7dde0..ccae2804c3d 100644
--- a/libjava/javax/swing/DefaultListSelectionModel.java
+++ b/libjava/javax/swing/DefaultListSelectionModel.java
@@ -118,7 +118,7 @@ public class DefaultListSelectionModel implements Cloneable,
* @see #isLeadAnchorNotificationEnabled
* @see #setLeadAnchorNotificationEnabled
*/
- boolean leadAnchorNotificationEnabled = true;
+ protected boolean leadAnchorNotificationEnabled = true;
/**
@@ -520,6 +520,18 @@ public class DefaultListSelectionModel implements Cloneable,
*
* @param firstIndex The low index of the changed range
* @param lastIndex The high index of the changed range
+ */
+ protected void fireValueChanged(int firstIndex, int lastIndex)
+ {
+ fireValueChanged(firstIndex, lastIndex, getValueIsAdjusting());
+ }
+
+ /**
+ * Fires a {@link ListSelectionEvent} to all the listeners of type {@link
+ * ListSelectionListener} registered with this selection model.
+ *
+ * @param firstIndex The low index of the changed range
+ * @param lastIndex The high index of the changed range
* @param isAdjusting Whether this change is part of a seqence of adjustments
* made to the selection, such as during interactive scrolling
*/
@@ -588,4 +600,21 @@ public class DefaultListSelectionModel implements Cloneable,
{
return (ListSelectionListener[]) getListeners(ListSelectionListener.class);
}
+
+ /**
+ * Returns a clone of this object.
+ * <code>listenerList</code> don't gets duplicated.
+ *
+ * @return the cloned object
+ *
+ * @throws CloneNotSupportedException if an error occurs
+ */
+ public Object clone()
+ throws CloneNotSupportedException
+ {
+ DefaultListSelectionModel model =
+ (DefaultListSelectionModel) super.clone();
+ model.sel = (BitSet) sel.clone();
+ return model;
+ }
}
diff --git a/libjava/javax/swing/DefaultSingleSelectionModel.java b/libjava/javax/swing/DefaultSingleSelectionModel.java
index 0b1371ed9e1..63611f4a09a 100644
--- a/libjava/javax/swing/DefaultSingleSelectionModel.java
+++ b/libjava/javax/swing/DefaultSingleSelectionModel.java
@@ -47,23 +47,23 @@ import javax.swing.event.EventListenerList;
/**
* DefaultSingleSelectionModel
- * @author Andrew Selkirk
- * @version 1.0
+ *
+ * @author Andrew Selkirk
*/
public class DefaultSingleSelectionModel
implements SingleSelectionModel, Serializable
{
- static final long serialVersionUID = 3676229404753786004L;
+ private static final long serialVersionUID = 3676229404753786004L;
/**
* changeEvent
*/
- protected transient ChangeEvent changeEvent = new ChangeEvent (this);
+ protected transient ChangeEvent changeEvent = new ChangeEvent(this);
/**
* listenerList
*/
- protected EventListenerList listenerList= new EventListenerList ();
+ protected EventListenerList listenerList = new EventListenerList();
/**
* index
@@ -73,15 +73,16 @@ public class DefaultSingleSelectionModel
/**
* Constructor DefaultSingleSelectionModel
*/
- public DefaultSingleSelectionModel ()
+ public DefaultSingleSelectionModel()
{
+ // Do nothing.
}
/**
* getSelectedIndex
* @return int
*/
- public int getSelectedIndex ()
+ public int getSelectedIndex()
{
return index;
}
@@ -90,34 +91,28 @@ public class DefaultSingleSelectionModel
* setSelectedIndex
* @param index TODO
*/
- public void setSelectedIndex (int index)
+ public void setSelectedIndex(int index)
{
- // Set Data
this.index = index;
-
- // Notify Listeners
- fireStateChanged ();
+ fireStateChanged();
}
/**
* clearSelection
*/
- public void clearSelection ()
+ public void clearSelection()
{
- // Set Data
index = -1;
-
- // Notify Listeners
- fireStateChanged ();
+ fireStateChanged();
}
/**
* isSelected
* @return boolean
*/
- public boolean isSelected ()
+ public boolean isSelected()
{
- return (index != -1);
+ return index != -1;
}
/**
@@ -125,9 +120,9 @@ public class DefaultSingleSelectionModel
*
* @param listener the listener to add
*/
- public void addChangeListener (ChangeListener listener)
+ public void addChangeListener(ChangeListener listener)
{
- listenerList.add (ChangeListener.class, listener);
+ listenerList.add(ChangeListener.class, listener);
}
/**
@@ -135,30 +130,20 @@ public class DefaultSingleSelectionModel
*
* @param listener the listener to remove
*/
- public void removeChangeListener (ChangeListener listener)
+ public void removeChangeListener(ChangeListener listener)
{
- listenerList.remove (ChangeListener.class, listener);
+ listenerList.remove(ChangeListener.class, listener);
}
/**
* fireStateChanged
*/
- protected void fireStateChanged ()
+ protected void fireStateChanged()
{
- // Variables
- ChangeListener listener;
- ChangeListener[] listeners;
- int index;
-
- // Get Listeners
- listeners = getChangeListeners ();
-
- // Process Listeners
- for (index = 0; index < listeners.length; index++)
- {
- listener = listeners [index];
- listener.stateChanged (changeEvent);
- }
+ ChangeListener[] listeners = getChangeListeners();
+
+ for (int i = 0; i < listeners.length; i++)
+ listeners[i].stateChanged(changeEvent);
}
/**
@@ -170,9 +155,9 @@ public class DefaultSingleSelectionModel
*
* @since 1.3
*/
- public EventListener[] getListeners (Class listenerClass)
+ public EventListener[] getListeners(Class listenerClass)
{
- return listenerList.getListeners (listenerClass);
+ return listenerList.getListeners(listenerClass);
}
/**
@@ -180,8 +165,8 @@ public class DefaultSingleSelectionModel
*
* @since 1.4
*/
- public ChangeListener[] getChangeListeners ()
+ public ChangeListener[] getChangeListeners()
{
- return (ChangeListener[]) getListeners (ChangeListener.class);
+ return (ChangeListener[]) getListeners(ChangeListener.class);
}
}
diff --git a/libjava/javax/swing/ImageIcon.java b/libjava/javax/swing/ImageIcon.java
index c0e8e0d3117..36bd088ff6b 100644
--- a/libjava/javax/swing/ImageIcon.java
+++ b/libjava/javax/swing/ImageIcon.java
@@ -1,4 +1,4 @@
-/* ImageIcon.java --
+/* ImageIcon.java --
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ public class ImageIcon
public ImageIcon()
{
}
-
+
public ImageIcon(String file)
{
this(file, file);
@@ -98,12 +98,12 @@ public class ImageIcon
this.image = Toolkit.getDefaultToolkit().createImage(image.getSource());
this.description = description;
}
-
+
public ImageObserver getImageObserver()
{
return observer;
}
-
+
public void setImageObserver(ImageObserver newObserver)
{
observer = newObserver;
@@ -114,6 +114,11 @@ public class ImageIcon
return image;
}
+ public void setImage(Image image)
+ {
+ this.image = Toolkit.getDefaultToolkit().createImage(image.getSource());
+ }
+
public String getDescription()
{
return description;
diff --git a/libjava/javax/swing/InputMap.java b/libjava/javax/swing/InputMap.java
index 3f0bc3f47e6..53be5b1b1d7 100644
--- a/libjava/javax/swing/InputMap.java
+++ b/libjava/javax/swing/InputMap.java
@@ -49,7 +49,7 @@ import java.util.Set;
/**
- * @author Andrew Selkirk
+ * @author Andrew Selkirk
* @author Michael Koch
*
* @since 1.3
@@ -59,31 +59,31 @@ public class InputMap
{
private static final long serialVersionUID = -5429059542008604257L;
- /**
- * inputMap
- */
- private Map inputMap = new HashMap();
+ /**
+ * inputMap
+ */
+ private Map inputMap = new HashMap();
- /**
- * parent
- */
+ /**
+ * parent
+ */
private InputMap parent;
- /**
+ /**
* Creates a new <code>InputMap</code> instance.
- */
+ */
public InputMap()
{
- // TODO
+ // TODO
}
- /**
+ /**
* Returns the binding for keystroke.
*
* @param key the key of the enty
*
* @return the binding associated with keystroke may be null
- */
+ */
public Object get(KeyStroke keystroke)
{
Object result = inputMap.get(keystroke);
@@ -93,121 +93,121 @@ public class InputMap
return result;
}
- /**
+ /**
* Puts a new entry into the <code>InputMap</code>.
* If actionMapKey is null an existing entry will be removed.
*
* @param keystroke the keystroke for the entry
* @param actionMapKey the action.
- */
+ */
public void put(KeyStroke keystroke, Object actionMapKey)
{
if (actionMapKey == null)
- inputMap.remove(keystroke);
+ inputMap.remove(keystroke);
else
- inputMap.put(keystroke, actionMapKey);
+ inputMap.put(keystroke, actionMapKey);
}
- /**
+ /**
* Remove an entry from the <code>InputMap</code>.
*
* @param key the key of the entry to remove
- */
+ */
public void remove(KeyStroke keystroke)
{
- inputMap.remove(keystroke);
+ inputMap.remove(keystroke);
}
- /**
+ /**
* Returns the parent of this <code>InputMap</code>.
*
* @return the parent, may be null.
- */
+ */
public InputMap getParent()
{
- return parent;
+ return parent;
}
- /**
+ /**
* Sets a parent for this <code>InputMap</code>.
*
* @param parentMap the new parent
- */
+ */
public void setParent(InputMap parentMap)
{
- parent = parentMap;
+ parent = parentMap;
}
- /**
+ /**
* Returns the number of entries in this <code>InputMap</code>.
*
* @return the number of entries
- */
+ */
public int size()
{
- return inputMap.size();
+ return inputMap.size();
}
- /**
+ /**
* Clears the <code>InputMap</code>.
- */
+ */
public void clear()
{
- inputMap.clear();
+ inputMap.clear();
}
- /**
+ /**
* Returns all keys of entries in this <code>InputMap</code>.
*
* @return an array of keys
- */
+ */
public KeyStroke[] keys()
{
KeyStroke[] array = new KeyStroke[size()];
return (KeyStroke[]) inputMap.keySet().toArray(array);
}
- /**
+ /**
* Returns all keys of entries in this <code>InputMap</code>
* and all its parents.
*
* @return an array of keys
- */
+ */
public KeyStroke[] allKeys()
{
Set set = new HashSet();
if (parent != null)
- set.addAll(Arrays.asList(parent.allKeys()));
+ set.addAll(Arrays.asList(parent.allKeys()));
set.addAll(inputMap.keySet());
KeyStroke[] array = new KeyStroke[size()];
return (KeyStroke[]) set.toArray(array);
}
- /**
- * writeObject
+ /**
+ * writeObject
*
* @param stream the stream to write to
*
* @exception IOException If an error occurs
- */
+ */
private void writeObject(ObjectOutputStream stream) throws IOException
{
- // TODO
+ // TODO
}
- /**
- * readObject
+ /**
+ * readObject
*
* @param stream the stream to read from
*
* @exception ClassNotFoundException If the serialized class cannot be found
* @exception IOException If an error occurs
- */
+ */
private void readObject(ObjectInputStream stream)
throws ClassNotFoundException, IOException
{
- // TODO
+ // TODO
}
}
diff --git a/libjava/javax/swing/JApplet.java b/libjava/javax/swing/JApplet.java
index 42d7426abcf..8446e27b1d9 100644
--- a/libjava/javax/swing/JApplet.java
+++ b/libjava/javax/swing/JApplet.java
@@ -1,5 +1,5 @@
/* JApplet.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.
@@ -46,7 +46,6 @@ import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.LayoutManager;
import java.awt.event.KeyEvent;
-import java.awt.event.WindowEvent;
import javax.accessibility.AccessibleContext;
@@ -55,38 +54,18 @@ public class JApplet extends Applet
{
private static final long serialVersionUID = 7269359214497372587L;
- public static final int HIDE_ON_CLOSE = 0;
- public static final int EXIT_ON_CLOSE = 1;
- public static final int DISPOSE_ON_CLOSE = 2;
- public static final int DO_NOTHING_ON_CLOSE = 3;
-
- private int close_action = EXIT_ON_CLOSE;
-
protected JRootPane rootPane;
protected boolean rootPaneCheckingEnabled;
public JApplet()
{
- frameInit();
- }
-
- public JApplet(String title)
- {
- frameInit();
- }
-
- protected void frameInit()
- {
super.setLayout(new BorderLayout(1, 1));
getRootPane(); // will do set/create
}
public Dimension getPreferredSize()
{
- Dimension d = super.getPreferredSize();
- System.out.println("JFrame.getPrefSize(): " + d + " , comp="
- + getComponentCount() + ", layout=" + getLayout());
- return d;
+ return super.getPreferredSize();
}
public void setLayout(LayoutManager manager)
@@ -111,7 +90,7 @@ public class JApplet extends Applet
return rootPane;
}
- public void setRootPane(JRootPane root)
+ protected void setRootPane(JRootPane root)
{
if (rootPane != null)
remove(rootPane);
@@ -120,7 +99,7 @@ public class JApplet extends Applet
add(rootPane, BorderLayout.CENTER);
}
- public JRootPane createRootPane()
+ protected JRootPane createRootPane()
{
return new JRootPane();
}
@@ -155,11 +134,6 @@ public class JApplet extends Applet
return null;
}
- int getDefaultCloseOperation()
- {
- return close_action;
- }
-
public JMenuBar getJMenuBar()
{
return getRootPane().getJMenuBar();
@@ -179,56 +153,12 @@ public class JApplet extends Applet
{
super.processKeyEvent(e);
}
-
- protected void processWindowEvent(WindowEvent e)
- {
- // System.out.println("PROCESS_WIN_EV-1: " + e);
- // super.processWindowEvent(e);
- // System.out.println("PROCESS_WIN_EV-2: " + e);
- switch (e.getID())
- {
- case WindowEvent.WINDOW_CLOSING:
- {
- switch (close_action)
- {
- case EXIT_ON_CLOSE:
- {
- System.out.println("user requested exit on close");
- System.exit(1);
- break;
- }
- case DISPOSE_ON_CLOSE:
- {
- System.out.println("user requested dispose on close");
- //dispose();
- break;
- }
- case HIDE_ON_CLOSE:
- case DO_NOTHING_ON_CLOSE:
- break;
- }
- break;
- }
- case WindowEvent.WINDOW_CLOSED:
- case WindowEvent.WINDOW_OPENED:
- case WindowEvent.WINDOW_ICONIFIED:
- case WindowEvent.WINDOW_DEICONIFIED:
- case WindowEvent.WINDOW_ACTIVATED:
- case WindowEvent.WINDOW_DEACTIVATED:
- break;
- }
- }
-
+
public void remove(Component comp)
{
getContentPane().remove(comp);
}
- void setDefaultCloseOperation(int operation)
- {
- close_action = operation;
- }
-
protected boolean isRootPaneCheckingEnabled()
{
return rootPaneCheckingEnabled;
diff --git a/libjava/javax/swing/JButton.java b/libjava/javax/swing/JButton.java
index 13e3d571634..dea37811a7f 100644
--- a/libjava/javax/swing/JButton.java
+++ b/libjava/javax/swing/JButton.java
@@ -53,90 +53,90 @@ public class JButton extends AbstractButton
private static final long serialVersionUID = -1907255238954382202L;
boolean def;
boolean is_def;
-
- public JButton()
- {
- this(null, null);
- }
-
- public JButton(Action a)
- {
- this();
- setAction(a);
- }
-
- public JButton(Icon icon)
- {
- this(null, icon);
- }
-
- public JButton(String text)
- {
- this(text, null);
- }
-
- public JButton(String text, Icon icon)
- {
- super(text, icon);
- }
-
- public Object[] getSelectedObjects()
- {
- return null;
- }
-
- protected void configurePropertiesFromAction(Action a)
- {
- //Factory method which sets the AbstractButton's properties according to values from the Action instance.
- super.configurePropertiesFromAction(a);
- }
-
- public AccessibleContext getAccessibleContext()
- {
- //Gets the AccessibleContext associated with this JButton.
- return null;
- }
-
- public String getUIClassID()
- {
+
+ public JButton()
+ {
+ this(null, null);
+ }
+
+ public JButton(Action a)
+ {
+ this();
+ setAction(a);
+ }
+
+ public JButton(Icon icon)
+ {
+ this(null, icon);
+ }
+
+ public JButton(String text)
+ {
+ this(text, null);
+ }
+
+ public JButton(String text, Icon icon)
+ {
+ super(text, icon);
+ }
+
+ public Object[] getSelectedObjects()
+ {
+ return null;
+ }
+
+ protected void configurePropertiesFromAction(Action a)
+ {
+ //Factory method which sets the AbstractButton's properties according to values from the Action instance.
+ super.configurePropertiesFromAction(a);
+ }
+
+ public AccessibleContext getAccessibleContext()
+ {
+ //Gets the AccessibleContext associated with this JButton.
+ return null;
+ }
+
+ public String getUIClassID()
+ {
//Returns a string that specifies the name of the L&F class that renders this component.
- return "ButtonUI";
- }
-
- public boolean isDefaultButton()
- {
- //Returns whether or not this button is the default button on the RootPane.
- return is_def;
- }
-
- public boolean isDefaultCapable()
- {
- //Returns whether or not this button is capable of being the default button on the RootPane.
- return def;
- }
-
- protected String paramString()
- {
- return "JButton";
- }
-
+ return "ButtonUI";
+ }
+
+ public boolean isDefaultButton()
+ {
+ //Returns whether or not this button is the default button on the RootPane.
+ return is_def;
+ }
+
+ public boolean isDefaultCapable()
+ {
+ //Returns whether or not this button is capable of being the default button on the RootPane.
+ return def;
+ }
+
+ protected String paramString()
+ {
+ return "JButton";
+ }
+
/**
* Overrides JComponent.removeNotify to check if this button is currently
* set as the default button on the RootPane, and if so, sets the RootPane's
* default button to null to ensure the RootPane doesn't hold onto an invalid
* button reference.
*/
- public void removeNotify()
- {
- }
-
- public void setDefaultCapable(boolean defaultCapable)
+ public void removeNotify()
+ {
+ }
+
+ public void setDefaultCapable(boolean defaultCapable)
{
def = defaultCapable;
}
-
- public void updateUI()
- {
+
+ public void updateUI()
+ {
setUI((ButtonUI) UIManager.getUI(this));
- }
+ }
}
diff --git a/libjava/javax/swing/JCheckBox.java b/libjava/javax/swing/JCheckBox.java
index 36cd0715c70..a8506e5f822 100644
--- a/libjava/javax/swing/JCheckBox.java
+++ b/libjava/javax/swing/JCheckBox.java
@@ -60,20 +60,20 @@ public class JCheckBox extends JToggleButton
contentAreaFilled = false;
}
- public JCheckBox()
- {
+ public JCheckBox()
+ {
super();
init();
- }
+ }
public JCheckBox(Action action)
- {
+ {
super(action);
init();
- }
+ }
- public JCheckBox(Icon icon)
- {
+ public JCheckBox(Icon icon)
+ {
super(icon);
init();
}
@@ -82,10 +82,10 @@ public class JCheckBox extends JToggleButton
{
super(icon, selected);
init();
- }
+ }
- public JCheckBox(String text)
- {
+ public JCheckBox(String text)
+ {
super(text);
init();
}
@@ -94,41 +94,41 @@ public class JCheckBox extends JToggleButton
{
super(text, selected);
init();
- }
+ }
- public JCheckBox(String text, Icon icon)
- {
- super(text, icon);
+ public JCheckBox(String text, Icon icon)
+ {
+ super(text, icon);
init();
- }
+ }
public JCheckBox(String text, Icon icon, boolean selected)
{
super(text, icon, selected);
init();
}
-
+
/**
* Gets the AccessibleContext associated with this JCheckBox.
*/
- public AccessibleContext getAccessibleContext()
- {
- return null;
- }
+ public AccessibleContext getAccessibleContext()
+ {
+ return null;
+ }
/**
* Returns a string that specifies the name of the Look and Feel class
* that renders this component.
*/
- public String getUIClassID()
- {
- return "CheckBoxUI";
- }
+ public String getUIClassID()
+ {
+ return "CheckBoxUI";
+ }
- protected String paramString()
- {
- return "JCheckBox";
- }
+ protected String paramString()
+ {
+ return "JCheckBox";
+ }
public boolean isBorderPaintedFlat()
{
diff --git a/libjava/javax/swing/JCheckBoxMenuItem.java b/libjava/javax/swing/JCheckBoxMenuItem.java
index 76377b618fc..090c3c2044a 100644
--- a/libjava/javax/swing/JCheckBoxMenuItem.java
+++ b/libjava/javax/swing/JCheckBoxMenuItem.java
@@ -206,7 +206,7 @@ public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
* This method overrides JComponent.requestFocus with an empty
* implementation, since JCheckBoxMenuItems should not
* receve focus in general.
- */
+ */
public void requestFocus()
{
// Should do nothing here
diff --git a/libjava/javax/swing/JComboBox.java b/libjava/javax/swing/JComboBox.java
index 86f20b099eb..4e2a88110fc 100644
--- a/libjava/javax/swing/JComboBox.java
+++ b/libjava/javax/swing/JComboBox.java
@@ -1,5 +1,5 @@
/* JComboBox.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.
@@ -60,7 +60,6 @@ import javax.swing.event.ListDataListener;
import javax.swing.event.PopupMenuListener;
import javax.swing.plaf.ComboBoxUI;
-
/**
* JComboBox. JComboBox is a container, that keeps track of elements added to
* it by the user. JComboBox allows user to select any item in its list and
@@ -69,12 +68,14 @@ import javax.swing.plaf.ComboBoxUI;
*
* @author Andrew Selkirk
* @author Olga Rodimina
+ * @author Robert Schuster
*/
public class JComboBox extends JComponent implements ItemSelectable,
ListDataListener,
ActionListener,
Accessible
{
+
private static final long serialVersionUID = 5654585963292734470L;
/**
@@ -91,43 +92,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
* Maximum number of rows that should be visible by default in the
* JComboBox's popup
*/
- public static final int DEFAULT_MAXIMUM_ROW_COUNT = 8;
-
- /**
- * Fired in a PropertyChangeEvent when the 'editable' property changes.
- */
- public static final String EDITABLE_CHANGED_PROPERTY = "editable";
-
- /**
- * Fired in a PropertyChangeEvent when the 'maximumRowCount' property
- * changes.
- */
- public static final String MAXIMUM_ROW_COUNT_CHANGED_PROPERTY = "maximumRowCount";
-
- /**
- * Fired in a PropertyChangeEvent when the 'enabled' property changes.
- */
- public static final String ENABLED_CHANGED_PROPERTY = "enabled";
-
- /**
- * Fired in a PropertyChangeEvent when the 'renderer' property changes.
- */
- public static final String RENDERER_CHANGED_PROPERTY = "renderer";
-
- /**
- * Fired in a PropertyChangeEvent when the 'editor' property changes.
- */
- public static final String EDITOR_CHANGED_PROPERTY = "editor";
-
- /**
- * Fired in a PropertyChangeEvent when the 'dataModel' property changes.
- */
- public static final String MODEL_CHANGED_PROPERTY = "dataModel";
-
- /**
- * name for the UI delegate for this combo box.
- */
- private static final String uiClassID = "ComboBoxUI";
+ private static final int DEFAULT_MAXIMUM_ROW_COUNT = 8;
/**
* dataModel used by JComboBox to keep track of its list data and currently
@@ -143,7 +108,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
protected ListCellRenderer renderer;
/**
- * editor that is responsible for editting an object in a combo box list
+ * Editor that is responsible for editing an object in a combo box list.
*/
protected ComboBoxEditor editor;
@@ -191,8 +156,9 @@ public class JComboBox extends JComponent implements ItemSelectable,
private Object prototypeDisplayValue;
/**
- * Constructs JComboBox object with specified data model for it. The first
- * item in the specified data model is selected by default.
+ * Constructs JComboBox object with specified data model for it.
+ * <p>Note that the JComboBox will not change the value that
+ * is preselected by your ComboBoxModel implementation.</p>
*
* @param model Data model that will be used by this JComboBox to keep track
* of its list of items.
@@ -205,10 +171,6 @@ public class JComboBox extends JComponent implements ItemSelectable,
setModel(model);
setActionCommand("comboBoxChanged");
- // by default set selected item to the first element in the combo box
- if (getItemCount() != 0)
- setSelectedItem(getItemAt(0));
-
lightWeightPopupEnabled = true;
isEditable = false;
@@ -300,7 +262,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public String getUIClassID()
{
- return uiClassID;
+ return "ComboBoxUI";
}
/**
@@ -322,21 +284,29 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public void setModel(ComboBoxModel newDataModel)
{
- if (this.dataModel == newDataModel)
- return;
- if (this.dataModel != null)
- // remove all listeners currently registered with the model.
- dataModel.removeListDataListener(this);
+ // dataModel is null if it this method is called from inside the constructors.
+ if(dataModel != null) {
+ // Prevents unneccessary updates.
+ if (dataModel == newDataModel)
+ return;
- ComboBoxModel oldDataModel = this.dataModel;
- this.dataModel = newDataModel;
+ // Removes itself (as DataListener) from the to-be-replaced model.
+ dataModel.removeListDataListener(this);
+ }
+
+ /* Adds itself as a DataListener to the new model.
+ * It is intentioned that this operation will fail with a NullPointerException if the
+ * caller delivered a null argument.
+ */
+ newDataModel.addListDataListener(this);
- if (this.dataModel != null)
- // register all listeners with the new data model
- dataModel.addListDataListener(this);
+ // Stores old data model for event notification.
+ ComboBoxModel oldDataModel = dataModel;
+ dataModel = newDataModel;
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldDataModel, this.dataModel);
+ // Notifies the listeners of the model change.
+ firePropertyChange("model", oldDataModel, dataModel);
}
/**
@@ -351,8 +321,8 @@ public class JComboBox extends JComponent implements ItemSelectable,
/**
* This method sets JComboBox's popup to be either lightweight or
- * heavyweight. If 'enabled' is true then lightweight popup is used and
- * heavyweight otherwise. By default lightweight popup is used to display
+ * heavyweight. If 'enabled' is true then lightweight popup is used and
+ * heavyweight otherwise. By default lightweight popup is used to display
* this JComboBox's elements.
*
* @param enabled indicates if lightweight popup or heavyweight popup should
@@ -360,7 +330,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public void setLightWeightPopupEnabled(boolean enabled)
{
- this.lightWeightPopupEnabled = enabled;
+ lightWeightPopupEnabled = enabled;
}
/**
@@ -388,10 +358,10 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public void setEditable(boolean editable)
{
- if (this.isEditable != editable)
+ if (isEditable != editable)
{
- this.isEditable = editable;
- firePropertyChange(EDITABLE_CHANGED_PROPERTY, ! isEditable, isEditable);
+ isEditable = editable;
+ firePropertyChange("editable", ! isEditable, isEditable);
}
}
@@ -407,10 +377,10 @@ public class JComboBox extends JComponent implements ItemSelectable,
{
if (maximumRowCount != rowCount)
{
- int oldMaximumRowCount = this.maximumRowCount;
- this.maximumRowCount = rowCount;
- firePropertyChange(MAXIMUM_ROW_COUNT_CHANGED_PROPERTY,
- oldMaximumRowCount, this.maximumRowCount);
+ int oldMaximumRowCount = maximumRowCount;
+ maximumRowCount = rowCount;
+ firePropertyChange("maximumRowCount",
+ oldMaximumRowCount, maximumRowCount);
}
}
@@ -437,12 +407,12 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public void setRenderer(ListCellRenderer aRenderer)
{
- if (this.renderer != aRenderer)
+ if (renderer != aRenderer)
{
- ListCellRenderer oldRenderer = this.renderer;
- this.renderer = aRenderer;
- firePropertyChange(RENDERER_CHANGED_PROPERTY, oldRenderer,
- this.renderer);
+ ListCellRenderer oldRenderer = renderer;
+ renderer = aRenderer;
+ firePropertyChange("renderer", oldRenderer,
+ renderer);
}
}
@@ -477,11 +447,11 @@ public class JComboBox extends JComponent implements ItemSelectable,
if (editor != null)
editor.addActionListener(this);
- firePropertyChange(EDITOR_CHANGED_PROPERTY, oldEditor, editor);
+ firePropertyChange("editor", oldEditor, editor);
}
/**
- * Returns editor component that is responsible for displaying/editting
+ * Returns editor component that is responsible for displaying/editing
* selected item in the combo box.
*
* @return ComboBoxEditor
@@ -503,45 +473,76 @@ public class JComboBox extends JComponent implements ItemSelectable,
/**
* Returns currently selected item in the combo box.
+ * The result may be <code>null</code> to indicate that nothing is
+ * currently selected.
*
* @return element that is currently selected in this combo box.
*/
public Object getSelectedItem()
{
- Object item = dataModel.getSelectedItem();
-
- if (item == null && getItemCount() != 0)
- item = getItemAt(0);
-
- return item;
+ return dataModel.getSelectedItem();
}
/**
- * Forces JComboBox to select component located in the given index in the
+ * Forces JComboBox to select component located in the given index in the
* combo box.
+ * <p>If the index is below -1 or exceeds the upper bound an
+ * <code>IllegalArgumentException</code> is thrown.<p/>
+ * <p>If the index is -1 then no item gets selected.</p>
*
* @param index index specifying location of the component that should be
* selected.
*/
public void setSelectedIndex(int index)
{
- // FIXME: if index == -1 then nothing should be selected
- setSelectedItem(dataModel.getElementAt(index));
+ if(index < -1 || index >= dataModel.getSize()) {
+ // Fails because index is out of bounds.
+ throw new IllegalArgumentException("illegal index: " + index);
+ } else {
+ /* Selects the item at the given index or clears the selection if the
+ * index value is -1.
+ */
+ setSelectedItem((index == -1) ? null : dataModel.getElementAt(index));
+ }
}
/**
* Returns index of the item that is currently selected in the combo box.
* If no item is currently selected, then -1 is returned.
+ *
+ * <p>Note: For performance reasons you should minimize invocation of this
+ * method. If the data model is not an instance of
+ * <code>DefaultComboBoxModel</code> the complexity is O(n) where
+ * n is the number of elements in the combo box.</p>
*
- * @return int index specifying location of the currently selected item in
+ * @return int Index specifying location of the currently selected item in
* the combo box or -1 if nothing is selected in the combo box.
*/
public int getSelectedIndex()
{
Object selectedItem = getSelectedItem();
- if (selectedItem != null && (dataModel instanceof DefaultComboBoxModel))
- return ((DefaultComboBoxModel) dataModel).getIndexOf(selectedItem);
+
+ if (selectedItem != null) {
+
+ if(dataModel instanceof DefaultComboBoxModel) {
+ // Uses special method of DefaultComboBoxModel to retrieve the index.
+ return ((DefaultComboBoxModel) dataModel).getIndexOf(selectedItem);
+ } else {
+ // Iterates over all items to retrieve the index.
+ int size = dataModel.getSize();
+
+ for(int i=0; i < size; i++) {
+ Object o = dataModel.getElementAt(i);
+
+ // XXX: Is special handling of ComparableS neccessary?
+ if((selectedItem != null) ? selectedItem.equals(o) : o == null) {
+ return i;
+ }
+ }
+ }
+ }
+ // returns that no item is currently selected
return -1;
}
@@ -550,60 +551,104 @@ public class JComboBox extends JComponent implements ItemSelectable,
return prototypeDisplayValue;
}
- public void setPrototypeDisplayValue(Object prototypeDisplayValue)
+ public void setPrototypeDisplayValue(Object newPrototypeDisplayValue)
{
- this.prototypeDisplayValue = prototypeDisplayValue;
+ prototypeDisplayValue = newPrototypeDisplayValue;
}
/**
* This method adds given element to this JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
*
* @param element element to add
*/
public void addItem(Object element)
{
- ((MutableComboBoxModel) dataModel).addElement(element);
+ if(dataModel instanceof MutableComboBoxModel) {
+ ((MutableComboBoxModel) dataModel).addElement(element);
+ } else {
+ throw new RuntimeException("Unable to add the item because the data model it is not an instance of MutableComboBoxModel.");
+ }
}
/**
- * Inserts given element at the specified index to this JComboBox
+ * Inserts given element at the specified index to this JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
*
* @param element element to insert
* @param index position where to insert the element
*/
public void insertItemAt(Object element, int index)
{
- ((MutableComboBoxModel) dataModel).insertElementAt(element, index);
+ if(dataModel instanceof MutableComboBoxModel) {
+ ((MutableComboBoxModel) dataModel).insertElementAt(element, index);
+ } else {
+ throw new RuntimeException("Unable to insert the item because the data model it is not an instance of MutableComboBoxModel.");
+ }
}
/**
* This method removes given element from this JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
*
* @param element element to remove
*/
public void removeItem(Object element)
{
- ((MutableComboBoxModel) dataModel).removeElement(element);
+ if(dataModel instanceof MutableComboBoxModel) {
+ ((MutableComboBoxModel) dataModel).removeElement(element);
+ } else {
+ throw new RuntimeException("Unable to remove the item because the data model it is not an instance of MutableComboBoxModel.");
+ }
}
/**
* This method remove element location in the specified index in the
* JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
*
* @param index index specifying position of the element to remove
*/
public void removeItemAt(int index)
{
- ((MutableComboBoxModel) dataModel).removeElementAt(index);
+ if(dataModel instanceof MutableComboBoxModel) {
+ ((MutableComboBoxModel) dataModel).removeElementAt(index);
+ } else {
+ throw new RuntimeException("Unable to remove the item because the data model it is not an instance of MutableComboBoxModel.");
+ }
}
/**
* This method removes all elements from this JComboBox.
+ * <p>A <code>RuntimeException</code> is thrown if the data model is not
+ * an instance of {@link MutableComboBoxModel}.</p>
+ *
*/
public void removeAllItems()
{
- if (dataModel instanceof DefaultComboBoxModel)
- ((DefaultComboBoxModel) dataModel).removeAllElements();
+ if (dataModel instanceof DefaultComboBoxModel) {
+ // Uses special method if we have a DefaultComboBoxModel.
+ ((DefaultComboBoxModel) dataModel).removeAllElements();
+ } else if(dataModel instanceof MutableComboBoxModel){
+ // Iterates over all items and removes each.
+ MutableComboBoxModel mcbm = (MutableComboBoxModel) dataModel;
+
+ /* We intentionally remove the items backwards to support
+ * models which shift their content to the beginning (e.g.
+ * linked lists)
+ */
+ for(int i=mcbm.getSize()-1; i >= 0; i--) {
+ mcbm.removeElementAt(i);
+ }
+
+ } else {
+ throw new RuntimeException("Unable to remove the items because the data model it is not an instance of MutableComboBoxModel.");
+ }
+
}
/**
@@ -801,8 +846,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public Object[] getSelectedObjects()
{
- Object selectedObject = getSelectedItem();
- return new Object[] { selectedObject };
+ return new Object[] { getSelectedItem() };
}
/**
@@ -887,8 +931,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
if (enabled != oldEnabled)
{
super.setEnabled(enabled);
- firePropertyChange(ENABLED_CHANGED_PROPERTY, oldEnabled,
- (boolean) enabled);
+ firePropertyChange("enabled", oldEnabled, enabled);
}
}
@@ -951,7 +994,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public int getItemCount()
{
- return ((DefaultComboBoxModel) dataModel).getSize();
+ return dataModel.getSize();
}
/**
@@ -963,7 +1006,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
*/
public Object getItemAt(int index)
{
- return ((MutableComboBoxModel) dataModel).getElementAt(index);
+ return dataModel.getElementAt(index);
}
/**
diff --git a/libjava/javax/swing/JComponent.java b/libjava/javax/swing/JComponent.java
index c22c2b2e702..ad7603cf76a 100644
--- a/libjava/javax/swing/JComponent.java
+++ b/libjava/javax/swing/JComponent.java
@@ -1,5 +1,5 @@
/* JComponent.java -- Every component in swing inherits from this class.
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,6 +50,7 @@ import java.awt.Image;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
+import java.awt.dnd.DropTarget;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ContainerEvent;
@@ -72,6 +73,7 @@ import java.util.Locale;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleKeyBinding;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleStateSet;
import javax.swing.border.Border;
@@ -133,6 +135,9 @@ public abstract class JComponent extends Container implements Serializable
public String getAccessibleDescription() { return null; }
public AccessibleRole getAccessibleRole() { return null; }
protected String getBorderTitle(Border value0) { return null; }
+ public String getToolTipText() { return null; }
+ public String getTitledBorderText() { return null; }
+ public AccessibleKeyBinding getAccessibleKeyBinding() { return null; }
}
/**
@@ -323,6 +328,8 @@ public abstract class JComponent extends Container implements Serializable
private InputMap inputMap_whenAncestorOfFocused;
private InputMap inputMap_whenInFocusedWindow;
private ActionMap actionMap;
+ /** @since 1.3 */
+ private boolean verifyInputWhenFocusTarget;
private InputVerifier inputVerifier;
private TransferHandler transferHandler;
@@ -389,6 +396,7 @@ public abstract class JComponent extends Container implements Serializable
{
super();
super.setLayout(new FlowLayout());
+ setDropTarget(new DropTarget());
defaultLocale = Locale.getDefault();
debugGraphicsOptions = DebugGraphics.NONE_OPTION;
}
@@ -421,7 +429,7 @@ public abstract class JComponent extends Container implements Serializable
* @see #getClientProperties
* @see #putClientProperty
*/
- public Object getClientProperty(Object key)
+ public final Object getClientProperty(Object key)
{
return getClientProperties().get(key);
}
@@ -438,7 +446,7 @@ public abstract class JComponent extends Container implements Serializable
* @see #getClientProperties
* @see #getClientProperty
*/
- public void putClientProperty(Object key, Object value)
+ public final void putClientProperty(Object key, Object value)
{
getClientProperties().put(key, value);
}
@@ -1295,7 +1303,7 @@ public abstract class JComponent extends Container implements Serializable
}
/**
- * Return <code>true<code> if you wish this component to manage its own
+ * Return <code>true</code> if you wish this component to manage its own
* focus. In particular: if you want this component to be sent
* <code>TAB</code> and <code>SHIFT+TAB</code> key events, and to not
* have its children considered as focus transfer targets. If
@@ -1533,7 +1541,23 @@ public abstract class JComponent extends Container implements Serializable
*/
protected String paramString()
{
- return "JComponent";
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.paramString());
+ sb.append(",alignmentX=").append(getAlignmentX());
+ sb.append(",alignmentY=").append(getAlignmentY());
+ sb.append(",border=");
+ if (getBorder() != null)
+ sb.append(getBorder());
+ sb.append(",maximumSize=");
+ if (getMaximumSize() != null)
+ sb.append(getMaximumSize());
+ sb.append(",minimumSize=");
+ if (getMinimumSize() != null)
+ sb.append(getMinimumSize());
+ sb.append(",preferredSize=");
+ if (getPreferredSize() != null)
+ sb.append(getPreferredSize());
+ return sb.toString();
}
/**
@@ -2092,9 +2116,14 @@ public abstract class JComponent extends Container implements Serializable
* @see ComponentUI#getTransferHandler
*/
- void setTransferHandler (TransferHandler newHandler)
+ public void setTransferHandler(TransferHandler newHandler)
{
+ if (transferHandler == newHandler)
+ return;
+
+ TransferHandler oldHandler = transferHandler;
transferHandler = newHandler;
+ firePropertyChange("transferHandler", oldHandler, newHandler);
}
/**
@@ -2225,4 +2254,26 @@ public abstract class JComponent extends Container implements Serializable
inputVerifier = verifier;
firePropertyChange("inputVerifier", oldVerifier, verifier);
}
+
+ /**
+ * @since 1.3
+ */
+ public boolean getVerifyInputWhenFocusTarget()
+ {
+ return verifyInputWhenFocusTarget;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public void setVerifyInputWhenFocusTarget(boolean verifyInputWhenFocusTarget)
+ {
+ if (this.verifyInputWhenFocusTarget == verifyInputWhenFocusTarget)
+ return;
+
+ this.verifyInputWhenFocusTarget = verifyInputWhenFocusTarget;
+ firePropertyChange("verifyInputWhenFocusTarget",
+ ! verifyInputWhenFocusTarget,
+ verifyInputWhenFocusTarget);
+ }
}
diff --git a/libjava/javax/swing/JEditorPane.java b/libjava/javax/swing/JEditorPane.java
index 3b66c2bcb4e..8361b20371b 100644
--- a/libjava/javax/swing/JEditorPane.java
+++ b/libjava/javax/swing/JEditorPane.java
@@ -1,5 +1,5 @@
/* JEditorPane.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.
@@ -47,6 +47,7 @@ import java.net.URL;
import javax.accessibility.AccessibleContext;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
+import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultEditorKit;
import javax.swing.text.EditorKit;
import javax.swing.text.JTextComponent;
@@ -56,29 +57,31 @@ public class JEditorPane extends JTextComponent
{
private static final long serialVersionUID = 3140472492599046285L;
- URL page_url;
- EditorKit kit;
- String ctype = "text/plain";
+ private URL page;
+ private EditorKit editorKit;
+
boolean focus_root;
boolean manages_focus;
public JEditorPane()
{
+ setEditorKit(createDefaultEditorKit());
}
public JEditorPane(String url) throws IOException
{
- setPage(url);
+ this(new URL(url));
}
public JEditorPane(String type, String text)
{
- ctype = text;
+ setEditorKit(createEditorKitForContentType(type));
setText(text);
}
public JEditorPane(URL url) throws IOException
{
+ this();
setPage(url);
}
@@ -110,14 +113,14 @@ public class JEditorPane extends JTextComponent
return null;
}
- public String getContentType()
+ public final String getContentType()
{
- return ctype;
+ return getEditorKit().getContentType();
}
public EditorKit getEditorKit()
{
- return kit;
+ return editorKit;
}
public static String getEditorKitClassNameForContentType(String type)
@@ -127,7 +130,7 @@ public class JEditorPane extends JTextComponent
public EditorKit getEditorKitForContentType(String type)
{
- return kit;
+ return editorKit;
}
/**
@@ -150,7 +153,7 @@ public class JEditorPane extends JTextComponent
public URL getPage()
{
- return page_url;
+ return page;
}
protected InputStream getStream(URL page)
@@ -216,7 +219,7 @@ public class JEditorPane extends JTextComponent
}
/**
- * Establishes the default bindings of type to classname.
+ * Establishes the default bindings of type to classname.
*/
public static void registerEditorKitForContentType(String type,
String classname,
@@ -240,24 +243,43 @@ public class JEditorPane extends JTextComponent
{
}
- public void setContentType(String type)
- {
- ctype = type;
- invalidate();
- repaint();
- }
-
- public void setEditorKit(EditorKit kit)
- {
- this.kit = kit;
+ public final void setContentType(String type)
+ {
+ if (editorKit != null
+ && editorKit.getContentType().equals(type))
+ return;
+
+ EditorKit kit = getEditorKitForContentType(type);
+
+ if (kit != null)
+ setEditorKit(kit);
+ }
+
+ public void setEditorKit(EditorKit newValue)
+ {
+ if (editorKit == newValue)
+ return;
+
+ if (editorKit != null)
+ editorKit.deinstall(this);
+
+ EditorKit oldValue = editorKit;
+ editorKit = newValue;
+
+ if (editorKit != null)
+ {
+ editorKit.install(this);
+ setDocument(editorKit.createDefaultDocument());
+ }
+
+ firePropertyChange("editorKit", oldValue, newValue);
invalidate();
repaint();
}
public void setEditorKitForContentType(String type, EditorKit k)
{
- ctype = type;
- setEditorKit(k);
+ // FIXME: editorKitCache.put(type, kit);
}
/**
@@ -265,6 +287,7 @@ public class JEditorPane extends JTextComponent
*/
public void setPage(String url) throws IOException
{
+ setPage(new URL(url));
}
/**
@@ -272,6 +295,18 @@ public class JEditorPane extends JTextComponent
*/
public void setPage(URL page) throws IOException
{
+ if (page == null)
+ throw new IOException("invalid url");
+
+ try
+ {
+ this.page = page;
+ getEditorKit().read(page.openStream(), getDocument(), 0);
+ }
+ catch (BadLocationException e)
+ {
+ // Ignored. '0' is always a valid offset.
+ }
}
public void setText(String t)
diff --git a/libjava/javax/swing/JFileChooser.java b/libjava/javax/swing/JFileChooser.java
index f653c708bd9..9b937178901 100644
--- a/libjava/javax/swing/JFileChooser.java
+++ b/libjava/javax/swing/JFileChooser.java
@@ -522,7 +522,7 @@ public class JFileChooser extends JComponent implements Accessible {
* @returns int
*/
public int showOpenDialog(Component parent) {
- return 0; // TODO
+ return CANCEL_OPTION; // TODO
} // showOpenDialog()
/**
@@ -531,7 +531,7 @@ public class JFileChooser extends JComponent implements Accessible {
* @returns int
*/
public int showSaveDialog(Component parent) {
- return 0; // TODO
+ return CANCEL_OPTION; // TODO
} // showSaveDialog()
/**
@@ -541,7 +541,7 @@ public class JFileChooser extends JComponent implements Accessible {
* @returns int
*/
public int showDialog(Component parent, String approveButtonText) {
- return 0; // TODO
+ return CANCEL_OPTION; // TODO
} // showDialog()
/**
diff --git a/libjava/javax/swing/JFormattedTextField.java b/libjava/javax/swing/JFormattedTextField.java
index eaf53555ba1..f544aec117f 100644
--- a/libjava/javax/swing/JFormattedTextField.java
+++ b/libjava/javax/swing/JFormattedTextField.java
@@ -59,6 +59,8 @@ public class JFormattedTextField extends JTextField
{
private static final long serialVersionUID = -5193212041738979680L;
+ private JFormattedTextField textField;
+
public AbstractFormatter ()
{
//Do nothing here.
@@ -72,7 +74,7 @@ public class JFormattedTextField extends JTextField
protected Action[] getActions ()
{
- throw new InternalError ("not implemented");
+ return textField.getActions();
}
protected DocumentFilter getDocumentFilter ()
@@ -82,32 +84,35 @@ public class JFormattedTextField extends JTextField
protected JFormattedTextField getFormattedTextField ()
{
- throw new InternalError ("not implemented");
+ return textField;
}
protected NavigationFilter getNavigationFilter ()
{
- throw new InternalError ("not implemented");
+ return textField.getNavigationFilter();
}
- public void install (JFormattedTextField ftf)
+ public void install(JFormattedTextField textField)
{
- throw new InternalError ("not implemented");
+ if (this.textField != null)
+ uninstall();
+
+ this.textField = textField;
}
public void uninstall ()
{
- throw new InternalError ("not implemented");
+ this.textField = null;
}
protected void invalidEdit ()
{
- throw new InternalError ("not implemented");
+ textField.invalidEdit();
}
protected void setEditValid (boolean valid)
{
- throw new InternalError ("not implemented");
+ textField.editValid = valid;
}
public abstract Object stringToValue (String text)
@@ -127,16 +132,34 @@ public class JFormattedTextField extends JTextField
public abstract AbstractFormatter getFormatter (JFormattedTextField tf);
}
+ static class FormatterFactoryWrapper extends AbstractFormatterFactory
+ {
+ AbstractFormatter formatter;
+
+ public FormatterFactoryWrapper(AbstractFormatter formatter)
+ {
+ this.formatter = formatter;
+ }
+
+ public AbstractFormatter getFormatter(JFormattedTextField tf)
+ {
+ return formatter;
+ }
+ }
+
public static final int COMMIT = 0;
public static final int COMMIT_OR_REVERT = 1;
public static final int REVERT = 2;
public static final int PERSIST = 3;
private Object value;
+ private int focusLostBehavior = COMMIT_OR_REVERT;
+ private AbstractFormatterFactory formatterFactory;
+ private boolean editValid = true;
public JFormattedTextField ()
{
- this((AbstractFormatterFactory) null);
+ this((AbstractFormatterFactory) null, null);
}
public JFormattedTextField (Format format)
@@ -146,7 +169,7 @@ public class JFormattedTextField extends JTextField
public JFormattedTextField (AbstractFormatter formatter)
{
- throw new InternalError ("not implemented");
+ this(new FormatterFactoryWrapper(formatter), null);
}
public JFormattedTextField (AbstractFormatterFactory factory)
@@ -156,7 +179,8 @@ public class JFormattedTextField extends JTextField
public JFormattedTextField (AbstractFormatterFactory factory, Object value)
{
- throw new InternalError ("not implemented");
+ this.formatterFactory = factory;
+ this.value = value;
}
public JFormattedTextField (Object value)
@@ -175,19 +199,22 @@ public class JFormattedTextField extends JTextField
throw new InternalError ("not implemented");
}
- public int getFocusLostBehaviour ()
+ public int getFocusLostBehavior()
{
- throw new InternalError ("not implemented");
+ return focusLostBehavior;
}
public AbstractFormatter getFormatter ()
{
- throw new InternalError ("not implemented");
+ if (formatterFactory == null)
+ return null;
+
+ return formatterFactory.getFormatter(this);
}
public AbstractFormatterFactory getFormatterFactory ()
{
- throw new InternalError ("not implemented");
+ return formatterFactory;
}
public String getUIClassID ()
@@ -202,12 +229,12 @@ public class JFormattedTextField extends JTextField
protected void invalidEdit ()
{
- throw new InternalError ("not implemented");
+ UIManager.getLookAndFeel().provideErrorFeedback(this);
}
public boolean isEditValid ()
{
- throw new InternalError ("not implemented");
+ return editValid;
}
protected void processFocusEvent (FocusEvent evt)
@@ -215,34 +242,58 @@ public class JFormattedTextField extends JTextField
throw new InternalError ("not implemented");
}
- public void setDocument(Document newdoc)
+ public void setDocument(Document newDocument)
{
- Document document = getDocument();
+ Document oldDocument = getDocument();
- if (document == newdoc)
+ if (oldDocument == newDocument)
return;
- setDocument(newdoc);
- firePropertyChange("document", document, newdoc);
+ super.setDocument(newDocument);
}
- public void setLostFocusBehavior (int behavior)
+ public void setFocusLostBehavior(int behavior)
{
- throw new InternalError ("not implemented");
+ if (behavior != COMMIT
+ && behavior != COMMIT_OR_REVERT
+ && behavior != PERSIST
+ && behavior != REVERT)
+ throw new IllegalArgumentException("invalid behavior");
+
+ this.focusLostBehavior = behavior;
}
protected void setFormatter (AbstractFormatter formatter)
{
- throw new InternalError ("not implemented");
+ AbstractFormatter oldFormatter = null;
+
+ if (formatterFactory != null)
+ oldFormatter = formatterFactory.getFormatter(this);
+
+ if (oldFormatter == formatter)
+ return;
+
+ setFormatterFactory(new FormatterFactoryWrapper(formatter));
+ firePropertyChange("formatter", oldFormatter, formatter);
}
public void setFormatterFactory (AbstractFormatterFactory factory)
{
- throw new InternalError ("not implemented");
+ if (formatterFactory == factory)
+ return;
+
+ AbstractFormatterFactory oldFactory = formatterFactory;
+ formatterFactory = factory;
+ firePropertyChange("formatterFactory", oldFactory, factory);
}
public void setValue (Object newValue)
{
+ if (value == newValue)
+ return;
+
+ Object oldValue = value;
value = newValue;
+ firePropertyChange("value", oldValue, newValue);
}
}
diff --git a/libjava/javax/swing/JFrame.java b/libjava/javax/swing/JFrame.java
index aa641caa3c4..c450d0f50e7 100644
--- a/libjava/javax/swing/JFrame.java
+++ b/libjava/javax/swing/JFrame.java
@@ -1,5 +1,5 @@
/* JFrame.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.
@@ -123,7 +123,7 @@ public class JFrame extends Frame
return rootPane;
}
- public void setRootPane(JRootPane root)
+ protected void setRootPane(JRootPane root)
{
if (rootPane != null)
remove(rootPane);
@@ -132,7 +132,7 @@ public class JFrame extends Frame
add(rootPane, BorderLayout.CENTER);
}
- public JRootPane createRootPane()
+ protected JRootPane createRootPane()
{
return new JRootPane();
}
diff --git a/libjava/javax/swing/JInternalFrame.java b/libjava/javax/swing/JInternalFrame.java
index ead61f218fa..dba15460c48 100644
--- a/libjava/javax/swing/JInternalFrame.java
+++ b/libjava/javax/swing/JInternalFrame.java
@@ -1,5 +1,5 @@
-/* JInternalFrame.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* JInternalFrame.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -780,9 +780,11 @@ public class JInternalFrame extends JComponent implements Accessible,
* This method returns null because this must always be the root of a focus
* traversal.
*
- * @return null.
+ * @return always null
+ *
+ * @since 1.4
*/
- public Container getFocusCycleRootAncestor()
+ public final Container getFocusCycleRootAncestor()
{
// as defined.
return null;
@@ -860,7 +862,7 @@ public class JInternalFrame extends JComponent implements Accessible,
{
JDesktopPane pane = getDesktopPane();
if (pane != null)
- return pane.getLayer(this).intValue();
+ return pane.getLayer(this);
return -1;
}
@@ -968,7 +970,7 @@ public class JInternalFrame extends JComponent implements Accessible,
*
* @return null.
*/
- public String getWarningString()
+ public final String getWarningString()
{
// as defined.
return null;
@@ -1019,9 +1021,11 @@ public class JInternalFrame extends JComponent implements Accessible,
/**
* This must always return true.
*
- * @return True
+ * @return always true
+ *
+ * @since 1.4
*/
- public boolean isFocusCycleRoot()
+ public final boolean isFocusCycleRoot()
{
return true;
}
@@ -1272,8 +1276,9 @@ public class JInternalFrame extends JComponent implements Accessible,
*/
public void setDefaultCloseOperation(int operation)
{
- if (operation != DO_NOTHING_ON_CLOSE || operation != HIDE_ON_CLOSE
- || operation != DISPOSE_ON_CLOSE)
+ if (operation != DO_NOTHING_ON_CLOSE
+ && operation != HIDE_ON_CLOSE
+ && operation != DISPOSE_ON_CLOSE)
throw new Error("Close operation must be one of DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, or DISPOSE_ON_CLOSE");
defaultCloseOperation = operation;
}
diff --git a/libjava/javax/swing/JLabel.java b/libjava/javax/swing/JLabel.java
index b3d7225b1e4..c01d8110d9b 100644
--- a/libjava/javax/swing/JLabel.java
+++ b/libjava/javax/swing/JLabel.java
@@ -1,5 +1,5 @@
/* JLabel.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.
@@ -92,59 +92,6 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
private transient int iconTextGap = 4;
/**
- * Fired in a PropertyChangeEvent when the "disabledIcon" property changes.
- */
- public static final String DISABLED_ICON_CHANGED_PROPERTY = "disabledIcon";
-
- /**
- * Fired in a PropertyChangeEvent when the "displayedMnemonic" property
- * changes.
- */
- public static final String DISPLAYED_MNEMONIC_CHANGED_PROPERTY = "displayedMnemonic";
-
- /**
- * Fired in a PropertyChangeEvent when the "displayedMnemonicIndex" property
- * changes.
- */
- public static final String DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY = "displayedMnemonicIndex";
-
- /**
- * Fired in a PropertyChangeEvent when the "horizontalAlignment" property
- * changes.
- */
- public static final String HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY = "horizontalAlignment";
-
- /**
- * Fired in a PropertyChangeEvent when the "horizontalTextPosition" property
- * changes.
- */
- public static final String HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY = "horizontalTextPosition";
-
- /** Fired in a PropertyChangeEvent when the "icon" property changes. */
- public static final String ICON_CHANGED_PROPERTY = "icon";
-
- /** Fired in a PropertyChangeEvent when the "iconTextGap" property changes. */
- public static final String ICON_TEXT_GAP_CHANGED_PROPERTY = "iconTextGap";
-
- /** Fired in a PropertyChangeEvent when the "labelFor" property changes. */
- public static final String LABEL_FOR_CHANGED_PROPERTY = "labelFor";
-
- /** Fired in a PropertyChangeEvent when the "text" property changes. */
- public static final String TEXT_CHANGED_PROPERTY = "text";
-
- /**
- * Fired in a PropertyChangeEvent when the "verticalAlignment" property
- * changes.
- */
- public static final String VERTICAL_ALIGNMENT_CHANGED_PROPERTY = "verticalAlignment";
-
- /**
- * Fired in a PropertyChangeEvent when the "verticalTextPosition" property
- * changes.
- */
- public static final String VERTICAL_TEXT_POSITION_CHANGED_PROPERTY = "verticalTextPosition";
-
- /**
* Creates a new horizontally and vertically centered JLabel object with no
* text and no icon.
*/
@@ -289,7 +236,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
String oldText = text;
text = newText;
- firePropertyChange(TEXT_CHANGED_PROPERTY, oldText, newText);
+ firePropertyChange("text", oldText, newText);
if (text != null && text.length() <= displayedMnemonicIndex)
setDisplayedMnemonicIndex(text.length() - 1);
@@ -319,7 +266,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
Icon oldIcon = icon;
icon = newIcon;
- firePropertyChange(ICON_CHANGED_PROPERTY, oldIcon, newIcon);
+ firePropertyChange("icon", oldIcon, newIcon);
}
}
@@ -352,7 +299,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
Icon oldIcon = disabledIcon;
disabledIcon = newIcon;
- firePropertyChange(DISABLED_ICON_CHANGED_PROPERTY, oldIcon, newIcon);
+ firePropertyChange("disabledIcon", oldIcon, newIcon);
}
}
@@ -367,12 +314,12 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
if (displayedMnemonic != mnemonic)
{
- firePropertyChange(DISPLAYED_MNEMONIC_CHANGED_PROPERTY,
+ firePropertyChange("displayedMnemonic",
displayedMnemonic, mnemonic);
displayedMnemonic = mnemonic;
if (text != null)
- setDisplayedMnemonicIndex(text.indexOf(mnemonic));
+ setDisplayedMnemonicIndex(text.toUpperCase().indexOf(mnemonic));
}
}
@@ -385,7 +332,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
*/
public void setDisplayedMnemonic(char mnemonic)
{
- setDisplayedMnemonic((int) mnemonic);
+ setDisplayedMnemonic((int) Character.toUpperCase(mnemonic));
}
/**
@@ -399,7 +346,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
}
/**
- * This method sets which character in the text will be the underlined
+ * This method sets which character in the text will be the underlined
* character. If the given index is -1, then this indicates that there is
* no mnemonic. If the index is less than -1 or if the index is equal to
* the length, this method will throw an IllegalArgumentException.
@@ -410,19 +357,22 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
* length.
*/
public void setDisplayedMnemonicIndex(int newIndex)
- throws IllegalArgumentException
+ throws IllegalArgumentException
{
if (newIndex < -1 || (text != null && newIndex >= text.length()))
throw new IllegalArgumentException();
- if (text == null || text.charAt(newIndex) != displayedMnemonic)
+ if (newIndex == -1
+ || text == null
+ || text.charAt(newIndex) != displayedMnemonic)
newIndex = -1;
if (newIndex != displayedMnemonicIndex)
{
- firePropertyChange(DISPLAYED_MNEMONIC_INDEX_CHANGED_PROPERTY,
- displayedMnemonicIndex, newIndex);
+ int oldIndex = displayedMnemonicIndex;
displayedMnemonicIndex = newIndex;
+ firePropertyChange("displayedMnemonicIndex",
+ oldIndex, newIndex);
}
}
@@ -498,7 +448,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
if (iconTextGap != newGap)
{
- firePropertyChange(ICON_TEXT_GAP_CHANGED_PROPERTY, iconTextGap, newGap);
+ firePropertyChange("iconTextGap", iconTextGap, newGap);
iconTextGap = newGap;
}
}
@@ -523,13 +473,12 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
*/
public void setVerticalAlignment(int alignment)
{
- if (alignment != verticalAlignment)
- {
- int oldAlignment = verticalAlignment;
- verticalAlignment = checkVerticalKey(alignment, "verticalAlignment");
- firePropertyChange(VERTICAL_ALIGNMENT_CHANGED_PROPERTY, oldAlignment,
- verticalAlignment);
- }
+ if (alignment == verticalAlignment)
+ return;
+
+ int oldAlignment = verticalAlignment;
+ verticalAlignment = checkVerticalKey(alignment, "verticalAlignment");
+ firePropertyChange("verticalAlignment", oldAlignment, verticalAlignment);
}
/**
@@ -550,9 +499,12 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
*/
public void setHorizontalAlignment(int alignment)
{
+ if (horizontalAlignment == alignment)
+ return;
+
int oldAlignment = horizontalAlignment;
horizontalAlignment = checkHorizontalKey(alignment, "horizontalAlignment");
- firePropertyChange(HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, oldAlignment,
+ firePropertyChange("horizontalAlignment", oldAlignment,
horizontalAlignment);
}
@@ -580,7 +532,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
int oldPos = verticalTextPosition;
verticalTextPosition = checkVerticalKey(textPosition,
"verticalTextPosition");
- firePropertyChange(VERTICAL_TEXT_POSITION_CHANGED_PROPERTY, oldPos,
+ firePropertyChange("verticalTextPosition", oldPos,
verticalTextPosition);
}
}
@@ -609,7 +561,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
int oldPos = horizontalTextPosition;
horizontalTextPosition = checkHorizontalKey(textPosition,
"horizontalTextPosition");
- firePropertyChange(HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, oldPos,
+ firePropertyChange("horizontalTextPosition", oldPos,
horizontalTextPosition);
}
}
@@ -665,8 +617,9 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
{
if (c != labelFor)
{
- firePropertyChange(LABEL_FOR_CHANGED_PROPERTY, labelFor, c);
+ Component oldLabelFor = labelFor;
labelFor = c;
+ firePropertyChange("labelFor", oldLabelFor, labelFor);
}
}
diff --git a/libjava/javax/swing/JLayeredPane.java b/libjava/javax/swing/JLayeredPane.java
index a200f289258..cdafd8b869f 100644
--- a/libjava/javax/swing/JLayeredPane.java
+++ b/libjava/javax/swing/JLayeredPane.java
@@ -89,7 +89,7 @@ import javax.accessibility.Accessible;
* <p><b>Note:</b> the layer numbering order is the <em>reverse</em> of the
* component indexing and position order</p>
*
- * @author Graydon Hoare <graydon@redhat.com>
+ * @author Graydon Hoare (graydon@redhat.com)
*/
public class JLayeredPane extends JComponent implements Accessible
{
@@ -122,12 +122,11 @@ public class JLayeredPane extends JComponent implements Accessible
* @return the layer the component is currently assigned to, in this container.
* @throws IllegalArgumentException if the component is not a child of this container.
*/
-
- protected Integer getLayer (Component c)
+ public int getLayer(Component c)
{
if (! componentToLayer.containsKey (c))
throw new IllegalArgumentException ();
- return (Integer) componentToLayer.get (c);
+ return ((Integer) componentToLayer.get(c)).intValue();
}
/**
@@ -144,8 +143,7 @@ public class JLayeredPane extends JComponent implements Accessible
* @throws IllegalArgumentException if layer does not refer to an active layer
* in this container.
*/
-
- protected int[] layerToRange (Integer layer)
+ private int[] layerToRange (Integer layer)
{
int[] ret = new int[2];
ret[1] = getComponents ().length;
@@ -175,8 +173,7 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer number to increment.
* @see #incrLayer()
*/
-
- protected void incrLayer(Integer layer)
+ private void incrLayer(Integer layer)
{
int sz = 1;
if (layers.containsKey (layer))
@@ -190,8 +187,7 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer number to decrement.
* @see #decrLayer()
*/
-
- protected void decrLayer(Integer layer)
+ private void decrLayer(Integer layer)
{
int sz = 0;
if (layers.containsKey (layer))
@@ -206,7 +202,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @return the least layer number.
* @see #lowestLayer()
*/
-
public int highestLayer()
{
if (layers.size() == 0)
@@ -221,7 +216,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @return the least layer number.
* @see #highestLayer()
*/
-
public int lowestLayer()
{
if (layers.size() == 0)
@@ -240,7 +234,6 @@ public class JLayeredPane extends JComponent implements Accessible
* this container.
* @see #moveToBack()
*/
-
public void moveToFront(Component c)
{
setPosition (c, 0);
@@ -260,7 +253,6 @@ public class JLayeredPane extends JComponent implements Accessible
* this container.
* @see #moveToFront()
*/
-
public void moveToBack(Component c)
{
setPosition (c, -1);
@@ -276,11 +268,10 @@ public class JLayeredPane extends JComponent implements Accessible
* this container.
* @see #setPosition()
*/
-
public int getPosition(Component c)
{
- Integer layer = getLayer (c);
- int[] range = layerToRange (layer);
+ int layer = getLayer (c);
+ int[] range = layerToRange(new Integer(layer));
int top = range[0];
int bot = range[1];
Component[] comps = getComponents ();
@@ -304,33 +295,32 @@ public class JLayeredPane extends JComponent implements Accessible
* this container.
* @see #getPosition()
*/
-
public void setPosition(Component c, int position)
{
- Integer layer = getLayer (c);
- int[] range = layerToRange (layer);
+ int layer = getLayer (c);
+ int[] range = layerToRange(new Integer(layer));
if (range[0] == range[1])
- throw new IllegalArgumentException ();
+ throw new IllegalArgumentException ();
int top = range[0];
int bot = range[1];
if (position == -1)
- position = (bot - top) - 1;
+ position = (bot - top) - 1;
int targ = Math.min(top + position, bot-1);
int curr = -1;
Component[] comps = getComponents();
for (int i = top; i < bot; ++i)
- {
+ {
if (comps[i] == c)
{
curr = i;
break;
}
- }
+ }
if (curr == -1)
- // should have found it
- throw new IllegalArgumentException ();
+ // should have found it
+ throw new IllegalArgumentException();
super.swapComponents (curr, targ);
revalidate();
@@ -345,7 +335,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer to return components from.
* @return the components in the layer.
*/
-
public Component[] getComponentsInLayer(int layer)
{
int[] range = layerToRange (getObjectForLayer (layer));
@@ -369,7 +358,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer count components in.
* @return the number of components in the layer.
*/
-
public int getComponentCountInLayer(int layer)
{
int[] range = layerToRange (getObjectForLayer (layer));
@@ -383,7 +371,6 @@ public class JLayeredPane extends JComponent implements Accessible
* Return a hashtable mapping child components of this container to
* Integer objects representing the component's layer assignments.
*/
-
protected Hashtable getComponentToLayer()
{
return componentToLayer;
@@ -400,11 +387,10 @@ public class JLayeredPane extends JComponent implements Accessible
* @throws IllegalArgumentException if the component is not a child of
* this container.
*/
-
public int getIndexOf(Component c)
{
- Integer layer = getLayer (c);
- int[] range = layerToRange (layer);
+ int layer = getLayer (c);
+ int[] range = layerToRange(new Integer(layer));
Component[] comps = getComponents();
for (int i = range[0]; i < range[1]; ++i)
{
@@ -423,7 +409,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer number as an int.
* @return the layer number as an Integer, possibly shared.
*/
-
protected Integer getObjectForLayer(int layer)
{
switch (layer)
@@ -462,7 +447,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param position the position in the layer at which to insert a component.
* @return the index at which to insert the component.
*/
-
protected int insertIndexForLayer(int layer, int position)
{
@@ -488,12 +472,11 @@ public class JLayeredPane extends JComponent implements Accessible
*
* @param index the index of the child component to remove.
*/
-
public void remove (int index)
{
Component c = getComponent (index);
- Integer layer = getLayer (c);
- decrLayer (layer);
+ int layer = getLayer (c);
+ decrLayer (new Integer(layer));
componentToLayer.remove (c);
super.remove (index);
revalidate();
@@ -506,7 +489,6 @@ public class JLayeredPane extends JComponent implements Accessible
*
* @param comp the child to remove.
*/
-
public void remove (Component comp)
{
remove (getIndexOf (comp));
@@ -523,7 +505,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param c the component to set the layer property for.
* @param layer the layer number to assign to the component.
*/
-
public void setLayer(Component c, int layer)
{
componentToLayer.put (c, getObjectForLayer (layer));
@@ -536,7 +517,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layer the layer number to assign to the component.
* @param position the position number to assign to the component.
*/
-
public void setLayer(Component c,
int layer,
int position)
@@ -558,7 +538,6 @@ public class JLayeredPane extends JComponent implements Accessible
* @param layerConstraint an integer specifying the layer to add the component to.
* @param index an ignored parameter, for compatibility.
*/
-
protected void addImpl(Component comp, Object layerConstraint, int index)
{
Integer layer;
diff --git a/libjava/javax/swing/JList.java b/libjava/javax/swing/JList.java
index d88a4db599c..adb72892450 100644
--- a/libjava/javax/swing/JList.java
+++ b/libjava/javax/swing/JList.java
@@ -1,5 +1,5 @@
/* JList.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -129,34 +129,6 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public static final int HORIZONTAL_WRAP = 2;
- /** Fired in a PropertyChangeEvent when the "cellRenderer" property changes. */
- public static final String CELL_RENDERER_PROPERTY_CHANGED = "cellRenderer";
-
- /** Fired in a PropertyChangeEvent when the "fixedCellHeight" property changes. */
- public static final String FIXED_CELL_HEIGHT_PROPERTY_CHANGED = "fixedCellHeight";
-
- /** Fired in a PropertyChangeEvent when the "fixedCellWidth" property changes. */
- public static final String FIXED_CELL_WIDTH_PROPERTY_CHANGED = "fixedCellWidth";
-
- /** Fired in a PropertyChangeEvent when the "layoutOrientation" property changes. */
- public static final String LAYOUT_ORIENTATION_PROPERTY_CHANGED = "layoutOrientation";
-
- /** Fired in a PropertyChangeEvent when the "model" property changes. */
- public static final String MODEL_PROPERTY_CHANGED = "model";
-
- /** Fired in a PropertyChangeEvent when the "prototypeCellValue" property changes. */
- public static final String PROTOTYPE_CELL_VALUE_PROPERTY_CHANGED = "prototypeCellValue";
-
- /** Fired in a PropertyChangeEvent when the "selectionBackground" property changes. */
- public static final String SELECTION_BACKGROUND_PROPERTY_CHANGED = "selectionBackground";
-
- /** Fired in a PropertyChangeEvent when the "selectionForeground" property changes. */
- public static final String SELECTION_FOREGROUND_PROPERTY_CHANGED = "selectionForeground";
-
- /** Fired in a PropertyChangeEvent when the "selectionModel" property changes. */
- public static final String SELECTION_MODEL_PROPERTY_CHANGED = "selectionModel";
-
-
/**
* This property indicates whether "drag and drop" functions are enabled
* on the list.
@@ -187,7 +159,6 @@ public class JList extends JComponent implements Accessible, Scrollable
* is one of the integer constants {@link #VERTICAL}, {@link
* #VERTICAL_WRAP}, or {@link #HORIZONTAL_WRAP}.
*/
-
int layoutOrientation;
/** This property holds the data elements displayed by the list. */
@@ -250,12 +221,10 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
int visibleRowCount;
-
-
/**
* Fire a {@link ListSelectionEvent} to all the registered ListSelectionListeners.
*/
- void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
+ protected void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
{
ListSelectionEvent evt = new ListSelectionEvent(this, firstIndex, lastIndex, isAdjusting);
ListSelectionListener listeners[] = getListSelectionListeners();
@@ -265,7 +234,6 @@ public class JList extends JComponent implements Accessible, Scrollable
}
}
-
/**
* This private listener propagates {@link ListSelectionEvent} events
* from the list's "selectionModel" property to the list's {@link
@@ -365,12 +333,22 @@ public class JList extends JComponent implements Accessible, Scrollable
listListener = new ListListener();
setModel(new DefaultListModel());
- setSelectionModel(new DefaultListSelectionModel());
+ setSelectionModel(createSelectionModel());
updateUI();
}
/**
+ * Creates the default <code>ListSelectionModel</code>.
+ *
+ * @return the <code>ListSelectionModel</code>
+ */
+ protected ListSelectionModel createSelectionModel()
+ {
+ return new DefaultListSelectionModel();
+ }
+
+ /**
* Gets the value of the {@link #fixedCellHeight} property. This property
* may be <code>-1</code> to indicate that no cell height has been
* set. This property is also set implicitly when the
@@ -399,9 +377,12 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public void setFixedCellHeight(int h)
{
+ if (fixedCellHeight == h)
+ return;
+
int old = fixedCellHeight;
fixedCellHeight = h;
- firePropertyChange(FIXED_CELL_WIDTH_PROPERTY_CHANGED, old, h);
+ firePropertyChange("fixedCellWidth", old, h);
}
@@ -428,17 +409,19 @@ public class JList extends JComponent implements Accessible, Scrollable
* #prototypeCellValue} property is set, but setting it explicitly
* overrides the width computed from {@link #prototypeCellValue}.
*
- * @see #getFixedCellWidth
+ * @see #getFixedCellHeight
* @see #getPrototypeCellValue
*/
- public void setFixedCellWidth(int h)
+ public void setFixedCellWidth(int w)
{
- int old = fixedCellHeight;
- fixedCellHeight = h;
- firePropertyChange(FIXED_CELL_HEIGHT_PROPERTY_CHANGED, old, h);
+ if (fixedCellWidth == w)
+ return;
+
+ int old = fixedCellWidth;
+ fixedCellWidth = w;
+ firePropertyChange("fixedCellWidth", old, w);
}
-
/**
* Gets the value of the {@link #visibleRowCount} property.
*
@@ -501,6 +484,11 @@ public class JList extends JComponent implements Accessible, Scrollable
return (ListSelectionListener[]) getListeners(ListSelectionListener.class);
}
+ public int getSelectionMode()
+ {
+ return selectionModel.getSelectionMode();
+ }
+
/**
* Sets the list's "selectionMode" property, which simply mirrors the
* same property on the list's {@link #selectionModel} property. This
@@ -723,9 +711,12 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public void setSelectionBackground(Color c)
{
+ if (selectionBackground == c)
+ return;
+
Color old = selectionBackground;
selectionBackground = c;
- firePropertyChange(SELECTION_BACKGROUND_PROPERTY_CHANGED, old, c);
+ firePropertyChange("selectionBackground", old, c);
repaint();
}
@@ -746,9 +737,12 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public void setSelectionForeground(Color c)
{
+ if (selectionForeground == c)
+ return;
+
Color old = selectionForeground;
selectionForeground = c;
- firePropertyChange(SELECTION_FOREGROUND_PROPERTY_CHANGED, old, c);
+ firePropertyChange("selectionForeground", old, c);
}
/**
@@ -850,13 +844,16 @@ public class JList extends JComponent implements Accessible, Scrollable
/**
* Sets the value of the {@link #celLRenderer} property.
*
- * @param cellRenderer The new property value
+ * @param renderer The new property value
*/
- public void setCellRenderer(ListCellRenderer cr)
+ public void setCellRenderer(ListCellRenderer renderer)
{
+ if (cellRenderer == renderer)
+ return;
+
ListCellRenderer old = cellRenderer;
- cellRenderer = cr;
- firePropertyChange(CELL_RENDERER_PROPERTY_CHANGED, old, cr);
+ cellRenderer = renderer;
+ firePropertyChange("cellRenderer", old, renderer);
revalidate();
repaint();
}
@@ -878,15 +875,21 @@ public class JList extends JComponent implements Accessible, Scrollable
*
* @param model The new property value
*/
- public void setModel(ListModel m)
+ public void setModel(ListModel model)
{
- ListModel old = model;
- if (old != null)
- old.removeListDataListener(listListener);
- model = m;
- if (model != null)
- model.addListDataListener(listListener);
- firePropertyChange(MODEL_PROPERTY_CHANGED, old, m);
+ if (this.model == model)
+ return;
+
+ if (this.model != null)
+ this.model.removeListDataListener(listListener);
+
+ ListModel old = this.model;
+ this.model = model;
+
+ if (this.model != null)
+ this.model.addListDataListener(listListener);
+
+ firePropertyChange("model", old, model);
revalidate();
repaint();
}
@@ -902,17 +905,23 @@ public class JList extends JComponent implements Accessible, Scrollable
* {@link #listListener} is unsubscribed from the existing selection
* model, if it exists, and re-subscribed to the new selection model.
*
- * @param l The new property value
+ * @param model The new property value
*/
- public void setSelectionModel(ListSelectionModel l)
+ public void setSelectionModel(ListSelectionModel model)
{
+ if (selectionModel == model)
+ return;
+
+ if (selectionModel != null)
+ selectionModel.removeListSelectionListener(listListener);
+
ListSelectionModel old = selectionModel;
- if (old != null)
- old.removeListSelectionListener(listListener);
- selectionModel = l;
+ selectionModel = model;
+
if (selectionModel != null)
selectionModel.addListSelectionListener(listListener);
- firePropertyChange(SELECTION_MODEL_PROPERTY_CHANGED, old, l);
+
+ firePropertyChange("selectionModel", old, model);
revalidate();
repaint();
}
@@ -992,6 +1001,9 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
public void setPrototypeCellValue(Object obj)
{
+ if (prototypeCellValue == obj)
+ return;
+
Object old = prototypeCellValue;
Component comp = getCellRenderer()
.getListCellRendererComponent(this, obj, 0, false, false);
@@ -999,7 +1011,7 @@ public class JList extends JComponent implements Accessible, Scrollable
fixedCellWidth = d.width;
fixedCellHeight = d.height;
prototypeCellValue = obj;
- firePropertyChange(PROTOTYPE_CELL_VALUE_PROPERTY_CHANGED, old, obj);
+ firePropertyChange("prototypeCellValue", old, obj);
}
public AccessibleContext getAccessibleContext()
@@ -1196,4 +1208,119 @@ public class JList extends JComponent implements Accessible, Scrollable
{
return false;
}
+
+ public int getAnchorSelectionIndex()
+ {
+ return selectionModel.getAnchorSelectionIndex();
+ }
+
+ public int getLeadSelectionIndex()
+ {
+ return selectionModel.getLeadSelectionIndex();
+ }
+
+ public int getMinSelectionIndex()
+ {
+ return selectionModel.getMaxSelectionIndex();
+ }
+
+ public int getMaxSelectionIndex()
+ {
+ return selectionModel.getMaxSelectionIndex();
+ }
+
+ public void clearSelection()
+ {
+ selectionModel.clearSelection();
+ }
+
+ public void setSelectionInterval(int anchor, int lead)
+ {
+ selectionModel.setSelectionInterval(anchor, lead);
+ }
+
+ public void addSelectionInterval(int anchor, int lead)
+ {
+ selectionModel.addSelectionInterval(anchor, lead);
+ }
+
+ public void removeSelectionInterval(int index0, int index1)
+ {
+ selectionModel.removeSelectionInterval(index0, index1);
+ }
+
+ /**
+ * Returns the value of the <code>valueIsAdjusting</code> property.
+ *
+ * @return the value
+ */
+ public boolean getValueIsAdjusting()
+ {
+ return valueIsAdjusting;
+ }
+
+ /**
+ * Sets the <code>valueIsAdjusting</code> property.
+ *
+ * @param isAdjusting the new value
+ */
+ public void setValueIsAdjusting(boolean isAdjusting)
+ {
+ valueIsAdjusting = isAdjusting;
+ }
+
+ /**
+ * Return the value of the <code>dragEnabled</code> property.
+ *
+ * @return the value
+ *
+ * @since 1.4
+ */
+ public boolean getDragEnabled()
+ {
+ return dragEnabled;
+ }
+
+ /**
+ * Set the <code>dragEnabled</code> property.
+ *
+ * @param enabled new value
+ *
+ * @since 1.4
+ */
+ public void setDragEnabled(boolean enabled)
+ {
+ dragEnabled = enabled;
+ }
+
+ /**
+ * Returns the layout orientation.
+ *
+ * @return the orientation, one of <code>JList.VERTICAL</code>,
+ * <code>JList.VERTICAL_WRAP</code> and <code>JList.HORIZONTAL_WRAP</code>
+ *
+ * @since 1.4
+ */
+ public int getLayoutOrientation()
+ {
+ return layoutOrientation;
+ }
+
+ /**
+ * Sets the layout orientation.
+ *
+ * @param orientation the orientation to set, one of <code>JList.VERTICAL</code>,
+ * <code>JList.VERTICAL_WRAP</code> and <code>JList.HORIZONTAL_WRAP</code>
+ *
+ * @since 1.4
+ */
+ public void setLayoutOrientation(int orientation)
+ {
+ if (layoutOrientation == orientation)
+ return;
+
+ int old = layoutOrientation;
+ layoutOrientation = orientation;
+ firePropertyChange("layoutOrientation", old, orientation);
+ }
}
diff --git a/libjava/javax/swing/JMenu.java b/libjava/javax/swing/JMenu.java
index 812c26bed01..d9ad317a7ef 100644
--- a/libjava/javax/swing/JMenu.java
+++ b/libjava/javax/swing/JMenu.java
@@ -1,5 +1,5 @@
/* JMenu.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.
@@ -59,11 +59,9 @@ import javax.swing.event.MenuListener;
import javax.swing.plaf.MenuItemUI;
/**
- * <p>
* This class represents a menu that can be added to a menu bar or
* can be a submenu in some other menu. When JMenu is selected it
* displays JPopupMenu containing its menu items.
- * </p>
*
* <p>
* JMenu's fires MenuEvents when this menu's selection changes. If this menu
@@ -71,14 +69,10 @@ import javax.swing.plaf.MenuItemUI;
* deselected or cancelled, then fireMenuDeselectedEvent() or
* fireMenuCancelledEvent() is invoked, respectivelly.
* </p>
- *
*/
public class JMenu extends JMenuItem implements Accessible, MenuElement
{
- static final long serialVersionUID = 4227225638931828014L;
-
- /** name for the UI delegate for this menu. */
- private static final String uiClassID = "MenuUI";
+ private static final long serialVersionUID = 4227225638931828014L;
/** A Popup menu associated with this menu, which pops up when menu is selected */
private JPopupMenu popupMenu = new JPopupMenu();
@@ -107,30 +101,32 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
}
/**
- * Creates a new JMenu with the spicified label
+ * Creates a new <code>JMenu</code> with the specified label.
*
* @param text label for this menu
*/
public JMenu(String text)
{
super(text);
+ popupMenu.setInvoker(this);
}
/**
- * Creates a new JMenu object
+ * Creates a new <code>JMenu</code> object.
*
- * @param action Action that is used to create menu item tha will be
+ * @param action Action that is used to create menu item tha will be
* added to the menu.
*/
public JMenu(Action action)
{
super(action);
createActionChangeListener(this);
+ popupMenu.setInvoker(this);
}
/**
- * Creates a new JMenu with specified label and an option
- * for this menu to be tear-off menu
+ * Creates a new <code>JMenu</code> with specified label and an option
+ * for this menu to be tear-off menu.
*
* @param text label for this menu
* @param tearoff true if this menu should be tear-off and false otherwise
@@ -273,7 +269,6 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
throw new IllegalArgumentException("index less than zero");
popupMenu.insert(item, index);
-
return item;
}
@@ -312,7 +307,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
*/
public String getUIClassID()
{
- return uiClassID;
+ return "MenuUI";
}
/**
@@ -347,7 +342,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
// display popup associated with this menu
if (selected)
{
- super.setArmed(true);
+ super.setArmed(true);
super.setSelected(true);
// FIXME: The popup menu should be shown on the screen after certain
@@ -355,7 +350,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
// this amount of seconds. 'delay' property is 0 by default.
if (this.isShowing())
{
- fireMenuSelected();
+ fireMenuSelected();
int x = 0;
int y = 0;
@@ -388,8 +383,8 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
/**
* Checks if PopupMenu associated with this menu is visible
*
- * @return true if the popup associated with this menu is currently visible on the screen and
- * false otherwise.
+ * @return true if the popup associated with this menu is currently visible
+ * on the screen and false otherwise.
*/
public boolean isPopupMenuVisible()
{
@@ -528,15 +523,15 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
}
/**
- * Returns number of items in the menu
+ * Returns number of items in the menu including separators.
*
* @return number of items in the menu
+ *
+ * @see #getMenuComponentCount()
*/
public int getItemCount()
{
- // returns the number of items on
- // the menu, including separators.
- return getComponents().length;
+ return getMenuComponentCount();
}
/**
@@ -592,10 +587,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
*/
public boolean isTopLevelMenu()
{
- if (getParent() instanceof JMenuBar)
- return true;
- else
- return false;
+ return getParent() instanceof JMenuBar;
}
/**
@@ -790,7 +782,7 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement
*/
protected String paramString()
{
- return "JMenu";
+ return super.paramString();
}
public AccessibleContext getAccessibleContext()
diff --git a/libjava/javax/swing/JMenuBar.java b/libjava/javax/swing/JMenuBar.java
index 904ba3b69a3..e14c2627073 100644
--- a/libjava/javax/swing/JMenuBar.java
+++ b/libjava/javax/swing/JMenuBar.java
@@ -1,5 +1,5 @@
-/* JMenuBar.java --
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* JMenuBar.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,6 @@ import javax.accessibility.AccessibleContext;
import javax.swing.plaf.MenuBarUI;
/**
- * <p>
* JMenuBar is a container for menu's. For a menu bar to be seen on the
* screen, at least one menu should be added to it. Just like adding
* components to container, one can use add() to add menu's to the menu bar.
@@ -57,18 +56,9 @@ import javax.swing.plaf.MenuBarUI;
* The JMenuBar uses selectionModel to keep track of selected menu index.
* JMenuBar's selectionModel will fire ChangeEvents to its registered
* listeners when the selected index changes.
- * </p>
*/
public class JMenuBar extends JComponent implements Accessible, MenuElement
{
- /** Fired in a PropertyChangeEvent when the "borderPainted" property changes. */
- public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted";
-
- /** Fired in a PropertyChangeEvent when the "model" changes. */
- public static final String MODEL_CHANGED_PROPERTY = "model";
-
- /** Fired in a PropertyChangeEvent when the "margin" changes. */
- public static final String MARGIN_CHANGED_PROPERTY = "margin";
private static final long serialVersionUID = -8191026883931977036L;
/** JMenuBar's model. It keeps track of selected menu's index */
@@ -294,7 +284,7 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
* This method does nothing by default. This method is need for the
* MenuElement interface to be implemented.
*
- * @param isIncluded true if menuBar is included in the selection
+ * @param isIncluded true if menuBar is included in the selection
* and false otherwise
*/
public void menuSelectionChanged(boolean isIncluded)
@@ -303,7 +293,7 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
}
/**
- * Paints border of the menu bar, if its borderPainted property is set to
+ * Paints border of the menu bar, if its borderPainted property is set to
* true.
*
* @param g The graphics context with which to paint the border
@@ -323,7 +313,13 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
protected String paramString()
{
- return "JMenuBar";
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.paramString());
+ sb.append(",margin=");
+ if (getMargin() != null)
+ sb.append(getMargin());
+ sb.append(",paintBorder=").append(isBorderPainted());
+ return sb.toString();
}
/**
@@ -374,11 +370,11 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
public void setBorderPainted(boolean b)
{
- boolean old = borderPainted;
- borderPainted = b;
- if (b != old)
+ if (b != borderPainted)
{
- firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, old, b);
+ boolean old = borderPainted;
+ borderPainted = b;
+ firePropertyChange("borderPainted", old, b);
revalidate();
repaint();
}
@@ -404,14 +400,12 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
public void setMargin(Insets m)
{
- if (m.equals(this.margin))
+ if (m != margin)
{
- Insets oldMargin = this.margin;
- this.margin = m;
- firePropertyChange(MARGIN_CHANGED_PROPERTY, oldMargin, margin);
+ Insets oldMargin = margin;
+ margin = m;
+ firePropertyChange("margin", oldMargin, margin);
}
-
- this.margin = m;
}
/**
@@ -434,15 +428,11 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
public void setSelectionModel(SingleSelectionModel model)
{
- selectionModel = model;
if (selectionModel != model)
{
SingleSelectionModel oldModel = selectionModel;
-
selectionModel = model;
-
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel,
- this.selectionModel);
+ firePropertyChange("model", oldModel, selectionModel);
}
}
diff --git a/libjava/javax/swing/JMenuItem.java b/libjava/javax/swing/JMenuItem.java
index 0aaf0c790e2..0ea38e0f7ba 100644
--- a/libjava/javax/swing/JMenuItem.java
+++ b/libjava/javax/swing/JMenuItem.java
@@ -1,5 +1,5 @@
/* JMenuItem.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.
@@ -60,9 +60,7 @@ import javax.swing.event.MenuKeyEvent;
import javax.swing.event.MenuKeyListener;
import javax.swing.plaf.MenuItemUI;
-
/**
- * <p>
* JMenuItem represents element in the menu. It inherits most of
* its functionality from AbstractButton, however its behavior somewhat
* varies from it. JMenuItem fire different kinds of events.
@@ -71,16 +69,12 @@ import javax.swing.plaf.MenuItemUI;
* fired when menu item is selected. In addition to this events menuItem also
* fire MenuDragMouseEvent and MenuKeyEvents when mouse is dragged over
* the menu item or associated key with menu item is invoked respectively.
- * </p>
*/
public class JMenuItem extends AbstractButton implements Accessible,
MenuElement
{
private static final long serialVersionUID = -1681004643499461044L;
- /** name for the UI delegate for this menuItem. */
- private static final String uiClassID = "MenuItemUI";
-
/** Combination of keyboard keys that can be used to activate this menu item */
private KeyStroke accelerator;
@@ -212,7 +206,7 @@ public class JMenuItem extends AbstractButton implements Accessible,
*/
public String getUIClassID()
{
- return uiClassID;
+ return "MenuItemUI";
}
/**
@@ -325,11 +319,11 @@ public class JMenuItem extends AbstractButton implements Accessible,
break;
case MouseEvent.MOUSE_ENTERED:
if (isRolloverEnabled())
- model.setRollover(true);
+ model.setRollover(true);
break;
case MouseEvent.MOUSE_EXITED:
if (isRolloverEnabled())
- model.setRollover(false);
+ model.setRollover(false);
// for JMenu last element on the path is its popupMenu.
// JMenu shouldn't me disarmed.
@@ -532,14 +526,14 @@ public class JMenuItem extends AbstractButton implements Accessible,
Component parent = this.getParent();
if (changed)
{
- model.setArmed(true);
+ model.setArmed(true);
if (parent != null && parent instanceof JPopupMenu)
((JPopupMenu) parent).setSelected(this);
}
else
{
- model.setArmed(false);
+ model.setArmed(false);
if (parent != null && parent instanceof JPopupMenu)
((JPopupMenu) parent).getSelectionModel().clearSelection();
@@ -551,7 +545,7 @@ public class JMenuItem extends AbstractButton implements Accessible,
*
* @return $MenuElement[]$ Returns array of sub-components for this menu
* item. By default menuItem doesn't have any subcomponents and so
- * empty array is returned instead.
+ * empty array is returned instead.
*/
public MenuElement[] getSubElements()
{
@@ -644,7 +638,7 @@ public class JMenuItem extends AbstractButton implements Accessible,
*/
protected String paramString()
{
- return "JMenuItem";
+ return super.paramString();
}
public AccessibleContext getAccessibleContext()
diff --git a/libjava/javax/swing/JOptionPane.java b/libjava/javax/swing/JOptionPane.java
index 26236822cec..0a00729b5cc 100644
--- a/libjava/javax/swing/JOptionPane.java
+++ b/libjava/javax/swing/JOptionPane.java
@@ -64,7 +64,7 @@ public class JOptionPane extends JComponent implements Accessible
{
/** DOCUMENT ME! */
private static final long serialVersionUID = 686071432213084821L;
-
+
/**
* Creates a new AccessibleJOptionPane object.
*/
@@ -85,7 +85,7 @@ public class JOptionPane extends JComponent implements Accessible
/** DOCUMENT ME! */
private static final long serialVersionUID = 5231143276678566796L;
-
+
/** The value returned when cancel option is selected. */
public static final int CANCEL_OPTION = 2;
diff --git a/libjava/javax/swing/JPasswordField.java b/libjava/javax/swing/JPasswordField.java
index 133c99ac310..449aa82cd2c 100644
--- a/libjava/javax/swing/JPasswordField.java
+++ b/libjava/javax/swing/JPasswordField.java
@@ -47,9 +47,10 @@ import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
/**
- * JPasswordField
- * @author Andrew Selkirk
- * @version 1.0
+ * class JPasswordField
+ *
+ * @author Andrew Selkirk
+ * @version 1.0
*/
public class JPasswordField extends JTextField
{
@@ -69,6 +70,7 @@ public class JPasswordField extends JTextField
/**
* getAccessibleRole
+ *
* @return AccessibleRole
*/
public AccessibleRole getAccessibleRole()
@@ -83,7 +85,7 @@ public class JPasswordField extends JTextField
private char echoChar = 0;
/**
- * Constructor JPasswordField
+ * Creates a <code>JPasswordField</code> object.
*/
public JPasswordField()
{
@@ -240,7 +242,7 @@ public class JPasswordField extends JTextField
*/
public char[] getPassword()
{
- return null; // TODO
+ return new char[0]; // TODO
}
/**
diff --git a/libjava/javax/swing/JPopupMenu.java b/libjava/javax/swing/JPopupMenu.java
index 76f63621d7e..00998b81a6f 100644
--- a/libjava/javax/swing/JPopupMenu.java
+++ b/libjava/javax/swing/JPopupMenu.java
@@ -1,5 +1,5 @@
-/* JPopupMenu.java
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* JPopupMenu.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,6 @@ package javax.swing;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
-import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.Panel;
@@ -53,6 +52,7 @@ import java.beans.PropertyChangeListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.util.ArrayList;
import java.util.EventListener;
import javax.accessibility.Accessible;
@@ -92,12 +92,6 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
{
private static final long serialVersionUID = -8336996630009646009L;
- /** name for the UI delegate for this menuItem. */
- private static final String uiClassID = "PopupMenuUI";
-
- /** Fire a PropertyChangeEvent when the "borderPainted" property changes. */
- public static final String LABEL_CHANGED_PROPERTY = "label";
-
/* indicates if popup's menu border should be painted*/
private boolean borderPainted = true;
@@ -142,19 +136,12 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
/* Field indicating if popup menu is visible or not */
private boolean visible = false;
- /* Bound Property indicating visibility of the popup menu*/
- public static final String VISIBLE_CHANGED_PROPERTY = "visible";
-
/**
* Creates a new JPopupMenu object.
*/
public JPopupMenu()
{
- updateUI();
-
- lightWeightPopupEnabled = DefaultLightWeightPopupEnabled;
- selectionModel = new DefaultSingleSelectionModel();
- super.setVisible(false);
+ this(null);
}
/**
@@ -164,7 +151,11 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
*/
public JPopupMenu(String label)
{
+ lightWeightPopupEnabled = getDefaultLightWeightPopupEnabled();
setLabel(label);
+ setSelectionModel(new DefaultSingleSelectionModel());
+ super.setVisible(false);
+ updateUI();
}
private void readObject(ObjectInputStream stream)
@@ -177,12 +168,12 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
}
/**
- * Adds given menu item to the popup menu
- *
- * @param item menu item to add to the popup menu
- *
- * @return menu item that was added to the popup menu
- */
+ * Adds given menu item to the popup menu
+ *
+ * @param item menu item to add to the popup menu
+ *
+ * @return menu item that was added to the popup menu
+ */
public JMenuItem add(JMenuItem item)
{
this.insert(item, -1);
@@ -291,18 +282,6 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
}
/**
- * Paints popup menu's border if borderPainted is true
- *
- * @param graphics graphics context used to paint this popup's menu border.
- */
- protected void borderPainted(Graphics graphics)
- {
- if (borderPainted)
- getBorder().paintBorder(this, graphics, 0, 0, getSize(null).width,
- getSize(null).height);
- }
-
- /**
* Returns flag indicating if newly created JPopupMenu will use
* heavyweight or lightweight container to display its menu items
*
@@ -386,10 +365,7 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
*/
public void setSelectionModel(SingleSelectionModel model)
{
- if (selectionModel != model)
- {
- SingleSelectionModel oldModel = this.selectionModel;
- }
+ selectionModel = model;
}
/**
@@ -452,7 +428,7 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
/**
* Sets label for this popup menu. This method fires PropertyChangeEvent
* when the label property is changed. Please note that most
- * of the Look & Feel will ignore this property.
+ * of the Look &amp; Feel will ignore this property.
*
* @param label label for this popup menu
*/
@@ -461,8 +437,8 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
if (label != this.label)
{
String oldLabel = this.label;
- this.label = label;
- firePropertyChange(LABEL_CHANGED_PROPERTY, oldLabel, label);
+ this.label = label;
+ firePropertyChange("label", oldLabel, label);
}
}
@@ -574,11 +550,14 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
*/
public void setVisible(boolean visible)
{
+ if (visible == isVisible())
+ return;
+
boolean old = isVisible();
this.visible = visible;
if (old != isVisible())
{
- firePropertyChange(VISIBLE_CHANGED_PROPERTY, old, (boolean) isVisible());
+ firePropertyChange("visible", old, isVisible());
if (visible)
{
firePopupMenuWillBecomeVisible();
@@ -619,11 +598,11 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
{
// Subtract insets of the top-level container if popup menu's
// top-left corner is inside it.
- Insets insets = rootContainer.getInsets();
- popup.show(popupLocation.x - insets.left,
- popupLocation.y - insets.top, size.width,
- size.height);
- }
+ Insets insets = rootContainer.getInsets();
+ popup.show(popupLocation.x - insets.left,
+ popupLocation.y - insets.top, size.width,
+ size.height);
+ }
}
else
{
@@ -791,7 +770,17 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
*/
protected String paramString()
{
- return "JPopupMenu";
+ StringBuffer sb = new StringBuffer();
+ sb.append(super.paramString());
+ sb.append(",label=");
+ if (getLabel() != null)
+ sb.append(getLabel());
+ sb.append(",lightWeightPopupEnabled=").append(isLightWeightPopupEnabled());
+ sb.append(",margin=");
+ if (getMargin() != null)
+ sb.append(margin);
+ sb.append(",paintBorder=").append(isBorderPainted());
+ return sb.toString();
}
/**
@@ -839,19 +828,22 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
}
/**
- * Return subcomonents of this popup menu.
+ * Return subcomonents of this popup menu. This method returns only
+ * components that implement the <code>MenuElement</code> interface.
*
- * @return Array containing menuItem's of belonging to this popup menu.
+ * @return array of menu items belonging to this popup menu
*/
public MenuElement[] getSubElements()
{
Component[] items = getComponents();
- MenuElement[] subElements = new MenuElement[items.length];
+ ArrayList subElements = new ArrayList();
for (int i = 0; i < items.length; i++)
- subElements[i] = (MenuElement) items[i];
+ if (items[i] instanceof MenuElement)
+ subElements.add(items[i]);
- return subElements;
+ return (MenuElement[])
+ subElements.toArray(new MenuElement[subElements.size()]);
}
/**
@@ -1038,14 +1030,6 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
this.setBounds(x, y, width, height);
this.show();
}
-
- /**
- * Hides JWindow with menu item's from the screen.
- */
- public void hide()
- {
- super.hide();
- }
}
/**
diff --git a/libjava/javax/swing/JProgressBar.java b/libjava/javax/swing/JProgressBar.java
index 3c4084724f2..105f7c49073 100644
--- a/libjava/javax/swing/JProgressBar.java
+++ b/libjava/javax/swing/JProgressBar.java
@@ -1,5 +1,5 @@
/* JProgressBar.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;
import java.awt.Graphics;
@@ -48,21 +49,18 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.ProgressBarUI;
-
/**
- * <p>
* The ProgressBar is a widget that displays in two modes. In
* determinate mode, it displays fills a percentage of its bar
* based on its current value. In indeterminate mode, it creates
* box and bounces it between its bounds.
- * </p>
*
* <p>
* JProgressBars have the following properties:
* </p>
*
* <table>
- * <tr><th> Property </td><th> Stored in </td><th> Bound? </td></tr>
+ * <tr><th> Property </th><th> Stored in </th><th> Bound? </th></tr>
* <tr><td> borderPainted </td><td> progressBar </td><td> yes </td></tr>
* <tr><td> changeListeners </td><td> progressBar </td><td> no </td></tr>
* <tr><td> indeterminate </td><td> progressBar </td><td> yes </td></tr>
@@ -171,21 +169,6 @@ public class JProgressBar extends JComponent implements SwingConstants,
private static final long serialVersionUID = 1980046021813598781L;
- /** Fired in a PropertyChangeEvent when the "borderPainted" property changes. */
- public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted";
-
- /** Fired in a PropertyChangeEvent when the "orientation" property changes. */
- public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
-
- /** Fired in a PropertyChangeEvent when the "string" property changes. */
- public static final String STRING_CHANGED_PROPERTY = "string";
-
- /** Fired in a PropertyChangeEvent when the "stringPainted" property changes. */
- public static final String STRING_PAINTED_CHANGED_PROPERTY = "stringPainted";
-
- /** Fired in a PropertyChangeEvent when the "indeterminate" property changes. */
- public static final String INDETERMINATE_CHANGED_PROPERTY = "indeterminate";
-
/** Whether the ProgressBar is determinate. */
private transient boolean indeterminate = false;
@@ -331,7 +314,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
int oldOrientation = this.orientation;
this.orientation = orientation;
- firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
+ firePropertyChange("orientation", oldOrientation,
this.orientation);
}
}
@@ -357,7 +340,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
boolean oldPainted = paintString;
paintString = painted;
- firePropertyChange(STRING_PAINTED_CHANGED_PROPERTY, oldPainted,
+ firePropertyChange("stringPainted", oldPainted,
paintString);
}
}
@@ -394,7 +377,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
String oldString = progressString;
progressString = string;
- firePropertyChange(STRING_CHANGED_PROPERTY, oldString, progressString);
+ firePropertyChange("string", oldString, progressString);
}
}
@@ -435,7 +418,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
boolean oldPainted = paintBorder;
paintBorder = painted;
- firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, oldPainted,
+ firePropertyChange("borderPainted", oldPainted,
paintBorder);
}
}
@@ -641,7 +624,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
{
boolean olddeter = indeterminate;
indeterminate = newValue;
- firePropertyChange(INDETERMINATE_CHANGED_PROPERTY, olddeter,
+ firePropertyChange("indeterminate", olddeter,
indeterminate);
}
}
diff --git a/libjava/javax/swing/JRadioButton.java b/libjava/javax/swing/JRadioButton.java
index fc06d15a114..da8c8395a24 100644
--- a/libjava/javax/swing/JRadioButton.java
+++ b/libjava/javax/swing/JRadioButton.java
@@ -1,5 +1,5 @@
/* JRadioButton.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.
@@ -59,9 +59,9 @@ import javax.swing.plaf.ButtonUI;
* within the same panel, possibly with an appropriate border to denote
* the connection between the components.
*
- * @author Michael Koch <konqueror@gmx.de>
- * @author Graydon Hoare <graydon@redhat.com>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Graydon Hoare (graydon@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @see JToggleButton
* @see ButtonGroup
* @since 1.2
diff --git a/libjava/javax/swing/JRootPane.java b/libjava/javax/swing/JRootPane.java
index 4f067c9aab9..145750758a4 100644
--- a/libjava/javax/swing/JRootPane.java
+++ b/libjava/javax/swing/JRootPane.java
@@ -100,7 +100,7 @@ public class JRootPane extends JComponent
protected RootLayout()
{
}
-
+
/**
* DOCUMENT ME!
*
@@ -230,8 +230,8 @@ public class JRootPane extends JComponent
{
glassPane.setBounds(0, 0, containerSize.width,
containerSize.height);
- contentPane.setBounds(0, 0, containerSize.width,
- containerSize.height);
+ contentPane.setBounds(0, 0, containerSize.width,
+ containerSize.height);
}
layeredPane.setSize(containerSize.width, containerSize.height);
@@ -333,6 +333,11 @@ public class JRootPane extends JComponent
protected Container contentPane;
protected JButton defaultButton;
+
+ /**
+ * @since 1.4
+ */
+ private int windowDecorationStyle = NONE;
/**
* DOCUMENT ME!
@@ -341,8 +346,20 @@ public class JRootPane extends JComponent
*/
public void setJMenuBar(JMenuBar m)
{
+ JLayeredPane jlPane = getLayeredPane();
+ if (menuBar != null)
+ jlPane.remove(menuBar);
menuBar = m;
- getLayeredPane().add(menuBar, JLayeredPane.FRAME_CONTENT_LAYER);
+ if (menuBar != null)
+ jlPane.add(menuBar, JLayeredPane.FRAME_CONTENT_LAYER);
+ }
+
+ /**
+ * @deprecated Replaced by <code>setJMenuBar()</code>
+ */
+ public void setMenuBar(JMenuBar m)
+ {
+ setJMenuBar(m);
}
/**
@@ -356,6 +373,14 @@ public class JRootPane extends JComponent
}
/**
+ * @deprecated Replaced by <code>getJMenuBar()</code>
+ */
+ public JMenuBar getMenuBar()
+ {
+ return getJMenuBar();
+ }
+
+ /**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
@@ -569,4 +594,32 @@ public class JRootPane extends JComponent
defaultButton = newButton;
firePropertyChange("defaultButton", oldButton, newButton);
}
+
+ /**
+ * @since 1.4
+ */
+ public int getWindowDecorationStyle()
+ {
+ return windowDecorationStyle;
+ }
+
+ /**
+ * @since 1.4
+ */
+ public void setWindowDecorationStyle(int style)
+ {
+ if (style != NONE
+ && style != FRAME
+ && style != INFORMATION_DIALOG
+ && style != ERROR_DIALOG
+ && style != COLOR_CHOOSER_DIALOG
+ && style != FILE_CHOOSER_DIALOG
+ && style != QUESTION_DIALOG
+ && style != WARNING_DIALOG)
+ throw new IllegalArgumentException("invalid style");
+
+ int oldStyle = windowDecorationStyle;
+ windowDecorationStyle = style;
+ firePropertyChange("windowDecorationStyle", oldStyle, style);
+ }
}
diff --git a/libjava/javax/swing/JScrollBar.java b/libjava/javax/swing/JScrollBar.java
index b755c6f2a99..0ed7679e77f 100644
--- a/libjava/javax/swing/JScrollBar.java
+++ b/libjava/javax/swing/JScrollBar.java
@@ -1,5 +1,5 @@
/* JScrollBar.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;
import java.awt.Adjustable;
@@ -47,11 +48,8 @@ import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleStateSet;
import javax.accessibility.AccessibleValue;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
import javax.swing.plaf.ScrollBarUI;
-
/**
* The JScrollBar. Two buttons control how the values that the
* scroll bar can take. You can also drag the thumb or click the track
@@ -154,18 +152,6 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
private static final long serialVersionUID = -8195169869225066566L;
- /** Fired in a PropertyChangeEvent when the "blockIncrement" changes. */
- public static final String BLOCK_INCREMENT_CHANGED_PROPERTY = "blockIncrement";
-
- /** Fired in a PropertyChangeEvent when the "model" changes. */
- public static final String MODEL_CHANGED_PROPERTY = "model";
-
- /** Fired in a PropertyChangeEvent when the "orientation" changes. */
- public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
-
- /** Fired in a PropertyChangeEvent when the "unitIncrement" changes. */
- public static final String UNIT_INCREMENT_CHANGED_PROPERTY = "unitIncrement";
-
/** How much the thumb moves when moving in a block. */
protected int blockIncrement = 10;
@@ -178,12 +164,6 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
/** How much the thumb moves when moving in a unit. */
protected int unitIncrement = 1;
- /** The ChangeListener that listens to the model. */
- private transient ChangeListener changeListener;
-
- /** The ChangeEvent that's fired. */
- private transient ChangeEvent changeEvent;
-
/**
* Creates a new horizontal JScrollBar object with a minimum
* of 0, a maxmium of 100, a value of 0 and an extent of 10.
@@ -223,8 +203,6 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
throw new IllegalArgumentException(orientation
+ " is not a legal orientation");
this.orientation = orientation;
- changeListener = createChangeListener();
- model.addChangeListener(changeListener);
updateUI();
}
@@ -297,7 +275,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
{
int oldOrientation = this.orientation;
this.orientation = orientation;
- firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
+ firePropertyChange("orientation", oldOrientation,
this.orientation);
}
}
@@ -325,9 +303,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
{
BoundedRangeModel oldModel = model;
model = newModel;
- oldModel.removeChangeListener(changeListener);
- model.addChangeListener(changeListener);
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, model);
+ firePropertyChange("model", oldModel, model);
}
}
@@ -356,7 +332,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
{
int oldInc = this.unitIncrement;
this.unitIncrement = unitIncrement;
- firePropertyChange(UNIT_INCREMENT_CHANGED_PROPERTY, oldInc,
+ firePropertyChange("unitIncrement", oldInc,
this.unitIncrement);
}
}
@@ -386,7 +362,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
{
int oldInc = this.blockIncrement;
this.blockIncrement = blockIncrement;
- firePropertyChange(BLOCK_INCREMENT_CHANGED_PROPERTY, oldInc,
+ firePropertyChange("blockIncrement", oldInc,
this.blockIncrement);
}
}
@@ -558,70 +534,6 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
}
/**
- * This method creates a new ChangeListener.
- *
- * @return A new ChangeListener.
- */
- private ChangeListener createChangeListener()
- {
- return new ChangeListener()
- {
- public void stateChanged(ChangeEvent e)
- {
- fireStateChanged();
- }
- };
- }
-
- /**
- * This method is called whenever the model fires a ChangeEvent. It should
- * propagate the ChangeEvent to its listeners with a new ChangeEvent that
- * identifies the scroll bar as the source.
- */
- private void fireStateChanged()
- {
- Object[] changeListeners = listenerList.getListenerList();
- if (changeEvent == null)
- changeEvent = new ChangeEvent(this);
- for (int i = changeListeners.length - 2; i >= 0; i -= 2)
- {
- if (changeListeners[i] == ChangeListener.class)
- ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent);
- }
- }
-
- /**
- * This method adds a ChangeListener to the scroll bar.
- *
- * @param listener The listener to add.
- */
- public void addChangeListener(ChangeListener listener)
- {
- listenerList.add(ChangeListener.class, listener);
- }
-
- /**
- * This method removes a ChangeListener from the scroll bar.
- *
- * @param listener The listener to remove.
- */
- public void removeChangeListener(ChangeListener listener)
- {
- listenerList.remove(ChangeListener.class, listener);
- }
-
- /**
- * This method returns an array of all ChangeListeners listening to this
- * scroll bar.
- *
- * @return An array of ChangeListeners listening to this scroll bar.
- */
- public ChangeListener[] getChangeListeners()
- {
- return (ChangeListener[]) listenerList.getListeners(ChangeListener.class);
- }
-
- /**
* This method adds an AdjustmentListener to the scroll bar.
*
* @param listener The listener to add.
diff --git a/libjava/javax/swing/JScrollPane.java b/libjava/javax/swing/JScrollPane.java
index 01131b7268e..dfe5a76b196 100644
--- a/libjava/javax/swing/JScrollPane.java
+++ b/libjava/javax/swing/JScrollPane.java
@@ -1,5 +1,5 @@
/* JScrollPane.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.
@@ -99,18 +99,6 @@ public class JScrollPane
boolean wheelScrollingEnabled;
ChangeListener scrollListener;
- public static final String COLUMN_HEADER_CHANGED_PROPERTY = "columnHeader";
- public static final String COMPONENT_ORIENTATION_CHANGED_PROPERTY = "componentOrientation";
- public static final String HORIZONTAL_SCROLLBAR_CHANGED_PROPERTY = "horizontalScrollBar";
- public static final String HORIZONTAL_SCROLLBAR_POLICY_CHANGED_PROPERTY = "horizontalScrollBarPolicy";
- public static final String LAYOUT_CHANGED_PROPERTY = "layout";
- public static final String ROW_HEADER_CHANGED_PROPERTY = "rowHeader";
- public static final String VERTICAL_SCROLLBAR_CHANGED_PROPERTY = "verticalScrollBar";
- public static final String VERTICAL_SCROLLBAR_POLICY_CHANGED_PROPERTY = "verticalScrollBarPolicy";
- public static final String VIEWPORT_CHANGED_PROPERTY = "viewport";
- public static final String VIEWPORT_BORDER_CHANGED_PROPERTY = "viewportBorder";
- public static final String WHEEL_SCROLLING_ENABLED_CHANGED_PROPERTY = "wheelScrollingEnabled";
-
public JViewport getColumnHeader()
{
return columnHeader;
@@ -247,17 +235,20 @@ public class JScrollPane
{
ComponentOrientation old = super.getComponentOrientation();
super.setComponentOrientation(co);
- firePropertyChange(COMPONENT_ORIENTATION_CHANGED_PROPERTY, old, co);
+ firePropertyChange("componentOrientation", old, co);
sync();
}
public void setColumnHeader(JViewport h)
{
+ if (columnHeader == h)
+ return;
+
JViewport old = columnHeader;
removeNonNull(old);
columnHeader = h;
addNonNull(h);
- firePropertyChange(COLUMN_HEADER_CHANGED_PROPERTY, old, h);
+ firePropertyChange("columnHeader", old, h);
sync();
}
@@ -327,11 +318,14 @@ public class JScrollPane
public void setHorizontalScrollBar(JScrollBar h)
{
+ if (horizontalScrollBar == h)
+ return;
+
JScrollBar old = horizontalScrollBar;
removeNonNull(old);
horizontalScrollBar = h;
addNonNull(h);
- firePropertyChange(HORIZONTAL_SCROLLBAR_CHANGED_PROPERTY, old, h);
+ firePropertyChange("horizontalScrollBar", old, h);
sync();
if (old != null)
@@ -349,14 +343,18 @@ public class JScrollPane
}
public void setHorizontalScrollBarPolicy(int h)
- {
+ {
+ if (horizontalScrollBarPolicy == h)
+ return;
+
if (h != HORIZONTAL_SCROLLBAR_AS_NEEDED
&& h != HORIZONTAL_SCROLLBAR_NEVER
&& h != HORIZONTAL_SCROLLBAR_ALWAYS)
throw new IllegalArgumentException("unknown horizontal scrollbar policy");
+
int old = horizontalScrollBarPolicy;
horizontalScrollBarPolicy = h;
- firePropertyChange(HORIZONTAL_SCROLLBAR_POLICY_CHANGED_PROPERTY, old, h);
+ firePropertyChange("horizontalScrollBarPolicy", old, h);
sync();
}
@@ -366,17 +364,20 @@ public class JScrollPane
ScrollPaneLayout tmp = (ScrollPaneLayout) l;
super.setLayout(l);
tmp.syncWithScrollPane(this);
- firePropertyChange(LAYOUT_CHANGED_PROPERTY, old, l);
+ firePropertyChange("layout", old, l);
sync();
}
public void setRowHeader(JViewport v)
{
+ if (rowHeader == v)
+ return;
+
JViewport old = rowHeader;
removeNonNull(old);
rowHeader = v;
addNonNull(v);
- firePropertyChange(ROW_HEADER_CHANGED_PROPERTY, old, v);
+ firePropertyChange("rowHeader", old, v);
sync();
}
@@ -390,11 +391,14 @@ public class JScrollPane
public void setVerticalScrollBar(JScrollBar v)
{
+ if (verticalScrollBar == v)
+ return;
+
JScrollBar old = verticalScrollBar;
removeNonNull(old);
verticalScrollBar = v;
addNonNull(v);
- firePropertyChange(VERTICAL_SCROLLBAR_CHANGED_PROPERTY, old, v);
+ firePropertyChange("verticalScrollBar", old, v);
sync();
if (old != null)
@@ -413,26 +417,36 @@ public class JScrollPane
public void setVerticalScrollBarPolicy(int v)
{
+ if (verticalScrollBarPolicy == v)
+ return;
+
if (v != VERTICAL_SCROLLBAR_AS_NEEDED
&& v != VERTICAL_SCROLLBAR_NEVER
&& v != VERTICAL_SCROLLBAR_ALWAYS)
throw new IllegalArgumentException("unknown vertical scrollbar policy");
+
int old = verticalScrollBarPolicy;
verticalScrollBarPolicy = v;
- firePropertyChange(VERTICAL_SCROLLBAR_POLICY_CHANGED_PROPERTY, old, v);
+ firePropertyChange("verticalScrollBarPolicy", old, v);
sync();
}
public void setWheelScrollingEnabled(boolean b)
{
+ if (wheelScrollingEnabled == b)
+ return;
+
boolean old = wheelScrollingEnabled;
wheelScrollingEnabled = b;
- firePropertyChange(WHEEL_SCROLLING_ENABLED_CHANGED_PROPERTY, old, b);
+ firePropertyChange("wheelScrollingEnabled", old, b);
sync();
}
public void setViewport(JViewport v)
{
+ if (viewport == v)
+ return;
+
JViewport old = viewport;
removeNonNull(old);
if (old != null)
@@ -443,15 +457,18 @@ public class JScrollPane
addNonNull(v);
revalidate();
repaint();
- firePropertyChange(VIEWPORT_CHANGED_PROPERTY, old, v);
+ firePropertyChange("viewport", old, v);
sync();
}
public void setViewportBorder(Border b)
{
+ if (viewportBorder == b)
+ return;
+
Border old = viewportBorder;
viewportBorder = b;
- firePropertyChange(VIEWPORT_BORDER_CHANGED_PROPERTY, old, b);
+ firePropertyChange("viewportBorder", old, b);
sync();
}
@@ -588,7 +605,7 @@ public class JScrollPane
return new ScrollBar(SwingConstants.VERTICAL);
}
- public JViewport createViewport()
+ protected JViewport createViewport()
{
return new JViewport();
}
@@ -624,7 +641,7 @@ public class JScrollPane
super.setUI(ui);
}
- class ScrollBar
+ protected class ScrollBar
extends JScrollBar
implements UIResource
{
@@ -660,8 +677,5 @@ public class JScrollPane
direction);
}
}
-
-
}
-
}
diff --git a/libjava/javax/swing/JSlider.java b/libjava/javax/swing/JSlider.java
index 0bc013cb128..cfe7880df65 100644
--- a/libjava/javax/swing/JSlider.java
+++ b/libjava/javax/swing/JSlider.java
@@ -1,5 +1,5 @@
/* JSlider.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;
import java.awt.Dimension;
@@ -54,14 +55,11 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.SliderUI;
-
/**
- * <p>
* The JSlider is a Swing component that allows selection of a value within a
* range by adjusting a thumb in a track. The values for the minimum,
* maximum, extent and value are stored in a {@link
* DefaultBoundedRangeModel}.
- * </p>
*
* <p>
* JSliders have the following properties:
@@ -114,7 +112,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
MenuContainer, Serializable
{
/** DOCUMENT ME! */
- static final long serialVersionUID = -1441275936141218479L;
+ private static final long serialVersionUID = -1441275936141218479L;
/**
* DOCUMENT ME!
@@ -206,36 +204,6 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
}
}
- /** Fired in a PropertyChangeEvent when the "inverted" property changes. */
- public static final String INVERTED_CHANGED_PROPERTY = "inverted";
-
- /** Fired in a PropertyChangeEvent when the "labelTable" property changes. */
- public static final String LABEL_TABLE_CHANGED_PROPERTY = "labelTable";
-
- /**
- * Fired in a PropertyChangeEvent when the "majorTickSpacing" property
- * changes.
- */
- public static final String MAJOR_TICK_SPACING_CHANGED_PROPERTY = "majorTickSpacing";
-
- /**
- * Fired in a PropertyChangeEvent when the "minorTickSpacing" property
- * changes.
- */
- public static final String MINOR_TICK_SPACING_CHANGED_PROPERTY = "minorTickSpacing";
-
- /** Fired in a PropertyChangeEvent when the "model" property changes. */
- public static final String MODEL_CHANGED_PROPERTY = "model";
-
- /** Fired in a PropertyChangeEvent when the "orientation" property changes. */
- public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
-
- /** Fired in a PropertyChangeEvent when the "paintLabels" property changes. */
- public static final String PAINT_LABELS_CHANGED_PROPERTY = "paintLabels";
-
- /** Fired in a PropertyChangeEvent when the "paintTicks" property changes. */
- public static final String PAINT_TICKS_CHANGED_PROPERTY = "paintTicks";
-
/** Whether or not this slider paints its ticks. */
private transient boolean paintTicks = false;
@@ -515,7 +483,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
sliderModel = model;
oldModel.removeChangeListener(changeListener);
sliderModel.addChangeListener(changeListener);
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, sliderModel);
+ firePropertyChange("model", oldModel, sliderModel);
}
}
@@ -624,7 +592,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
int oldOrientation = this.orientation;
this.orientation = orientation;
- firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
+ firePropertyChange("orientation", oldOrientation,
this.orientation);
}
}
@@ -650,7 +618,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
Dictionary oldTable = labelTable;
labelTable = table;
- firePropertyChange(LABEL_TABLE_CHANGED_PROPERTY, oldTable, labelTable);
+ firePropertyChange("labelTable", oldTable, labelTable);
}
}
@@ -751,7 +719,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
boolean oldInverted = isInverted;
isInverted = inverted;
- firePropertyChange(INVERTED_CHANGED_PROPERTY, oldInverted, isInverted);
+ firePropertyChange("inverted", oldInverted, isInverted);
}
}
@@ -777,7 +745,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
int oldSpacing = majorTickSpacing;
majorTickSpacing = spacing;
- firePropertyChange(MAJOR_TICK_SPACING_CHANGED_PROPERTY, oldSpacing,
+ firePropertyChange("majorTickSpacing", oldSpacing,
majorTickSpacing);
}
}
@@ -804,7 +772,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
int oldSpacing = minorTickSpacing;
minorTickSpacing = spacing;
- firePropertyChange(MINOR_TICK_SPACING_CHANGED_PROPERTY, oldSpacing,
+ firePropertyChange("minorTickSpacing", oldSpacing,
minorTickSpacing);
}
}
@@ -864,8 +832,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
boolean oldPaintTicks = paintTicks;
paintTicks = paint;
- firePropertyChange(PAINT_TICKS_CHANGED_PROPERTY, oldPaintTicks,
- paintTicks);
+ firePropertyChange("paintTicks", oldPaintTicks, paintTicks);
}
}
@@ -910,8 +877,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
{
boolean oldPaintLabels = paintLabels;
paintLabels = paint;
- firePropertyChange(PAINT_LABELS_CHANGED_PROPERTY, oldPaintLabels,
- paintLabels);
+ firePropertyChange("paintLabels", oldPaintLabels, paintLabels);
}
}
diff --git a/libjava/javax/swing/JSpinner.java b/libjava/javax/swing/JSpinner.java
index 271c5119f22..fbf2bbf5fcc 100644
--- a/libjava/javax/swing/JSpinner.java
+++ b/libjava/javax/swing/JSpinner.java
@@ -1,5 +1,5 @@
/* JSpinner.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,6 @@ import java.text.ParseException;
import javax.swing.border.EtchedBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
-import javax.swing.event.EventListenerList;
import javax.swing.plaf.SpinnerUI;
@@ -59,7 +58,8 @@ import javax.swing.plaf.SpinnerUI;
* way to manipulate the value.
*
* @author Ka-Hing Cheung
- * @version 1.0
+ *
+ * @since 1.4
*/
public class JSpinner extends JComponent
{
@@ -286,9 +286,6 @@ public class JSpinner extends JComponent
private JComponent editor;
/** DOCUMENT ME! */
- private EventListenerList listenerList = new EventListenerList();
-
- /** DOCUMENT ME! */
private ChangeListener listener = new ChangeListener()
{
public void stateChanged(ChangeEvent evt)
diff --git a/libjava/javax/swing/JTabbedPane.java b/libjava/javax/swing/JTabbedPane.java
index 25733df4a79..748ee214050 100644
--- a/libjava/javax/swing/JTabbedPane.java
+++ b/libjava/javax/swing/JTabbedPane.java
@@ -1,5 +1,5 @@
/* JTabbedPane.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.
@@ -56,10 +56,8 @@ import javax.swing.plaf.TabbedPaneUI;
import javax.swing.plaf.UIResource;
/**
- * <p>
* This is a container for components. One component is displayed at a time.
* Users can switch between components by clicking on tabs.
- * </p>
*
* <p>
* Tabs can be oriented in several ways. They can be above, below, left and
@@ -520,32 +518,18 @@ public class JTabbedPane extends JComponent implements Serializable,
* or equal to title.length.
*/
public void setDisplayedMnemonicIndex(int index)
- throws IllegalArgumentException
+ throws IllegalArgumentException
{
if (index < -1 || title != null && index >= title.length())
throw new IllegalArgumentException();
- if (title == null || title.charAt(index) != mnemonicKey)
+ if (title == null || mnemonicKey == 0 || title.charAt(index) != mnemonicKey)
index = -1;
underlinedChar = index;
}
}
- /** Fired in a PropertyChangeEvent when the "model" property changes. */
- public static final String MODEL_CHANGED_PROPERTY = "model";
-
- /**
- * Fired in a PropertyChangeEvent when the "tabPlacement" property changes.
- */
- public static final String TAB_PLACEMENT_CHANGED_PROPERTY = "tabPlacement";
-
- /**
- * Fired in a PropertyChangeEvent when the "tabLayoutPolicy" property
- * changes.
- */
- public static final String TAB_LAYOUT_POLICY_CHANGED_PROPERTY = "tabLayoutPolicy";
-
/** The changeEvent used to fire changes to listeners. */
protected ChangeEvent changeEvent;
@@ -739,7 +723,7 @@ public class JTabbedPane extends JComponent implements Serializable,
this.model.removeChangeListener(changeListener);
this.model = model;
this.model.addChangeListener(changeListener);
- firePropertyChange(MODEL_CHANGED_PROPERTY, oldModel, this.model);
+ firePropertyChange("model", oldModel, this.model);
}
}
@@ -770,8 +754,7 @@ public class JTabbedPane extends JComponent implements Serializable,
{
int oldPlacement = this.tabPlacement;
this.tabPlacement = tabPlacement;
- firePropertyChange(TAB_PLACEMENT_CHANGED_PROPERTY, oldPlacement,
- this.tabPlacement);
+ firePropertyChange("tabPlacement", oldPlacement, this.tabPlacement);
}
}
@@ -802,8 +785,7 @@ public class JTabbedPane extends JComponent implements Serializable,
{
int oldPolicy = layoutPolicy;
layoutPolicy = tabLayoutPolicy;
- firePropertyChange(TAB_LAYOUT_POLICY_CHANGED_PROPERTY, oldPolicy,
- layoutPolicy);
+ firePropertyChange("tabLayoutPolicy", oldPolicy, layoutPolicy);
}
}
diff --git a/libjava/javax/swing/JTable.java b/libjava/javax/swing/JTable.java
index ae2c4af5fb5..ca38aa0ba09 100644
--- a/libjava/javax/swing/JTable.java
+++ b/libjava/javax/swing/JTable.java
@@ -1,5 +1,5 @@
/* JTable.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.
@@ -41,9 +41,10 @@ package javax.swing;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
+import java.awt.Point;
import java.awt.Rectangle;
-import java.util.Vector;
import java.util.Hashtable;
+import java.util.Vector;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
@@ -113,14 +114,35 @@ public class JTable extends JComponent
/**
* A table mapping {@link java.lang.Class} objects to
* {@link TableCellEditor} objects. This table is consulted by the
- *
+ * FIXME
*/
protected Hashtable defaultEditorsByColumnClass;
+
+ /**
+ * A table mapping {@link java.lang.Class} objects to
+ * {@link TableCellEditor} objects. This table is consulted by the
+ * FIXME
+ */
protected Hashtable defaultRenderersByColumnClass;
+
+ /**
+ * The column that is edited, -1 if the table is not edited currently.
+ */
protected int editingColumn;
+
+ /**
+ * The row that is edited, -1 if the table is not edited currently.
+ */
protected int editingRow;
/**
+ * The component that is used for editing.
+ * <code>null</code> if the table is not editing currently.
+ *
+ */
+ protected transient Component editorComp;
+
+ /**
* Whether or not the table should automatically compute a matching
* {@link TableColumnModel} and assign it to the {@link #columnModel}
* property when the {@link #dataModel} property is changed.
@@ -163,8 +185,8 @@ public class JTable extends JComponent
*
* @see #setRowMargin()
* @see #getRowHeight()
- * @see #getInterCellSpacing()
- * @see #setInterCellSpacing()
+ * @see #getIntercellSpacing()
+ * @see #setIntercellSpacing()
* @see TableColumnModel#getColumnMargin()
* @see TableColumnModel#setColumnMargin()
*/
@@ -257,7 +279,7 @@ public class JTable extends JComponent
* @see #setDragEnabled()
* @see #getDragEnabled()
*/
- protected boolean dragEnabled;
+ private boolean dragEnabled;
/**
* The color to paint the grid lines of the table, when either {@link
@@ -275,7 +297,7 @@ public class JTable extends JComponent
* @see #setPreferredScrollableViewportSize()
* @see #getPreferredScrollableViewportSize()
*/
- protected Dimension preferredScrollableViewportSize;
+ protected Dimension preferredViewportSize;
/**
* The color to paint the background of selected cells. Fires a property
@@ -285,7 +307,7 @@ public class JTable extends JComponent
* @see #setSelectionBackground()
* @see #getSelectionBackground()
*/
- Color selectionBackground;
+ protected Color selectionBackground;
/**
* The name carried in property change events when the {@link
@@ -301,7 +323,7 @@ public class JTable extends JComponent
* @see #setSelectionForeground()
* @see #getSelectionForeground()
*/
- Color selectionForeground;
+ protected Color selectionForeground;
/**
* The name carried in property change events when the
@@ -386,11 +408,17 @@ public class JTable extends JComponent
public JTable (TableModel dm, TableColumnModel cm, ListSelectionModel sm)
{
this.dataModel = dm == null ? createDefaultDataModel() : dm;
- setSelectionModel(sm == null ? createDefaultListSelectionModel() : sm);
+ setSelectionModel(sm == null ? createDefaultSelectionModel() : sm);
this.columnModel = cm;
+ initializeLocalVars();
+ updateUI();
+ }
+
+ protected void initializeLocalVars()
+ {
this.autoCreateColumnsFromModel = false;
- if (cm == null)
+ if (columnModel == null)
{
this.autoCreateColumnsFromModel = true;
createColumnsFromModel();
@@ -398,7 +426,10 @@ public class JTable extends JComponent
this.columnModel.addColumnModelListener(this);
this.defaultRenderersByColumnClass = new Hashtable();
+ createDefaultRenderers();
+
this.defaultEditorsByColumnClass = new Hashtable();
+ createDefaultEditors();
this.autoResizeMode = AUTO_RESIZE_ALL_COLUMNS;
this.rowHeight = 16;
@@ -407,12 +438,13 @@ public class JTable extends JComponent
// this.accessibleContext = new AccessibleJTable();
this.cellEditor = null;
this.dragEnabled = false;
- this.preferredScrollableViewportSize = new Dimension(450,400);
+ this.preferredViewportSize = new Dimension(450,400);
this.showHorizontalLines = true;
this.showVerticalLines = true;
- setInterCellSpacing(new Dimension(1,1));
- setTableHeader(new JTableHeader(columnModel));
- updateUI();
+ this.editingColumn = -1;
+ this.editingRow = -1;
+ setIntercellSpacing(new Dimension(1,1));
+ setTableHeader(createDefaultTableHeader());
}
/**
@@ -426,6 +458,27 @@ public class JTable extends JComponent
this(new DefaultTableModel(data, columnNames));
}
+ public void addColumn(TableColumn column)
+ {
+ if (column.getHeaderValue() == null)
+ {
+ String name = getColumnName(column.getModelIndex());
+ column.setHeaderValue(name);
+ }
+
+ columnModel.addColumn(column);
+ }
+
+ protected void createDefaultEditors()
+ {
+ //FIXME: Create the editor object.
+ }
+
+ protected void createDefaultRenderers()
+ {
+ //FIXME: Create the renderer object.
+ }
+
/**
* @deprecated 1.0.2, replaced by <code>new JScrollPane(JTable)</code>
*/
@@ -433,7 +486,7 @@ public class JTable extends JComponent
{
return new JScrollPane(table);
}
-
+
protected TableColumnModel createDefaultColumnModel()
{
return new DefaultTableColumnModel();
@@ -444,11 +497,16 @@ public class JTable extends JComponent
return new DefaultTableModel();
}
- protected ListSelectionModel createDefaultListSelectionModel()
+ protected ListSelectionModel createDefaultSelectionModel()
{
return new DefaultListSelectionModel();
}
+ protected JTableHeader createDefaultTableHeader()
+ {
+ return new JTableHeader(columnModel);
+ }
+
private void createColumnsFromModel()
{
if (dataModel == null)
@@ -514,6 +572,58 @@ public class JTable extends JComponent
repaint();
}
+ /**
+ * Returns index of the column that contains specified point
+ * or -1 if this table doesn't contain this point.
+ *
+ * @param point point to identify the column
+ * @return index of the column that contains specified point or
+ * -1 if this table doesn't contain this point.
+ */
+ public int columnAtPoint(Point point)
+ {
+ int x0 = getLocation().x;
+ int ncols = getColumnCount();
+ Dimension gap = getIntercellSpacing();
+ TableColumnModel cols = getColumnModel();
+ int x = point.x;
+
+ for (int i = 0; i < ncols; ++i)
+ {
+ int width = cols.getColumn(i).getWidth() + (gap == null ? 0 : gap.width);
+ if (0 <= x && x < width)
+ return i;
+ x -= width;
+ }
+
+ return -1;
+ }
+
+ /**
+ * Returns index of the row that contains specified point or
+ * -1 if this table doesn't contain this point.
+ *
+ * @param point point to identify the row
+ * @return index of the row that contains specified point or
+ * -1 if this table doesn't contain this point.
+ */
+ public int rowAtPoint(Point point)
+ {
+ int y0 = getLocation().y;
+ int nrows = getRowCount();
+ Dimension gap = getIntercellSpacing();
+ int height = getRowHeight() + (gap == null ? 0 : gap.height);
+ int y = point.y;
+
+ for (int i = 0; i < nrows; ++i)
+ {
+ if (0 <= y && y < height)
+ return i;
+ y -= height;
+ }
+
+ return -1;
+ }
/**
* Calculate the visible rectangle for a particular row and column. The
@@ -656,6 +766,7 @@ public class JTable extends JComponent
return (TableCellEditor) defaultEditorsByColumnClass.get(columnClass);
else
{
+ // FIXME: We have at least an editor for Object.class in our defaults.
TableCellEditor r = new DefaultCellEditor(new JTextField());
defaultEditorsByColumnClass.put(columnClass, r);
return r;
@@ -729,7 +840,7 @@ public class JTable extends JComponent
return renderer.getTableCellRendererComponent(this,
dataModel.getValueAt(row,
- convertColumnIndexToView(column)),
+ convertColumnIndexToModel(column)),
isSelected,
false, // hasFocus
row, column);
@@ -808,13 +919,13 @@ public class JTable extends JComponent
/**
* Get the value of the {@link #columnCount} property by
- * delegation to the @{link #dataModel} field.
+ * delegation to the @{link #columnModel} field.
*
* @return The current value of the columnCount property
*/
public int getColumnCount()
{
- return dataModel.getColumnCount();
+ return columnModel.getColumnCount();
}
/**
@@ -863,11 +974,11 @@ public class JTable extends JComponent
break;
case ListSelectionModel.SINGLE_INTERVAL_SELECTION:
- sum = hi - lo;
+ sum = hi - lo + 1;
break;
case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:
- for (int i = lo; i < hi; ++i)
+ for (int i = lo; i <= hi; ++i)
if (lsm.isSelectedIndex(i))
++sum;
break;
@@ -894,12 +1005,12 @@ public class JTable extends JComponent
break;
case ListSelectionModel.SINGLE_INTERVAL_SELECTION:
- for (int i = lo; i < hi; ++i)
+ for (int i = lo; i <= hi; ++i)
ret[j++] = i;
break;
case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:
- for (int i = lo; i < hi; ++i)
+ for (int i = lo; i <= hi; ++i)
if (lsm.isSelectedIndex(i))
ret[j++] = i;
break;
@@ -1003,23 +1114,23 @@ public class JTable extends JComponent
}
/**
- * Get the value of the {@link #interCellSpacing} property.
+ * Get the value of the {@link #intercellSpacing} property.
*
* @return The current value of the property
*/
- public Dimension getInterCellSpacing()
+ public Dimension getIntercellSpacing()
{
return new Dimension(columnModel.getColumnMargin(), rowMargin);
}
/**
- * Get the value of the {@link #preferredScrollableViewportSize} property.
+ * Get the value of the {@link #preferredViewportSize} property.
*
* @return The current value of the property
*/
public Dimension getPreferredScrollableViewportSize()
{
- return preferredScrollableViewportSize;
+ return preferredViewportSize;
}
/**
@@ -1073,6 +1184,27 @@ public class JTable extends JComponent
}
/**
+ * Removes specified column from displayable columns of this table.
+ *
+ * @param column column to removed
+ */
+ public void removeColumn(TableColumn column)
+ {
+ columnModel.removeColumn(column);
+ }
+
+ /**
+ * Moves column at the specified index to new given location.
+ *
+ * @param column index of the column to move
+ * @param targetColumn index specifying new location of the column
+ */
+ public void moveColumn(int column,int targetColumn)
+ {
+ columnModel.moveColumn(column, targetColumn);
+ }
+
+ /**
* Set the value of the {@link #autoCreateColumnsFromModel} property.
*
* @param a The new value of the autoCreateColumnsFromModel property
@@ -1101,6 +1233,9 @@ public class JTable extends JComponent
*/
public void setRowHeight(int r)
{
+ if (rowHeight < 1)
+ throw new IllegalArgumentException();
+
rowHeight = r;
revalidate();
repaint();
@@ -1246,13 +1381,16 @@ public class JTable extends JComponent
/**
* Set the value of the {@link #selectionMode} property by
- * delegation to the {@link #selectionModel} field.
+ * delegation to the {@link #selectionModel} field. The same selection
+ * mode is set for row and column selection models.
*
* @param s The new value of the property
*/
public void setSelectionMode(int s)
- {
- selectionModel.setSelectionMode(s);
+ {
+ selectionModel.setSelectionMode(s);
+ columnModel.getSelectionModel().setSelectionMode(s);
+
repaint();
}
@@ -1297,11 +1435,11 @@ public class JTable extends JComponent
}
/**
- * Set the value of the {@link #interCellSpacing} property.
+ * Set the value of the {@link #intercellSpacing} property.
*
- * @param i The new value of the interCellSpacing property
+ * @param i The new value of the intercellSpacing property
*/
- public void setInterCellSpacing(Dimension i)
+ public void setIntercellSpacing(Dimension i)
{
rowMargin = i.height;
columnModel.setColumnMargin(i.width);
@@ -1309,13 +1447,13 @@ public class JTable extends JComponent
}
/**
- * Set the value of the {@link #preferredScrollableViewportSize} property.
+ * Set the value of the {@link #preferredViewportSize} property.
*
- * @param p The new value of the preferredScrollableViewportSize property
+ * @param p The new value of the preferredViewportSize property
*/
public void setPreferredScrollableViewportSize(Dimension p)
{
- preferredScrollableViewportSize = p;
+ preferredViewportSize = p;
revalidate();
repaint();
}
@@ -1551,11 +1689,17 @@ public class JTable extends JComponent
}
}
+ /**
+ * @deprecated Replaced by <code>doLayout()</code>
+ */
public void sizeColumnsToFit(boolean lastColumnOnly)
{
doLayout();
}
+ /**
+ * Obsolete since JDK 1.4. Please use <code>doLayout()</code>.
+ */
public void sizeColumnsToFit(int resizingColumn)
{
doLayout();
@@ -1593,4 +1737,141 @@ public class JTable extends JComponent
repaint();
}
+ public Class getColumnClass(int column)
+ {
+ return dataModel.getColumnClass(column);
+ }
+
+ public String getColumnName(int column)
+ {
+ return dataModel.getColumnName(column);
+ }
+
+ public int getEditingColumn()
+ {
+ return editingColumn;
+ }
+
+ public void setEditingColumn(int column)
+ {
+ editingColumn = column;
+ }
+
+ public int getEditingRow()
+ {
+ return editingRow;
+ }
+
+ public void setEditingRow(int column)
+ {
+ editingRow = column;
+ }
+
+ public Component getEditorComponent()
+ {
+ return editorComp;
+ }
+
+ public boolean isEditing()
+ {
+ return editorComp != null;
+ }
+
+ public void setDefaultEditor(Class columnClass, TableCellEditor editor)
+ {
+ if (editor != null)
+ defaultEditorsByColumnClass.put(columnClass, editor);
+ else
+ defaultEditorsByColumnClass.remove(columnClass);
+ }
+
+ public void addColumnSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getColumnCount()-1)
+ || index1 < 0 || index1 > (getColumnCount()-1)))
+ throw new IllegalArgumentException("Column index out of range.");
+
+ getColumnModel().getSelectionModel().addSelectionInterval(index0, index1);
+ }
+
+ public void addRowSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getRowCount()-1)
+ || index1 < 0 || index1 > (getRowCount()-1)))
+ throw new IllegalArgumentException("Row index out of range.");
+
+ getSelectionModel().addSelectionInterval(index0, index1);
+ }
+
+ public void setColumnSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getColumnCount()-1)
+ || index1 < 0 || index1 > (getColumnCount()-1)))
+ throw new IllegalArgumentException("Column index out of range.");
+
+ getColumnModel().getSelectionModel().setSelectionInterval(index0, index1);
+ }
+
+ public void setRowSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getRowCount()-1)
+ || index1 < 0 || index1 > (getRowCount()-1)))
+ throw new IllegalArgumentException("Row index out of range.");
+
+ getSelectionModel().setSelectionInterval(index0, index1);
+ }
+
+ public void removeColumnSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getColumnCount()-1)
+ || index1 < 0 || index1 > (getColumnCount()-1)))
+ throw new IllegalArgumentException("Column index out of range.");
+
+ getColumnModel().getSelectionModel().removeSelectionInterval(index0, index1);
+ }
+
+ public void removeRowSelectionInterval(int index0, int index1)
+ {
+ if ((index0 < 0 || index0 > (getRowCount()-1)
+ || index1 < 0 || index1 > (getRowCount()-1)))
+ throw new IllegalArgumentException("Row index out of range.");
+
+ getSelectionModel().removeSelectionInterval(index0, index1);
+ }
+
+ public boolean isColumnSelected(int column)
+ {
+ return getColumnModel().getSelectionModel().isSelectedIndex(column);
+ }
+
+ public boolean isRowSelected(int row)
+ {
+ return getSelectionModel().isSelectedIndex(row);
+ }
+
+ public boolean isCellSelected(int row, int column)
+ {
+ return isRowSelected(row) && isColumnSelected(column);
+ }
+
+ public void selectAll()
+ {
+ setColumnSelectionInterval(0, getColumnCount() - 1);
+ setRowSelectionInterval(0, getRowCount() - 1);
+ }
+
+ public Object getValueAt(int row, int column)
+ {
+ return dataModel.getValueAt(row, convertColumnIndexToModel(column));
+ }
+
+ public void setValueAt(Object value, int row, int column)
+ {
+ dataModel.setValueAt(value, row, convertColumnIndexToModel(column));
+ }
+
+ public TableColumn getColumn(Object identifier)
+ {
+ return columnModel.getColumn(columnModel.getColumnIndex(identifier));
+ }
}
diff --git a/libjava/javax/swing/JTextArea.java b/libjava/javax/swing/JTextArea.java
index 2561775286b..3510e6dead6 100644
--- a/libjava/javax/swing/JTextArea.java
+++ b/libjava/javax/swing/JTextArea.java
@@ -1,5 +1,5 @@
/* JTextArea.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -74,8 +74,8 @@ import javax.swing.text.PlainDocument;
* are used in calculating the preferred size of the scroll pane's
* view port.
*
- * @author Michael Koch <konqueror@gmx.de>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @see java.awt.TextArea
* @see javax.swing.JTextComponent
* @see javax.swing.JTextField
diff --git a/libjava/javax/swing/JTextField.java b/libjava/javax/swing/JTextField.java
index 5fe104b5093..409e2a5970f 100644
--- a/libjava/javax/swing/JTextField.java
+++ b/libjava/javax/swing/JTextField.java
@@ -1,5 +1,5 @@
/* JTextField.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;
import java.awt.Dimension;
@@ -49,7 +50,7 @@ import javax.accessibility.AccessibleStateSet;
import javax.swing.text.Document;
import javax.swing.text.JTextComponent;
import javax.swing.text.PlainDocument;
-
+import javax.swing.text.TextAction;
public class JTextField extends JTextComponent
implements SwingConstants
@@ -80,12 +81,29 @@ public class JTextField extends JTextComponent
private static final long serialVersionUID = 353853209832607592L;
+ private static final Action[] actions;
+
+ /**
+ * Name of the action that gets sent when the content of the text field
+ * gets accepted.
+ */
public static final String notifyAction = "notify-field-accept";
+ static
+ {
+ actions = new Action[1];
+ actions[0] = new TextAction(notifyAction)
+ {
+ public void actionPerformed(ActionEvent event)
+ {
+ JTextField textField = (JTextField) event.getSource();
+ textField.fireActionPerformed();
+ }
+ };
+ }
+
private int columns;
-
private int align;
-
private int scrollOffset;
/** @since 1.3 */
@@ -272,19 +290,10 @@ public class JTextField extends JTextComponent
public Dimension getPreferredSize()
{
- Dimension size;
- FontMetrics fm = getFontMetrics(getFont());
- int fontHeight = fm.getMaxAscent() + fm.getMaxDescent();
- int columnWidth = fm.charWidth('m');
-
+ Dimension size = super.getPreferredSize();
+
if (columns != 0)
- {
- size = new Dimension(columns * columnWidth + 4, fontHeight + 4);
- }
- else
- {
- size = new Dimension(10, 10);
- }
+ size.width = columns * getColumnWidth();
return size;
}
@@ -309,9 +318,15 @@ public class JTextField extends JTextComponent
scrollOffset = offset;
}
+ public Action[] getActions()
+ {
+ return TextAction.augmentList(super.getActions(), actions);
+ }
+
public void postActionEvent()
{
- ActionEvent event = new ActionEvent(this, 0, actionCommand);
+ String command = actionCommand != null ? actionCommand : getText();
+ ActionEvent event = new ActionEvent(this, 0, command);
ActionListener[] listeners = getActionListeners();
for (int index = 0; index < listeners.length; ++index)
@@ -358,17 +373,9 @@ public class JTextField extends JTextComponent
/**
* @since 1.3
*/
- public String getActionCommand()
- {
- return actionCommand;
- }
-
- /**
- * @since 1.3
- */
public void setActionCommand(String command)
{
- this.actionCommand = command;
+ actionCommand = command;
}
/**
diff --git a/libjava/javax/swing/JToggleButton.java b/libjava/javax/swing/JToggleButton.java
index 8a38d48d3aa..41eab07b53c 100644
--- a/libjava/javax/swing/JToggleButton.java
+++ b/libjava/javax/swing/JToggleButton.java
@@ -1,5 +1,5 @@
/* JToggleButton.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.
@@ -53,16 +53,15 @@ import javax.swing.plaf.ButtonUI;
* for the implementations of radio buttons (<code>JRadioButton</code>)
* and check boxes (<code>JCheckBox</code>).
*
- * @author Michael Koch <konqueror@gmx.de>
- * @author Graydon Hoare <graydon@redhat.com>
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Michael Koch (konqueror@gmx.de)
+ * @author Graydon Hoare (graydon@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @see JRadioButton
* @see JCheckBox
* @since 1.2
*/
public class JToggleButton extends AbstractButton implements Accessible
{
-
/**
* This class provides accessibility support for the toggle button.
*/
diff --git a/libjava/javax/swing/JToolBar.java b/libjava/javax/swing/JToolBar.java
index db8bb569e9f..55f4c155f80 100644
--- a/libjava/javax/swing/JToolBar.java
+++ b/libjava/javax/swing/JToolBar.java
@@ -1,5 +1,5 @@
/* JToolBar.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.
@@ -100,7 +100,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
}
}
- /**
+ /**
* This is the private JToolBar layout manager.
*/
private class DefaultToolBarLayout implements LayoutManager
@@ -110,7 +110,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
*
* @param name The name of the component added.
* @param comp The component that was added.
- */
+ */
public void addLayoutComponent(String name, Component comp)
{
// Do nothing.
@@ -142,7 +142,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
Dimension tdims = c.getSize();
int start = 0;
Dimension pref;
-
+
if (getOrientation() == SwingUtilities.HORIZONTAL)
{
start += insets.left;
@@ -194,14 +194,14 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
return preferredLayoutSize(parent);
}
- /**
+ /**
* This method returns the preferred size of the given container given the
* child components.
*
* @param parent The container to measure.
*
* @return The preferred size of the given container.
- */
+ */
public Dimension preferredLayoutSize(Container parent)
{
int orientation = getOrientation();
@@ -259,23 +259,23 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
return new Dimension(w, h);
}
- /**
+ /**
* This method is called when the given component is removed from the
* container.
*
* @param comp The component removed.
- */
+ */
public void removeLayoutComponent(Component comp)
{
// Do nothing.
}
}
- /**
+ /**
* This is an extension of JSeparator used in toolbars. Unlike JSeparator,
* nothing is painted for this Separator, it is only blank space that
* separates components.
- */
+ */
public static class Separator extends JSeparator
{
/** DOCUMENT ME! */
@@ -299,70 +299,70 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
setPreferredSize(size);
} // Separator()
- /**
+ /**
* This method returns the String ID of the UI class of Separator.
*
* @return The UI class' String ID.
- */
+ */
public String getUIClassID()
{
return "ToolBarSeparatorUI";
- } // getUIClassID()
+ } // getUIClassID()
- /**
+ /**
* This method returns the preferred size of the Separator.
*
* @return The preferred size of the Separator.
- */
+ */
public Dimension getPreferredSize()
{
return super.getPreferredSize();
- } // getPreferredSize()
+ } // getPreferredSize()
- /**
+ /**
* This method returns the maximum size of the Separator.
*
* @return The maximum size of the Separator.
- */
+ */
public Dimension getMaximumSize()
{
return super.getPreferredSize();
- } // getMaximumSize()
+ } // getMaximumSize()
- /**
+ /**
* This method returns the minimum size of the Separator.
*
* @return The minimum size of the Separator.
- */
+ */
public Dimension getMinimumSize()
{
return super.getPreferredSize();
- } // getMinimumSize()
+ } // getMinimumSize()
- /**
+ /**
* This method returns the size of the Separator.
*
* @return The size of the Separator.
- */
+ */
public Dimension getSeparatorSize()
{
return super.getPreferredSize();
- } // getSeparatorSize()
+ } // getSeparatorSize()
- /**
+ /**
* This method sets the size of the Separator.
*
* @param size The new size of the Separator.
- */
+ */
public void setSeparatorSize(Dimension size)
{
setPreferredSize(size);
- } // setSeparatorSize()
- } // Separator
+ } // setSeparatorSize()
+ } // Separator
/** DOCUMENT ME! */
- private static final long serialVersionUID = -1269915519555129643L;
-
+ private static final long serialVersionUID = -1269915519555129643L;
+
/** Whether the JToolBar paints its border. */
private transient boolean paintBorder = true;
@@ -376,150 +376,135 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
private transient boolean rollover;
/** The orientation of the JToolBar. */
- private int orientation = HORIZONTAL;
+ private int orientation = HORIZONTAL;
- /** Fired in a PropertyChangeEvent when the orientation property changes. */
- public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
-
- /** Fired in a PropertyChangeEvent when the floatable property changes. */
- public static final String FLOATABLE_CHANGED_PROPERTY = "floatable";
-
- /** Fired in a PropertyChangeEvent when the borderPainted property changes. */
- public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted";
-
- /** Fired in a PropertyChangeEvent when the margin property changes. */
- public static final String MARGIN_CHANGED_PROPERTY = "margin";
-
- /** Fired in a PropertyChangeEvent when the rollover property changes. */
- public static final String ROLLOVER_CHANGED_PROPERTY = "rollover";
-
- /**
+ /**
* This method creates a new JToolBar object with horizontal orientation
* and no name.
- */
+ */
public JToolBar()
{
this(null, HORIZONTAL);
- } // JToolBar()
+ } // JToolBar()
- /**
+ /**
* This method creates a new JToolBar with the given orientation and no
* name.
*
- * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
- */
+ * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
+ */
public JToolBar(int orientation)
{
- this(null, orientation);
- } // JToolBar()
+ this(null, orientation);
+ } // JToolBar()
- /**
+ /**
* This method creates a new JToolBar object with the given name and
* horizontal orientation.
*
- * @param name Name assigned to undocked tool bar.
- */
+ * @param name Name assigned to undocked tool bar.
+ */
public JToolBar(String name)
{
- this(name, HORIZONTAL);
- } // JToolBar()
+ this(name, HORIZONTAL);
+ } // JToolBar()
- /**
+ /**
* This method creates a new JToolBar object with the given name and
* orientation.
*
- * @param name Name assigned to undocked tool bar.
- * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
- */
+ * @param name Name assigned to undocked tool bar.
+ * @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
+ */
public JToolBar(String name, int orientation)
{
- setName(name);
+ setName(name);
setOrientation(orientation);
setLayout(new DefaultToolBarLayout());
revalidate();
- updateUI();
- } // JToolBar()
+ updateUI();
+ } // JToolBar()
- /**
+ /**
* This method adds a new JButton that performs the given Action to the
* JToolBar.
*
* @param action The Action to add to the JToolBar.
*
* @return The JButton that wraps the Action.
- */
+ */
public JButton add(Action action)
{
JButton b = createActionComponent(action);
add(b);
return b;
- } // add()
+ } // add()
- /**
+ /**
* This method paints the border if the borderPainted property is true.
*
* @param graphics The graphics object to paint with.
- */
+ */
protected void paintBorder(Graphics graphics)
{
if (paintBorder && isFloatable())
super.paintBorder(graphics);
- } // paintBorder()
+ } // paintBorder()
- /**
+ /**
* This method returns the UI class used to paint this JToolBar.
*
* @return The UI class for this JToolBar.
- */
+ */
public ToolBarUI getUI()
{
- return (ToolBarUI) ui;
- } // getUI()
+ return (ToolBarUI) ui;
+ } // getUI()
- /**
+ /**
* This method sets the UI used with the JToolBar.
*
* @param ui The UI used with the JToolBar.
- */
+ */
public void setUI(ToolBarUI ui)
{
- super.setUI(ui);
- } // setUI()
+ super.setUI(ui);
+ } // setUI()
- /**
+ /**
* This method resets the UI used to the Look and Feel defaults.
- */
+ */
public void updateUI()
{
- setUI((ToolBarUI)UIManager.getUI(this));
+ setUI((ToolBarUI) UIManager.getUI(this));
revalidate();
repaint();
- } // updateUI()
+ } // updateUI()
- /**
+ /**
* This method returns the String identifier for the UI class to the used
* with the JToolBar.
*
* @return The String identifier for the UI class.
- */
+ */
public String getUIClassID()
{
return "ToolBarUI";
- } // getUIClassID()
+ } // getUIClassID()
- /**
+ /**
* This method sets the rollover property for the JToolBar. In rollover
* mode, JButtons inside the JToolBar will only display their borders when
* the mouse is moving over them.
*
* @param b The new rollover property.
- */
+ */
public void setRollover(boolean b)
{
if (b != rollover)
{
rollover = b;
- firePropertyChange(ROLLOVER_CHANGED_PROPERTY, ! rollover, rollover);
+ firePropertyChange("rollover", ! rollover, rollover);
revalidate();
repaint();
}
@@ -553,37 +538,37 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
return i;
return -1;
- } // getComponentIndex()
+ } // getComponentIndex()
- /**
+ /**
* This method returns the component at the given index.
*
* @param index The index of the component.
*
* @return The component at the given index.
- */
+ */
public Component getComponentAtIndex(int index)
{
return getComponent(index);
- } // getComponentAtIndex()
+ } // getComponentAtIndex()
- /**
+ /**
* This method returns the margin property.
*
* @return The margin property.
- */
+ */
public Insets getMargin()
{
return margin;
- } // getMargin()
+ } // getMargin()
- /**
+ /**
* This method sets the margin property. The margin property determines the
* extra space between the children components of the JToolBar and the
* border.
*
* @param margin The margin property.
- */
+ */
public void setMargin(Insets margin)
{
if ((this.margin != null && margin == null)
@@ -595,142 +580,141 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
{
Insets oldMargin = this.margin;
this.margin = margin;
- firePropertyChange(MARGIN_CHANGED_PROPERTY, oldMargin, this.margin);
+ firePropertyChange("margin", oldMargin, this.margin);
revalidate();
repaint();
}
- } // setMargin()
+ } // setMargin()
- /**
+ /**
* This method returns the borderPainted property.
*
* @return The borderPainted property.
- */
+ */
public boolean isBorderPainted()
{
return paintBorder;
- } // isBorderPainted()
+ } // isBorderPainted()
- /**
+ /**
* This method sets the borderPainted property. If set to false, the border
* will not be painted.
*
* @param painted Whether the border will be painted.
- */
+ */
public void setBorderPainted(boolean painted)
{
if (painted != paintBorder)
{
paintBorder = painted;
- firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, ! paintBorder,
+ firePropertyChange("borderPainted", ! paintBorder,
paintBorder);
repaint();
}
- } // setBorderPainted()
+ } // setBorderPainted()
- /**
+ /**
* This method returns the floatable property.
*
* @return The floatable property.
- */
+ */
public boolean isFloatable()
{
return floatable;
- } // isFloatable()
+ } // isFloatable()
- /**
+ /**
* This method sets the floatable property. If set to false, the JToolBar
* cannot be dragged.
*
* @param floatable Whether the JToolBar can be dragged.
- */
+ */
public void setFloatable(boolean floatable)
{
if (floatable != this.floatable)
{
this.floatable = floatable;
- firePropertyChange(FLOATABLE_CHANGED_PROPERTY, ! floatable, floatable);
+ firePropertyChange("floatable", ! floatable, floatable);
}
- } // setFloatable()
+ } // setFloatable()
- /**
+ /**
* This method returns the orientation of the JToolBar.
*
* @return The orientation of the JToolBar.
- */
+ */
public int getOrientation()
{
return orientation;
- } // getOrientation()
+ } // getOrientation()
- /**
+ /**
* This method sets the layout manager to be used with the JToolBar.
*
* @param mgr The Layout Manager used with the JToolBar.
- */
+ */
public void setLayout(LayoutManager mgr)
{
- super.setLayout(mgr);
+ super.setLayout(mgr);
revalidate();
repaint();
- } // setLayout()
+ } // setLayout()
- /**
+ /**
* This method sets the orientation property for JToolBar.
*
* @param orientation The new orientation for JToolBar.
*
* @throws IllegalArgumentException If the orientation is not HORIZONTAL or
* VERTICAL.
- */
+ */
public void setOrientation(int orientation)
{
- if (orientation != HORIZONTAL && orientation != VERTICAL)
+ if (orientation != HORIZONTAL && orientation != VERTICAL)
throw new IllegalArgumentException(orientation
+ " is not a legal orientation");
- if (orientation != this.orientation)
- {
- int oldOrientation = this.orientation;
- this.orientation = orientation;
- firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
- this.orientation);
+ if (orientation != this.orientation)
+ {
+ int oldOrientation = this.orientation;
+ this.orientation = orientation;
+ firePropertyChange("orientation", oldOrientation, this.orientation);
revalidate();
repaint();
- }
- } // setOrientation()
+ }
+ } // setOrientation()
- /**
+ /**
* This method adds a Separator of default size to the JToolBar.
- */
+ */
public void addSeparator()
{
add(new Separator());
- } // addSeparator()
+ } // addSeparator()
- /**
+ /**
* This method adds a Separator with the given size to the JToolBar.
*
* @param size The size of the Separator.
- */
+ */
public void addSeparator(Dimension size)
{
add(new Separator(size));
- } // addSeparator()
+ } // addSeparator()
- /**
+ /**
* This method is used to create JButtons which can be added to the JToolBar
* for the given action.
*
* @param action The action to create a JButton for.
*
* @return The JButton created from the action.
- */
+ */
protected JButton createActionComponent(Action action)
{
return new JButton(action);
- } // createActionComponent()
+ } // createActionComponent()
- /**
+ /**
* This method creates a pre-configured PropertyChangeListener which updates
* the control as changes are made to the Action. However, this is no
* longer the recommended way of adding Actions to Containers. As such,
@@ -739,36 +723,36 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
* @param button The JButton to configure a PropertyChangeListener for.
*
* @return null.
- */
+ */
protected PropertyChangeListener createActionChangeListener(JButton button)
{
// XXX: As specified, this returns null. But seems kind of strange, usually deprecated methods don't just return null, verify!
return null;
- } // createActionChangeListener()
+ } // createActionChangeListener()
- /**
+ /**
* This method overrides Container's addImpl method. If a JButton is added,
* it is disabled.
*
* @param component The Component to add.
* @param constraints The Constraints placed on the component.
* @param index The index to place the Component at.
- */
+ */
protected void addImpl(Component component, Object constraints, int index)
{
// XXX: Sun says disable button but test cases show otherwise.
super.addImpl(component, constraints, index);
} // addImpl()
- /**
+ /**
* This method returns a String description of the JToolBar.
*
* @return A String description of the JToolBar.
- */
+ */
protected String paramString()
{
return "JToolBar";
- } // paramString()
+ } // paramString()
/**
* getAccessibleContext
@@ -779,7 +763,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
{
if (accessibleContext == null)
accessibleContext = new AccessibleJToolBar();
-
+
return accessibleContext;
}
}
diff --git a/libjava/javax/swing/JTree.java b/libjava/javax/swing/JTree.java
index 8d52257c536..170fd3014b2 100644
--- a/libjava/javax/swing/JTree.java
+++ b/libjava/javax/swing/JTree.java
@@ -1,5 +1,5 @@
/* JTree.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.
@@ -53,10 +53,10 @@ import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeWillExpandListener;
import javax.swing.plaf.TreeUI;
-import javax.swing.tree.ExpandVetoException;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.ExpandVetoException;
import javax.swing.tree.TreeCellEditor;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreeModel;
@@ -70,14 +70,11 @@ public class JTree extends JComponent
{
private static final long serialVersionUID = 7559816092864483649L;
- public static final String ANCHOR_SELECTION_PATH_PROPERTY = "anchorSelectionPath";
public static final String CELL_EDITOR_PROPERTY = "cellEditor";
public static final String CELL_RENDERER_PROPERTY = "cellRenderer";
public static final String EDITABLE_PROPERTY = "editable";
- public static final String EXPANDS_SELECTED_PATHS_PROPERTY = "expandsSelectedPaths";
public static final String INVOKES_STOP_CELL_EDITING_PROPERTY = "invokesStopCellEditing";
public static final String LARGE_MODEL_PROPERTY = "largeModel";
- public static final String LEAD_SELECTION_PATH_PROPERTY = "leadSelectionPath";
public static final String ROOT_VISIBLE_PROPERTY = "rootVisible";
public static final String ROW_HEIGHT_PROPERTY = "rowHeight";
public static final String SCROLLS_ON_EXPAND_PROPERTY = "scrollsOnExpand";
@@ -87,18 +84,40 @@ public class JTree extends JComponent
public static final String TREE_MODEL_PROPERTY = "model";
public static final String VISIBLE_ROW_COUNT_PROPERTY = "visibleRowCount";
- protected TreeCellEditor cellEditor;
- protected TreeCellRenderer cellRenderer;
+ /** @since 1.3 */
+ public static final String ANCHOR_SELECTION_PATH_PROPERTY = "anchorSelectionPath";
+ /** @since 1.3 */
+ public static final String LEAD_SELECTION_PATH_PROPERTY = "leadSelectionPath";
+ /** @since 1.3 */
+ public static final String EXPANDS_SELECTED_PATHS_PROPERTY = "expandsSelectedPaths";
+
+ private static final Object EXPANDED = new Object();
+ private static final Object COLLAPSED = new Object();
+
+ private boolean dragEnabled;
+ private boolean expandsSelectedPaths;
+ private TreePath anchorSelectionPath;
+ private TreePath leadSelectionPath;
+
+ /*
+ * This contains the state of all nodes in the tree. Al/ entries map the
+ * TreePath of a note to to its state. Valid states are EXPANDED and
+ * COLLAPSED. Nodes not in this Hashtable are assumed state COLLAPSED.
+ */
+ private Hashtable nodeStates;
+
+ protected transient TreeCellEditor cellEditor;
+ protected transient TreeCellRenderer cellRenderer;
protected boolean editable;
protected boolean invokesStopCellEditing;
protected boolean largeModel;
protected boolean rootVisible;
protected int rowHeight;
protected boolean scrollsOnExpand;
- protected TreeSelectionModel selectionModel;
+ protected transient TreeSelectionModel selectionModel;
protected boolean showsRootHandles;
protected int toggleClickCount;
- protected TreeModel treeModel;
+ protected transient TreeModel treeModel;
protected int visibleRowCount;
/**
@@ -178,6 +197,13 @@ public class JTree extends JComponent
{
protected Object childValue;
protected boolean loadedChildren;
+
+ /**
+ * Currently not set or used by this class.
+ * It might be set and used in later versions of this class.
+ */
+ protected boolean hasChildren;
+
public DynamicUtilTreeNode(Object value,
Object children)
{
@@ -247,6 +273,39 @@ public class JTree extends JComponent
}
}
+ public int getRowForPath(TreePath path)
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.getRowForPath(this, path);
+
+ return -1;
+ }
+
+ public TreePath getPathForRow(int row)
+ {
+ TreeUI ui = getUI();
+ return ui != null ? ui.getPathForRow(this, row) : null;
+ }
+
+ protected TreePath[] getPathBetweenRows(int index0, int index1)
+ {
+ TreeUI ui = getUI();
+
+ if (ui == null)
+ return null;
+
+ int minIndex = Math.min(index0, index1);
+ int maxIndex = Math.max(index0, index1);
+ TreePath[] paths = new TreePath[maxIndex - minIndex + 1];
+
+ for (int i = minIndex; i <= maxIndex; ++i)
+ paths[i - minIndex] = ui.getPathForRow(this, i);
+
+ return paths;
+ }
+
/**
* Creates a new <code>TreeModel</code> object.
*
@@ -511,13 +570,18 @@ public class JTree extends JComponent
}
/**
- * Sets the model to use in <code>JTree</object>.
+ * Sets the model to use in <code>JTree</code>.
*
* @param model the <code>TreeModel</code> to use
*/
public void setModel(TreeModel model)
{
+ if (treeModel == model)
+ return;
+
+ TreeModel oldValue = treeModel;
treeModel = model;
+ firePropertyChange(TREE_MODEL_PROPERTY, oldValue, model);
}
/**
@@ -544,7 +608,7 @@ public class JTree extends JComponent
boolean oldValue = editable;
editable = flag;
- firePropertyChange("editable", oldValue, editable);
+ firePropertyChange(EDITABLE_PROPERTY, oldValue, editable);
}
/**
@@ -560,7 +624,12 @@ public class JTree extends JComponent
public void setRootVisible(boolean flag)
{
+ if (rootVisible == flag)
+ return;
+
+ boolean oldValue = rootVisible;
rootVisible = flag;
+ firePropertyChange(ROOT_VISIBLE_PROPERTY, oldValue, flag);
}
public boolean getShowsRootHandles()
@@ -570,7 +639,12 @@ public class JTree extends JComponent
public void setShowsRootHandles(boolean flag)
{
+ if (showsRootHandles == flag)
+ return;
+
+ boolean oldValue = showsRootHandles;
showsRootHandles = flag;
+ firePropertyChange(SHOWS_ROOT_HANDLES_PROPERTY, oldValue, flag);
}
public TreeCellEditor getCellEditor()
@@ -580,7 +654,12 @@ public class JTree extends JComponent
public void setCellEditor(TreeCellEditor editor)
{
+ if (cellEditor == editor)
+ return;
+
+ TreeCellEditor oldValue = cellEditor;
cellEditor = editor;
+ firePropertyChange(CELL_EDITOR_PROPERTY, oldValue, editor);
}
public TreeCellRenderer getCellRenderer()
@@ -590,7 +669,12 @@ public class JTree extends JComponent
public void setCellRenderer(TreeCellRenderer newRenderer)
{
+ if (cellRenderer == newRenderer)
+ return;
+
+ TreeCellRenderer oldValue = cellRenderer;
cellRenderer = newRenderer;
+ firePropertyChange(CELL_RENDERER_PROPERTY, oldValue, newRenderer);
}
public TreeSelectionModel getSelectionModel()
@@ -600,7 +684,12 @@ public class JTree extends JComponent
public void setSelectionModel(TreeSelectionModel model)
{
+ if (selectionModel == model)
+ return;
+
+ TreeSelectionModel oldValue = selectionModel;
selectionModel = model;
+ firePropertyChange(SELECTION_MODEL_PROPERTY, oldValue, model);
}
public int getVisibleRowCount()
@@ -610,7 +699,12 @@ public class JTree extends JComponent
public void setVisibleRowCount(int rows)
{
+ if (visibleRowCount == rows)
+ return;
+
+ int oldValue = visibleRowCount;
visibleRowCount = rows;
+ firePropertyChange(VISIBLE_ROW_COUNT_PROPERTY, oldValue, rows);
}
public boolean isLargeModel()
@@ -620,7 +714,12 @@ public class JTree extends JComponent
public void setLargeModel(boolean large)
{
+ if (largeModel == large)
+ return;
+
+ boolean oldValue = largeModel;
largeModel = large;
+ firePropertyChange(LARGE_MODEL_PROPERTY, oldValue, large);
}
public int getRowHeight()
@@ -630,7 +729,17 @@ public class JTree extends JComponent
public void setRowHeight(int height)
{
+ if (rowHeight == height)
+ return;
+
+ int oldValue = rowHeight;
rowHeight = height;
+ firePropertyChange(ROW_HEIGHT_PROPERTY, oldValue, height);
+ }
+
+ public boolean isFixedRowHeight()
+ {
+ return rowHeight > 0;
}
public boolean getInvokesStopCellEditing()
@@ -640,7 +749,12 @@ public class JTree extends JComponent
public void setInvokesStopCellEditing(boolean invoke)
{
+ if (invokesStopCellEditing == invoke)
+ return;
+
+ boolean oldValue = invokesStopCellEditing;
invokesStopCellEditing = invoke;
+ firePropertyChange(INVOKES_STOP_CELL_EDITING_PROPERTY, oldValue, invoke);
}
/**
@@ -656,9 +770,32 @@ public class JTree extends JComponent
*/
public void setToggleClickCount(int count)
{
+ if (toggleClickCount == count)
+ return;
+
+ int oldValue = toggleClickCount;
toggleClickCount = count;
+ firePropertyChange(TOGGLE_CLICK_COUNT_PROPERTY, oldValue, count);
+ }
+
+ public void scrollPathToVisible(TreePath path)
+ {
+ if (path == null)
+ return;
+
+ Rectangle rect = getPathBounds(path);
+
+ if (rect == null)
+ return;
+
+ scrollRectToVisible(rect);
}
+ public void scrollRowToVisible(int row)
+ {
+ scrollPathToVisible(getPathForRow(row));
+ }
+
public boolean getScrollsOnExpand()
{
return scrollsOnExpand;
@@ -666,6 +803,590 @@ public class JTree extends JComponent
public void setScrollsOnExpand(boolean scroll)
{
+ if (scrollsOnExpand == scroll)
+ return;
+
+ boolean oldValue = scrollsOnExpand;
scrollsOnExpand = scroll;
+ firePropertyChange(SCROLLS_ON_EXPAND_PROPERTY, oldValue, scroll);
+ }
+
+ public void setSelectionPath(TreePath path)
+ {
+ selectionModel.setSelectionPath(path);
+ }
+
+ public void setSelectionPaths(TreePath[] paths)
+ {
+ selectionModel.setSelectionPaths(paths);
+ }
+
+ public void setSelectionRow(int row)
+ {
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ selectionModel.setSelectionPath(path);
+ }
+
+ public void setSelectionRows(int[] rows)
+ {
+ // Make sure we have an UI so getPathForRow() does not return null.
+ if (rows == null || getUI() == null)
+ return;
+
+ TreePath[] paths = new TreePath[rows.length];
+
+ for (int i = rows.length - 1; i >= 0; --i)
+ paths[i] = getPathForRow(rows[i]);
+
+ setSelectionPaths(paths);
+ }
+
+ public void setSelectionInterval(int index0, int index1)
+ {
+ TreePath[] paths = getPathBetweenRows(index0, index1);
+
+ if (paths != null)
+ setSelectionPaths(paths);
+ }
+
+ public void addSelectionPath(TreePath path)
+ {
+ selectionModel.addSelectionPath(path);
+ }
+
+ public void addSelectionPaths(TreePath[] paths)
+ {
+ selectionModel.addSelectionPaths(paths);
+ }
+
+ public void addSelectionRow(int row)
+ {
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ selectionModel.addSelectionPath(path);
+ }
+
+ public void addSelectionRows(int[] rows)
+ {
+ // Make sure we have an UI so getPathForRow() does not return null.
+ if (rows == null || getUI() == null)
+ return;
+
+ TreePath[] paths = new TreePath[rows.length];
+
+ for (int i = rows.length - 1; i >= 0; --i)
+ paths[i] = getPathForRow(rows[i]);
+
+ addSelectionPaths(paths);
+ }
+
+ public void addSelectionInterval(int index0, int index1)
+ {
+ TreePath[] paths = getPathBetweenRows(index0, index1);
+
+ if (paths != null)
+ addSelectionPaths(paths);
+ }
+
+ public void removeSelectionPath(TreePath path)
+ {
+ selectionModel.removeSelectionPath(path);
+ }
+
+ public void removeSelectionPaths(TreePath[] paths)
+ {
+ selectionModel.removeSelectionPaths(paths);
+ }
+
+ public void removeSelectionRow(int row)
+ {
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ selectionModel.removeSelectionPath(path);
+ }
+
+ public void removeSelectionRows(int[] rows)
+ {
+ // Make sure we have an UI so getPathForRow() does not return null.
+ if (rows == null || getUI() == null)
+ return;
+
+ TreePath[] paths = new TreePath[rows.length];
+
+ for (int i = rows.length - 1; i >= 0; --i)
+ paths[i] = getPathForRow(rows[i]);
+
+ removeSelectionPaths(paths);
+ }
+
+ public void removeSelectionInterval(int index0, int index1)
+ {
+ TreePath[] paths = getPathBetweenRows(index0, index1);
+
+ if (paths != null)
+ removeSelectionPaths(paths);
+ }
+
+ public void clearSelection()
+ {
+ selectionModel.clearSelection();
+ }
+
+ public TreePath getLeadSelectionPath()
+ {
+ return leadSelectionPath;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public void setLeadSelectionPath(TreePath path)
+ {
+ if (leadSelectionPath == path)
+ return;
+
+ TreePath oldValue = leadSelectionPath;
+ leadSelectionPath = path;
+ firePropertyChange(LEAD_SELECTION_PATH_PROPERTY, oldValue, path);
+ }
+
+ /**
+ * @since 1.3
+ */
+ public TreePath getAnchorSelectionPath()
+ {
+ return anchorSelectionPath;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public void setAnchorSelectionPath(TreePath path)
+ {
+ if (anchorSelectionPath == path)
+ return;
+
+ TreePath oldValue = anchorSelectionPath;
+ anchorSelectionPath = path;
+ firePropertyChange(ANCHOR_SELECTION_PATH_PROPERTY, oldValue, path);
+ }
+
+ public int getLeadSelectionRow()
+ {
+ return selectionModel.getLeadSelectionRow();
+ }
+
+ public int getMaxSelectionRow()
+ {
+ return selectionModel.getMaxSelectionRow();
+ }
+
+ public int getMinSelectionRow()
+ {
+ return selectionModel.getMinSelectionRow();
+ }
+
+ public int getSelectionCount()
+ {
+ return selectionModel.getSelectionCount();
+ }
+
+ public TreePath getSelectionPath()
+ {
+ return selectionModel.getSelectionPath();
+ }
+
+ public TreePath[] getSelectionPaths()
+ {
+ return selectionModel.getSelectionPaths();
+ }
+
+ public int[] getSelectionRows()
+ {
+ return selectionModel.getSelectionRows();
+ }
+
+ public boolean isPathSelected(TreePath path)
+ {
+ return selectionModel.isPathSelected(path);
+ }
+
+ public boolean isRowSelected(int row)
+ {
+ return selectionModel.isRowSelected(row);
+ }
+
+ public boolean isSelectionEmpty()
+ {
+ return selectionModel.isSelectionEmpty();
+ }
+
+ /**
+ * Return the value of the <code>dragEnabled</code> property.
+ *
+ * @return the value
+ *
+ * @since 1.4
+ */
+ public boolean getDragEnabled()
+ {
+ return dragEnabled;
+ }
+
+ /**
+ * Set the <code>dragEnabled</code> property.
+ *
+ * @param enabled new value
+ *
+ * @since 1.4
+ */
+ public void setDragEnabled(boolean enabled)
+ {
+ dragEnabled = enabled;
+ }
+
+ public int getRowCount()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.getRowCount(this);
+
+ return 0;
+ }
+
+ public void collapsePath(TreePath path)
+ {
+ setExpandedState(path, false);
+ }
+
+ public void collapseRow(int row)
+ {
+ if (row < 0 || row >= getRowCount())
+ return;
+
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ collapsePath(path);
+ }
+
+ public void expandPath(TreePath path)
+ {
+ // Don't expand if last path component is a leaf node.
+ if ((path == null)
+ || (treeModel.isLeaf(path.getLastPathComponent())))
+ return;
+
+ setExpandedState(path, true);
+ }
+
+ public void expandRow(int row)
+ {
+ if (row < 0 || row >= getRowCount())
+ return;
+
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ expandPath(path);
+ }
+
+ public boolean isCollapsed(TreePath path)
+ {
+ return ! isExpanded(path);
+ }
+
+ public boolean isCollapsed(int row)
+ {
+ if (row < 0 || row >= getRowCount())
+ return false;
+
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ return isCollapsed(path);
+
+ return false;
+ }
+
+ public boolean isExpanded(TreePath path)
+ {
+ if (path == null)
+ return false;
+
+ Object state = nodeStates.get(path);
+
+ if ((state == null) || (state != EXPANDED))
+ return false;
+
+ TreePath parent = path.getParentPath();
+
+ if (parent != null)
+ return isExpanded(parent);
+
+ return true;
+ }
+
+ public boolean isExpanded(int row)
+ {
+ if (row < 0 || row >= getRowCount())
+ return false;
+
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ return isExpanded(path);
+
+ return false;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public boolean getExpandsSelectedPaths()
+ {
+ return expandsSelectedPaths;
+ }
+
+ /**
+ * @since 1.3
+ */
+ public void setExpandsSelectedPaths(boolean flag)
+ {
+ if (expandsSelectedPaths == flag)
+ return;
+
+ boolean oldValue = expandsSelectedPaths;
+ expandsSelectedPaths = flag;
+ firePropertyChange(EXPANDS_SELECTED_PATHS_PROPERTY, oldValue, flag);
+ }
+
+ public Rectangle getPathBounds(TreePath path)
+ {
+ TreeUI ui = getUI();
+
+ if (ui == null)
+ return null;
+
+ return ui.getPathBounds(this, path);
+ }
+
+ public Rectangle getRowBounds(int row)
+ {
+ TreePath path = getPathForRow(row);
+
+ if (path != null)
+ return getPathBounds(path);
+
+ return null;
+ }
+
+ public boolean isEditing()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.isEditing(this);
+
+ return false;
+ }
+
+ public boolean stopEditing()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.stopEditing(this);
+
+ return false;
+ }
+
+ public void cancelEditing()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ ui.cancelEditing(this);
+ }
+
+ public void startEditingAtPath(TreePath path)
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ ui.startEditingAtPath(this, path);
+ }
+
+ public TreePath getEditingPath()
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.getEditingPath(this);
+
+ return null;
+ }
+
+ public TreePath getPathForLocation(int x, int y)
+ {
+ TreePath path = getClosestPathForLocation(x, y);
+
+ if (path != null)
+ {
+ Rectangle rect = getPathBounds(path);
+
+ if ((rect != null) && rect.contains(x, y))
+ return path;
+ }
+
+ return null;
+ }
+
+ public int getRowForLocation(int x, int y)
+ {
+ TreePath path = getPathForLocation(x, y);
+
+ if (path != null)
+ return getRowForPath(path);
+
+ return -1;
+ }
+
+ public TreePath getClosestPathForLocation(int x, int y)
+ {
+ TreeUI ui = getUI();
+
+ if (ui != null)
+ return ui.getClosestPathForLocation(this, x, y);
+
+ return null;
+ }
+
+ public int getClosestRowForLocation(int x, int y)
+ {
+ TreePath path = getClosestPathForLocation(x, y);
+
+ if (path != null)
+ return getRowForPath(path);
+
+ return -1;
+ }
+
+ public Object getLastSelectedPathComponent()
+ {
+ TreePath path = getSelectionPath();
+
+ if (path != null)
+ return path.getLastPathComponent();
+
+ return null;
+ }
+
+ private void checkExpandParents(TreePath path)
+ throws ExpandVetoException
+ {
+ TreePath parent = path.getParentPath();
+
+ if (parent != null)
+ checkExpandParents(parent);
+
+ fireTreeWillExpand(path);
+ }
+
+ private void doExpandParents(TreePath path, boolean state)
+ {
+ TreePath parent = path.getParentPath();
+
+ if (isExpanded(parent))
+ return;
+
+ if (parent != null)
+ doExpandParents(parent, false);
+
+ nodeStates.put(path, state ? EXPANDED : COLLAPSED);
+ }
+
+ protected void setExpandedState(TreePath path, boolean state)
+ {
+ if (path == null)
+ return;
+
+ TreePath parent = path.getParentPath();
+
+ try
+ {
+ while (parent != null)
+ checkExpandParents(parent);
+ }
+ catch (ExpandVetoException e)
+ {
+ // Expansion vetoed.
+ return;
+ }
+
+ doExpandParents(path, state);
+ }
+
+ protected void clearToggledPaths()
+ {
+ nodeStates.clear();
+ }
+
+ protected Enumeration getDescendantToggledPaths(TreePath parent)
+ {
+ if (parent == null)
+ return null;
+
+ Enumeration nodes = nodeStates.keys();
+ Vector result = new Vector();
+
+ while (nodes.hasMoreElements())
+ {
+ TreePath path = (TreePath) nodes.nextElement();
+
+ if (path.isDescendant(parent))
+ result.addElement(path);
+ }
+
+ return result.elements();
+ }
+
+ public boolean hasBeenExpanded(TreePath path)
+ {
+ if (path == null)
+ return false;
+
+ return nodeStates.get(path) != null;
+ }
+
+ public boolean isVisible(TreePath path)
+ {
+ if (path == null)
+ return false;
+
+ TreePath parent = path.getParentPath();
+
+ if (parent == null)
+ return true; // Is root node.
+
+ return isExpanded(parent);
+ }
+
+ public void makeVisible(TreePath path)
+ {
+ if (path == null)
+ return;
+
+ expandPath(path.getParentPath());
+ }
+
+ public boolean isPathEditable(TreePath path)
+ {
+ return isEditable();
}
}
diff --git a/libjava/javax/swing/JViewport.java b/libjava/javax/swing/JViewport.java
index 9b26c8b21af..657f192fd04 100644
--- a/libjava/javax/swing/JViewport.java
+++ b/libjava/javax/swing/JViewport.java
@@ -1,5 +1,5 @@
/* JViewport.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.
@@ -45,6 +45,7 @@ import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
+import javax.swing.border.Border;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.plaf.ViewportUI;
@@ -157,12 +158,23 @@ public class JViewport extends JComponent
fireStateChanged();
}
+ /**
+ * Returns the viewSize when set, or the preferred size of the set
+ * Component view. If no viewSize and no Component view is set an
+ * empty Dimension is returned.
+ */
public Dimension getViewSize()
{
if (isViewSizeSet)
return viewSize;
else
- return getView().getSize();
+ {
+ Component view = getView();
+ if (view != null)
+ return view.getPreferredSize();
+ else
+ return new Dimension();
+ }
}
@@ -281,7 +293,7 @@ public class JViewport extends JComponent
fireStateChanged();
}
- public void addImpl(Component comp, Object constraints, int index)
+ protected void addImpl(Component comp, Object constraints, int index)
{
if (getComponentCount() > 0)
remove(getComponents()[0]);
@@ -374,4 +386,10 @@ public class JViewport extends JComponent
{
super.setUI(ui);
}
+
+ public final void setBorder(Border border)
+ {
+ if (border != null)
+ throw new IllegalArgumentException();
+ }
}
diff --git a/libjava/javax/swing/JWindow.java b/libjava/javax/swing/JWindow.java
index 3601b694105..94efa3aa795 100644
--- a/libjava/javax/swing/JWindow.java
+++ b/libjava/javax/swing/JWindow.java
@@ -1,5 +1,5 @@
/* JWindow.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,10 +44,10 @@ import java.awt.Container;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
+import java.awt.GraphicsConfiguration;
import java.awt.LayoutManager;
import java.awt.Window;
import java.awt.event.KeyEvent;
-import java.awt.event.WindowEvent;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
@@ -62,180 +62,144 @@ public class JWindow extends Window implements Accessible, RootPaneContainer
{
private static final long serialVersionUID = 5420698392125238833L;
- public static final int HIDE_ON_CLOSE = 0;
- public static final int EXIT_ON_CLOSE = 1;
- public static final int DISPOSE_ON_CLOSE = 2;
- public static final int DO_NOTHING_ON_CLOSE = 3;
-
- protected AccessibleContext accessibleContext;
-
- private int close_action = EXIT_ON_CLOSE;
-
-
- /***************************************************
- *
- *
- * constructors
- *
- *
- *************/
-
- public JWindow()
- {
- super(SwingUtilities.getOwnerFrame());
- }
-
- // huuu ?
- public JWindow(Frame f)
- {
- super(f);
- }
-
- /***************************************************
- *
- *
- * methods, this part is shared with JDialog, JFrame
- *
- *
- *************/
+ protected JRootPane rootPane;
+ protected boolean rootPaneCheckingEnabled;
+ protected AccessibleContext accessibleContext;
+ public JWindow()
+ {
+ super(SwingUtilities.getOwnerFrame());
+ windowInit();
+ }
+
+ public JWindow(GraphicsConfiguration gc)
+ {
+ super(SwingUtilities.getOwnerFrame(), gc);
+ windowInit();
+ }
- private boolean checking;
- protected JRootPane rootPane;
-
-
- protected void frameInit()
- {
- super.setLayout(new BorderLayout(1, 1));
- getRootPane(); // will do set/create
- }
-
+ public JWindow(Frame owner)
+ {
+ super(owner);
+ windowInit();
+ }
+
+ public JWindow(Window owner)
+ {
+ super(owner);
+ windowInit();
+ }
+
+ public JWindow(Window owner, GraphicsConfiguration gc)
+ {
+ super(owner, gc);
+ windowInit();
+ }
+
+ protected void windowInit()
+ {
+ super.setLayout(new BorderLayout(1, 1));
+ getRootPane(); // will do set/create
+ }
+
public Dimension getPreferredSize()
{
- Dimension d = super.getPreferredSize();
- return d;
+ return super.getPreferredSize();
}
- public void setLayout(LayoutManager manager)
- { super.setLayout(manager); }
+ public void setLayout(LayoutManager manager)
+ {
+ super.setLayout(manager);
+ }
- public void setLayeredPane(JLayeredPane layeredPane)
- { getRootPane().setLayeredPane(layeredPane); }
-
- public JLayeredPane getLayeredPane()
- { return getRootPane().getLayeredPane(); }
-
- public JRootPane getRootPane()
- {
- if (rootPane == null)
- setRootPane(createRootPane());
- return rootPane;
- }
-
- public void setRootPane(JRootPane root)
- {
- if (rootPane != null)
- remove(rootPane);
-
- rootPane = root;
- add(rootPane, BorderLayout.CENTER);
- }
-
- public JRootPane createRootPane()
- { return new JRootPane(); }
-
- public Container getContentPane()
- { return getRootPane().getContentPane(); }
-
- public void setContentPane(Container contentPane)
- { getRootPane().setContentPane(contentPane); }
-
- public Component getGlassPane()
- { return getRootPane().getGlassPane(); }
-
- public void setGlassPane(Component glassPane)
- { getRootPane().setGlassPane(glassPane); }
+ public void setLayeredPane(JLayeredPane layeredPane)
+ {
+ getRootPane().setLayeredPane(layeredPane);
+ }
-
- protected void addImpl(Component comp, Object constraints, int index)
- { super.addImpl(comp, constraints, index); }
+ public JLayeredPane getLayeredPane()
+ {
+ return getRootPane().getLayeredPane();
+ }
+
+ public JRootPane getRootPane()
+ {
+ if (rootPane == null)
+ setRootPane(createRootPane());
+ return rootPane;
+ }
+ protected void setRootPane(JRootPane root)
+ {
+ if (rootPane != null)
+ remove(rootPane);
- public void remove(Component comp)
- { getContentPane().remove(comp); }
-
- protected boolean isRootPaneCheckingEnabled()
- { return checking; }
+ rootPane = root;
+ add(rootPane, BorderLayout.CENTER);
+ }
+ protected JRootPane createRootPane()
+ {
+ return new JRootPane();
+ }
- protected void setRootPaneCheckingEnabled(boolean enabled)
- { checking = enabled; }
+ public Container getContentPane()
+ {
+ return getRootPane().getContentPane();
+ }
+ public void setContentPane(Container contentPane)
+ {
+ getRootPane().setContentPane(contentPane);
+ }
- public void update(Graphics g)
- { paint(g); }
+ public Component getGlassPane()
+ {
+ return getRootPane().getGlassPane();
+ }
- protected void processKeyEvent(KeyEvent e)
- { super.processKeyEvent(e); }
+ public void setGlassPane(Component glassPane)
+ {
+ getRootPane().setGlassPane(glassPane);
+ }
- /////////////////////////////////////////////////////////////////////////////////
-
- public AccessibleContext getAccessibleContext()
- { return null; }
-
- int getDefaultCloseOperation()
- { return close_action; }
-
- protected String paramString()
- { return "JWindow"; }
-
-
- protected void processWindowEvent(WindowEvent e)
- {
- // System.out.println("PROCESS_WIN_EV-1: " + e);
- super.processWindowEvent(e);
- // System.out.println("PROCESS_WIN_EV-2: " + e);
- switch (e.getID())
- {
- case WindowEvent.WINDOW_CLOSING:
- {
- switch(close_action)
- {
- case EXIT_ON_CLOSE:
- {
- System.out.println("user requested exit on close");
- System.exit(1);
- break;
- }
- case DISPOSE_ON_CLOSE:
- {
- System.out.println("user requested dispose on close");
- dispose();
- break;
- }
- case HIDE_ON_CLOSE:
- {
- setVisible(false);
- break;
- }
- case DO_NOTHING_ON_CLOSE:
- break;
- }
- break;
- }
-
- case WindowEvent.WINDOW_CLOSED:
- case WindowEvent.WINDOW_OPENED:
- case WindowEvent.WINDOW_ICONIFIED:
- case WindowEvent.WINDOW_DEICONIFIED:
- case WindowEvent.WINDOW_ACTIVATED:
- case WindowEvent.WINDOW_DEACTIVATED:
- break;
- }
- }
-
-
- void setDefaultCloseOperation(int operation)
- { close_action = operation; }
+ protected void addImpl(Component comp, Object constraints, int index)
+ {
+ super.addImpl(comp, constraints, index);
+ }
+
+ public void remove(Component comp)
+ {
+ getContentPane().remove(comp);
+ }
+ protected boolean isRootPaneCheckingEnabled()
+ {
+ return rootPaneCheckingEnabled;
+ }
+
+ protected void setRootPaneCheckingEnabled(boolean enabled)
+ {
+ rootPaneCheckingEnabled = enabled;
+ }
+
+ public void update(Graphics g)
+ {
+ paint(g);
+ }
+
+ protected void processKeyEvent(KeyEvent e)
+ {
+ super.processKeyEvent(e);
+ }
+
+ public AccessibleContext getAccessibleContext()
+ {
+ return null;
+ }
+
+ protected String paramString()
+ {
+ return "JWindow";
+ }
}
diff --git a/libjava/javax/swing/KeyStroke.java b/libjava/javax/swing/KeyStroke.java
index afdbae8300a..239c8dd1f84 100644
--- a/libjava/javax/swing/KeyStroke.java
+++ b/libjava/javax/swing/KeyStroke.java
@@ -1,5 +1,5 @@
/* KeyStroke.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;
import java.awt.AWTKeyStroke;
@@ -45,12 +46,15 @@ public class KeyStroke
extends AWTKeyStroke
implements Serializable
{
- static final long serialVersionUID = -9060180771037902530L;
- private KeyStroke() {
+ private static final long serialVersionUID = -9060180771037902530L;
+
+ // Called by java.awt.AWTKeyStroke.registerSubclass via reflection.
+ private KeyStroke()
+ {
}
- protected KeyStroke(char keyChar, int keyCode, int modifiers,
- boolean onKeyRelease)
+ private KeyStroke(char keyChar, int keyCode, int modifiers,
+ boolean onKeyRelease)
{
super(keyChar, keyCode, modifiers, onKeyRelease);
}
@@ -92,9 +96,22 @@ public class KeyStroke
return (KeyStroke) getAWTKeyStroke(keyCode, modifiers);
}
+ /**
+ * Returns the KeyStroke according to <code>getAWTKeyStroke()</code>.
+ * But it returns null instead of throwing
+ * <code>IllegalArugmentException</code> when
+ * the keystoke sequence cannot be parsed from the given string.
+ */
public static KeyStroke getKeyStroke(String str)
{
- return (KeyStroke) getAWTKeyStroke(str);
+ try
+ {
+ return (KeyStroke) getAWTKeyStroke(str);
+ }
+ catch (IllegalArgumentException iae)
+ {
+ return null;
+ }
}
public static KeyStroke getKeyStrokeForEvent(KeyEvent event)
diff --git a/libjava/javax/swing/LookAndFeel.java b/libjava/javax/swing/LookAndFeel.java
index 3a56a114943..a2508386d5e 100644
--- a/libjava/javax/swing/LookAndFeel.java
+++ b/libjava/javax/swing/LookAndFeel.java
@@ -58,6 +58,12 @@ public abstract class LookAndFeel
public abstract String getDescription();
+ public static Object getDesktopPropertyValue(String systemPropertyName, Object fallbackValue)
+ {
+ Object value = Toolkit.getDefaultToolkit().getDesktopProperty(systemPropertyName);
+ return value != null ? value : fallbackValue;
+ }
+
public abstract String getID();
public abstract String getName();
diff --git a/libjava/javax/swing/MenuSelectionManager.java b/libjava/javax/swing/MenuSelectionManager.java
index 2e93c01e934..f78e21467b2 100644
--- a/libjava/javax/swing/MenuSelectionManager.java
+++ b/libjava/javax/swing/MenuSelectionManager.java
@@ -271,10 +271,10 @@ public class MenuSelectionManager
MenuElement[] subComponents = ((MenuElement) mouseOverMenuComp)
.getSubElements();
- for (int i = 0; i < subComponents.length; i++)
- {
- subComponents[i].processMouseEvent(event, path, manager);
- }
+ for (int i = 0; i < subComponents.length; i++)
+ {
+ subComponents[i].processMouseEvent(event, path, manager);
+ }
*/
}
}
diff --git a/libjava/javax/swing/OverlayLayout.java b/libjava/javax/swing/OverlayLayout.java
index 1e1d4aeff0d..706ffe2a2f6 100644
--- a/libjava/javax/swing/OverlayLayout.java
+++ b/libjava/javax/swing/OverlayLayout.java
@@ -51,7 +51,7 @@ import java.io.Serializable;
public class OverlayLayout
implements LayoutManager2, Serializable
{
- static final long serialVersionUID = 18082829169631543L;
+ private static final long serialVersionUID = 18082829169631543L;
//-------------------------------------------------------------
// Variables --------------------------------------------------
diff --git a/libjava/javax/swing/RepaintManager.java b/libjava/javax/swing/RepaintManager.java
index 1c9208e7a3b..c29ba787e37 100644
--- a/libjava/javax/swing/RepaintManager.java
+++ b/libjava/javax/swing/RepaintManager.java
@@ -263,7 +263,7 @@ public class RepaintManager
&& ancestor instanceof JComponent
&& ((JComponent) ancestor).isValidateRoot())
component = (JComponent) ancestor;
-
+
if (invalidComponents.contains(component))
return;
diff --git a/libjava/javax/swing/ScrollPaneLayout.java b/libjava/javax/swing/ScrollPaneLayout.java
index 0da8f18e549..a0461b4d037 100644
--- a/libjava/javax/swing/ScrollPaneLayout.java
+++ b/libjava/javax/swing/ScrollPaneLayout.java
@@ -57,7 +57,7 @@ import javax.swing.border.Border;
public class ScrollPaneLayout
implements LayoutManager, ScrollPaneConstants, Serializable
{
- static final long serialVersionUID = -4480022884523193743L;
+ private static final long serialVersionUID = -4480022884523193743L;
public static class UIResource extends ScrollPaneLayout
implements javax.swing.plaf.UIResource {
@@ -240,7 +240,7 @@ public class ScrollPaneLayout
if (viewportBorder != null)
{
- viewportInsets = viewportBorder.getBorderInsets(parent);
+ viewportInsets = viewportBorder.getBorderInsets(parent);
if (viewportInsets != null)
viewportInsetsSize.setSize(viewportInsets.left + viewportInsets.right,
viewportInsets.top + viewportInsets.bottom);
@@ -311,19 +311,19 @@ public class ScrollPaneLayout
if (viewportBorder != null)
{
- viewportInsets = viewportBorder.getBorderInsets(parent);
+ viewportInsets = viewportBorder.getBorderInsets(parent);
if (viewportInsets != null)
viewportInsetsSize.setSize(viewportInsets.left + viewportInsets.right,
viewportInsets.top + viewportInsets.bottom);
}
-
+
if (insets != null)
insetsSize.setSize(insets.left + insets.right,
insets.top + insets.bottom);
maybeSetMinimumSize(colHead, columnHeaderSize);
maybeSetMinimumSize(rowHead, rowHeaderSize);
-
+
if (vsbPolicy != VERTICAL_SCROLLBAR_NEVER)
maybeSetMinimumSize(vsb, verticalScrollBarSize);
@@ -420,7 +420,7 @@ public class ScrollPaneLayout
if (!showVsb)
x3 = x4;
-
+
if (!showHsb)
y3 = y4;
@@ -438,7 +438,7 @@ public class ScrollPaneLayout
if (showVsb)
{
vsb.setVisible(true);
- vsb.setBounds(new Rectangle(x3, y2, x4-x3, y3-y2));
+ vsb.setBounds(new Rectangle(x3, y2, x4-x3, y3-y2));
}
else if (vsb != null)
vsb.setVisible(false);
@@ -446,7 +446,7 @@ public class ScrollPaneLayout
if (showHsb)
{
hsb.setVisible(true);
- hsb.setBounds(new Rectangle(x2, y3, x3-x2, y4-y3));
+ hsb.setBounds(new Rectangle(x2, y3, x3-x2, y4-y3));
}
else if (hsb != null)
hsb.setVisible(false);
diff --git a/libjava/javax/swing/SizeRequirements.java b/libjava/javax/swing/SizeRequirements.java
index eb641fbd1c7..dd34d9cd97b 100644
--- a/libjava/javax/swing/SizeRequirements.java
+++ b/libjava/javax/swing/SizeRequirements.java
@@ -47,7 +47,7 @@ import java.io.Serializable;
*/
public class SizeRequirements implements Serializable
{
- static final long serialVersionUID = 9217749429906736553L;
+ private static final long serialVersionUID = 9217749429906736553L;
//-------------------------------------------------------------
// Variables --------------------------------------------------
diff --git a/libjava/javax/swing/SpinnerListModel.java b/libjava/javax/swing/SpinnerListModel.java
index 4da26146906..9b2667182f2 100644
--- a/libjava/javax/swing/SpinnerListModel.java
+++ b/libjava/javax/swing/SpinnerListModel.java
@@ -1,5 +1,5 @@
/* SpinnerListModel.java -- A spinner model backed by a list or an array.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -59,7 +59,7 @@ import java.util.List;
* is changed via <code>setList()</code> or when the current value is
* set directly using <code>setValue()</code>.
*
- * @author Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @see SpinnerModel
* @see AbstractSpinnerModel
* @see JSpinner
diff --git a/libjava/javax/swing/SwingUtilities.java b/libjava/javax/swing/SwingUtilities.java
index feacf4fca22..8e987425fc4 100644
--- a/libjava/javax/swing/SwingUtilities.java
+++ b/libjava/javax/swing/SwingUtilities.java
@@ -1,5 +1,5 @@
/* SwingUtilities.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.
@@ -42,15 +42,14 @@ import java.applet.Applet;
import java.awt.Component;
import java.awt.ComponentOrientation;
import java.awt.Container;
-import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Insets;
+import java.awt.KeyboardFocusManager;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Shape;
-import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
@@ -58,6 +57,8 @@ import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.lang.reflect.InvocationTargetException;
+import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleStateSet;
import javax.swing.plaf.ActionMapUIResource;
import javax.swing.plaf.InputMapUIResource;
@@ -67,8 +68,10 @@ import javax.swing.plaf.InputMapUIResource;
* regions which need painting.
*
* @author Graydon Hoare (graydon@redhat.com)
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
-public class SwingUtilities implements SwingConstants
+public class SwingUtilities
+ implements SwingConstants
{
/**
* This frame should be used as parent for JWindow or JDialog
@@ -129,6 +132,152 @@ public class SwingUtilities implements SwingConstants
}
/**
+ * Returns the focus owner or <code>null</code> if <code>comp</code> is not
+ * the focus owner or a parent of it.
+ *
+ * @param comp the focus owner or a parent of it
+ *
+ * @return the focus owner, or <code>null</code>
+ *
+ * @deprecated 1.4 Replaced by
+ * <code>KeyboardFocusManager.getFocusOwner()</code>.
+ */
+ public static Component findFocusOwner(Component comp)
+ {
+ // Get real focus owner.
+ Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager()
+ .getFocusOwner();
+
+ // Check if comp is the focus owner or a parent of it.
+ Component tmp = focusOwner;
+
+ while (tmp != null)
+ {
+ if (tmp == comp)
+ return focusOwner;
+
+ tmp = tmp.getParent();
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns the <code>Accessible</code> child of the specified component
+ * which appears at the supplied <code>Point</code>. If there is no
+ * child located at that particular pair of co-ordinates, null is returned
+ * instead.
+ *
+ * @param c the component whose children may be found at the specified
+ * point.
+ * @param p the point at which to look for the existence of children
+ * of the specified component.
+ * @return the <code>Accessible</code> child at the point, <code>p</code>,
+ * or null if there is no child at this point.
+ * @see javax.accessibility.AccessibleComponent#getAccessibleAt
+ */
+ public static Accessible getAccessibleAt(Component c, Point p)
+ {
+ return c.getAccessibleContext().getAccessibleComponent().getAccessibleAt(p);
+ }
+
+ /**
+ * <p>
+ * Returns the <code>Accessible</code> child of the specified component
+ * that has the supplied index within the parent component. The indexing
+ * of the children is zero-based, making the first child have an index of
+ * 0.
+ * </p>
+ * <p>
+ * Caution is advised when using this method, as its operation relies
+ * on the behaviour of varying implementations of an abstract method.
+ * For greater surety, direct use of the AWT component implementation
+ * of this method is advised.
+ * </p>
+ *
+ * @param c the component whose child should be returned.
+ * @param i the index of the child within the parent component.
+ * @return the <code>Accessible</code> child at index <code>i</code>
+ * in the component, <code>c</code>.
+ * @see javax.accessibility.AccessibleContext#getAccessibleChild
+ * @see java.awt.Component.AccessibleAWTComponent#getAccessibleChild
+ */
+ public static Accessible getAccessibleChild(Component c, int i)
+ {
+ return c.getAccessibleContext().getAccessibleChild(i);
+ }
+
+ /**
+ * <p>
+ * Returns the number of <code>Accessible</code> children within
+ * the supplied component.
+ * </p>
+ * <p>
+ * Caution is advised when using this method, as its operation relies
+ * on the behaviour of varying implementations of an abstract method.
+ * For greater surety, direct use of the AWT component implementation
+ * of this method is advised.
+ * </p>
+ *
+ * @param c the component whose children should be counted.
+ * @return the number of children belonging to the component,
+ * <code>c</code>.
+ * @see javax.accessibility.AccessibleContext#getAccessibleChildrenCount
+ * @see java.awt.Component.AccessibleAWTComponent#getAccessibleChildrenCount
+ */
+ public static int getAccessibleChildrenCount(Component c)
+ {
+ return c.getAccessibleContext().getAccessibleChildrenCount();
+ }
+
+ /**
+ * <p>
+ * Returns the zero-based index of the specified component
+ * within its parent. If the component doesn't have a parent,
+ * -1 is returned.
+ * </p>
+ * <p>
+ * Caution is advised when using this method, as its operation relies
+ * on the behaviour of varying implementations of an abstract method.
+ * For greater surety, direct use of the AWT component implementation
+ * of this method is advised.
+ * </p>
+ *
+ * @param c the component whose parental index should be found.
+ * @return the index of the component within its parent, or -1
+ * if the component doesn't have a parent.
+ * @see javax.accessibility.AccessibleContext#getAccessibleIndexInParent
+ * @see java.awt.Component.AccessibleAWTComponent#getAccessibleIndexInParent
+ */
+ public static int getAccessibleIndexInParent(Component c)
+ {
+ return c.getAccessibleContext().getAccessibleIndexInParent();
+ }
+
+ /**
+ * <p>
+ * Returns a set of <code>AccessibleState</code>s, which represent
+ * the state of the supplied component.
+ * </p>
+ * <p>
+ * Caution is advised when using this method, as its operation relies
+ * on the behaviour of varying implementations of an abstract method.
+ * For greater surety, direct use of the AWT component implementation
+ * of this method is advised.
+ * </p>
+ *
+ * @param c the component whose accessible state should be retrieved.
+ * @return a set of <code>AccessibleState</code> objects, which represent
+ * the state of the supplied component.
+ * @see javax.accessibility.AccessibleContext#getAccessibleStateSet
+ * @see java.awt.Component.AccessibleAWTComponent#getAccessibleStateSet
+ */
+ public static AccessibleStateSet getAccessibleStateSet(Component c)
+ {
+ return c.getAccessibleContext().getAccessibleStateSet();
+ }
+
+ /**
* Calculates the bounds of a component in the component's own coordinate
* space. The result has the same height and width as the component's
* bounds, but its location is set to (0,0).
@@ -144,22 +293,6 @@ public class SwingUtilities implements SwingConstants
}
/**
- * Returns the font metrics object for a given font. The metrics can be
- * used to calculate crude bounding boxes and positioning information,
- * for laying out components with textual elements.
- *
- * @param font The font to get metrics for
- *
- * @return The font's metrics
- *
- * @see java.awt.font.GlyphMetrics
- */
- public static FontMetrics getFontMetrics(Font font)
- {
- return Toolkit.getDefaultToolkit().getFontMetrics(font);
- }
-
- /**
* If <code>comp</code> is a RootPaneContainer, return its JRootPane.
* Otherwise call <code>getAncestorOfClass(JRootPane.class, a)</code>.
*
diff --git a/libjava/javax/swing/Timer.java b/libjava/javax/swing/Timer.java
index afdf4f32d58..0906b8d93bb 100644
--- a/libjava/javax/swing/Timer.java
+++ b/libjava/javax/swing/Timer.java
@@ -72,6 +72,14 @@ public class Timer implements Serializable
/** DOCUMENT ME! */
private Waker waker;
+ private Runnable drainer = new Runnable()
+ {
+ public void run()
+ {
+ drainEvents();
+ }
+ };
+
/**
* DOCUMENT ME!
*/
@@ -81,14 +89,7 @@ public class Timer implements Serializable
{
queue++;
if (queue == 1)
- SwingUtilities.invokeLater(new Runnable()
- {
- public void run()
- {
- drainEvents();
- }
- });
-
+ SwingUtilities.invokeLater(drainer);
}
}
diff --git a/libjava/javax/swing/TransferHandler.java b/libjava/javax/swing/TransferHandler.java
index 16b5016b3af..9d6fa4e3f7c 100644
--- a/libjava/javax/swing/TransferHandler.java
+++ b/libjava/javax/swing/TransferHandler.java
@@ -35,44 +35,119 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
+
package javax.swing;
-import java.io.Serializable;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.Transferable;
+import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
-import java.awt.datatransfer.*;
+import java.io.Serializable;
public class TransferHandler implements Serializable
{
+ static class TransferAction extends AbstractAction
+ {
+ private String command;
+
+ public TransferAction(String command)
+ {
+ this.command = command;
+ }
+
+ public void actionPerformed(ActionEvent event)
+ {
+ JComponent component = (JComponent) event.getSource();
+ TransferHandler transferHandler = component.getTransferHandler();
+ Clipboard clipboard = getClipboard(component);
+
+ if (command.equals(COMMAND_COPY))
+ transferHandler.exportToClipboard(component, clipboard, COPY);
+ else if (command.equals(COMMAND_CUT))
+ transferHandler.exportToClipboard(component, clipboard, MOVE);
+ else if (command.equals(COMMAND_PASTE))
+ {
+ Transferable transferable = clipboard.getContents(null);
+
+ if (transferable != null)
+ transferHandler.importData(component, transferable);
+ }
+ }
+
+ private static Clipboard getClipboard(JComponent component)
+ {
+ SecurityManager sm = System.getSecurityManager();
+
+ if (sm != null)
+ {
+ try
+ {
+ sm.checkSystemClipboardAccess();
+
+ // We may access system clipboard.
+ return component.getToolkit().getSystemClipboard();
+ }
+ catch (SecurityException e)
+ {
+ // We may not access system clipboard.
+ }
+ }
+
+ // Create VM-local clipboard if non exists yet.
+ if (clipboard == null)
+ clipboard = new Clipboard("Clipboard");
+
+ return clipboard;
+ }
+ }
+
private static final long serialVersionUID = -7908749299918704233L;
+ private static final String COMMAND_COPY = "copy";
+ private static final String COMMAND_CUT = "cut";
+ private static final String COMMAND_PASTE = "paste";
+
public static final int NONE = 0;
public static final int COPY = 1;
public static final int MOVE = 2;
public static final int COPY_OR_MOVE = 3;
- static Action getCopyAction ()
+ private static Action copyAction = new TransferAction(COMMAND_COPY);
+ private static Action cutAction = new TransferAction(COMMAND_CUT);
+ private static Action pasteAction = new TransferAction(COMMAND_PASTE);
+
+ /**
+ * Clipboard if system clipboard may not be used.
+ */
+ private static Clipboard clipboard;
+
+ private int sourceActions;
+ private Icon visualRepresentation;
+
+ public static Action getCopyAction()
{
- return null;
+ return copyAction;
}
- static Action getCutAction ()
+ public static Action getCutAction()
{
- return null;
+ return cutAction;
}
- static Action getPasteAction ()
+ public static Action getPasteAction()
{
- return null;
+ return pasteAction;
}
-
protected TransferHandler()
{
- // Do nothing here.
+ this.sourceActions = NONE;
}
public TransferHandler(String property)
{
+ this.sourceActions = property != null ? COPY : NONE;
}
public boolean canImport (JComponent c, DataFlavor[] flavors)
@@ -80,7 +155,7 @@ public class TransferHandler implements Serializable
return false;
}
- public Transferable createTransferable(JComponent c)
+ protected Transferable createTransferable(JComponent c)
{
return null;
}
@@ -99,17 +174,16 @@ public class TransferHandler implements Serializable
public int getSourceActions (JComponent c)
{
- return 0;
+ return sourceActions;
}
public Icon getVisualRepresentation (Transferable t)
{
- return null;
+ return visualRepresentation;
}
public boolean importData (JComponent c, Transferable t)
{
return false;
}
-
}
diff --git a/libjava/javax/swing/UIDefaults.java b/libjava/javax/swing/UIDefaults.java
index c32cebd5a81..a2deae4978d 100644
--- a/libjava/javax/swing/UIDefaults.java
+++ b/libjava/javax/swing/UIDefaults.java
@@ -1,5 +1,5 @@
/* UIDefaults.java -- database for all settings and interface bindings.
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,8 +57,8 @@ import javax.swing.plaf.ComponentUI;
/**
* UIDefaults is a database where all settings and interface bindings are
- * stored into. An PLAF implementation fills one of these (see for example
- * plaf/basic/BasicLookAndFeel.java) with "ButtonUI" -> new BasicButtonUI().
+ * stored into. A PLAF implementation fills one of these (see for example
+ * plaf/basic/BasicLookAndFeel.java) with "ButtonUI" -&gt; new BasicButtonUI().
*
* @author Ronald Veldema (rveldema@cs.vu.nl)
*/
@@ -68,7 +68,7 @@ public class UIDefaults extends Hashtable
private Locale defaultLocale;
private PropertyChangeSupport propertyChangeSupport;
- public interface ActiveValue
+ public static interface ActiveValue
{
Object createValue(UIDefaults table);
}
@@ -92,7 +92,7 @@ public class UIDefaults extends Hashtable
}
}
- public interface LazyValue
+ public static interface LazyValue
{
Object createValue(UIDefaults table);
}
@@ -110,9 +110,9 @@ public class UIDefaults extends Hashtable
try
{
return Class
- .forName (className)
- .getConstructor (new Class[] {})
- .newInstance (new Object[] {});
+ .forName(className)
+ .getConstructor(new Class[] {})
+ .newInstance(new Object[] {});
}
catch (Exception e)
{
@@ -145,54 +145,54 @@ public class UIDefaults extends Hashtable
};
}
- public ProxyLazyValue (String c, Object[] os)
+ public ProxyLazyValue(String c, Object[] os)
{
final String className = c;
final Object[] objs = os;
final Class[] clss = new Class[objs.length];
for (int i = 0; i < objs.length; ++i)
{
- clss[i] = objs[i].getClass ();
+ clss[i] = objs[i].getClass();
}
- inner = new LazyValue ()
+ inner = new LazyValue()
{
- public Object createValue (UIDefaults table)
+ public Object createValue(UIDefaults table)
{
try
{
return Class
- .forName (className)
- .getConstructor (clss)
- .newInstance (objs);
- }
+ .forName(className)
+ .getConstructor(clss)
+ .newInstance(objs);
+ }
catch (Exception e)
- {
+ {
return null;
}
}
};
}
- public ProxyLazyValue (String c, String m, Object[] os)
+ public ProxyLazyValue(String c, String m, Object[] os)
{
final String className = c;
final String methodName = m;
final Object[] objs = os;
final Class[] clss = new Class[objs.length];
for (int i = 0; i < objs.length; ++i)
- {
- clss[i] = objs[i].getClass ();
- }
- inner = new LazyValue ()
+ {
+ clss[i] = objs[i].getClass();
+ }
+ inner = new LazyValue()
{
- public Object createValue(UIDefaults table)
- {
+ public Object createValue(UIDefaults table)
+ {
try
{
return Class
- .forName (className)
- .getMethod (methodName, clss)
- .invoke (null, objs);
+ .forName(className)
+ .getMethod(methodName, clss)
+ .invoke(null, objs);
}
catch (Exception e)
{
@@ -202,9 +202,9 @@ public class UIDefaults extends Hashtable
};
}
- public Object createValue (UIDefaults table)
+ public Object createValue(UIDefaults table)
{
- return inner.createValue (table);
+ return inner.createValue(table);
}
}
@@ -212,46 +212,46 @@ public class UIDefaults extends Hashtable
public UIDefaults()
{
- bundles = new LinkedList ();
- defaultLocale = Locale.getDefault ();
+ bundles = new LinkedList();
+ defaultLocale = Locale.getDefault();
propertyChangeSupport = new PropertyChangeSupport(this);
}
public UIDefaults(Object[] entries)
{
this();
-
- for (int i = 0; (2*i+1) < entries.length; ++i)
- put (entries[2*i], entries[2*i+1]);
- }
+
+ for (int i = 0; (2 * i + 1) < entries.length; ++i)
+ put(entries[2 * i], entries[2 * i + 1]);
+ }
public Object get(Object key)
{
- return this.get (key, getDefaultLocale ());
+ return this.get(key, getDefaultLocale());
}
- public Object get (Object key, Locale loc)
+ public Object get(Object key, Locale loc)
{
Object obj = null;
- if (super.containsKey (key))
+ if (super.containsKey(key))
{
- obj = super.get (key);
+ obj = super.get(key);
}
else if (key instanceof String)
{
String keyString = (String) key;
- ListIterator i = bundles.listIterator (0);
- while (i.hasNext ())
- {
- String bundle_name = (String) i.next ();
+ ListIterator i = bundles.listIterator(0);
+ while (i.hasNext())
+ {
+ String bundle_name = (String) i.next();
ResourceBundle res =
- ResourceBundle.getBundle (bundle_name, loc);
+ ResourceBundle.getBundle(bundle_name, loc);
if (res != null)
{
try
{
- obj = res.getObject (keyString);
+ obj = res.getObject(keyString);
break;
}
catch (MissingResourceException me)
@@ -271,14 +271,14 @@ public class UIDefaults extends Hashtable
if (obj instanceof LazyValue)
{
- Object resolved = ((LazyValue)obj).createValue (this);
- super.remove (key);
- super.put (key, resolved);
+ Object resolved = ((LazyValue) obj).createValue(this);
+ super.remove(key);
+ super.put(key, resolved);
return resolved;
}
else if (obj instanceof ActiveValue)
{
- return ((ActiveValue)obj).createValue (this);
+ return ((ActiveValue) obj).createValue(this);
}
return obj;
@@ -286,19 +286,23 @@ public class UIDefaults extends Hashtable
public Object put(Object key, Object value)
{
- Object old = super.put (key, value);
+ Object old;
+ if (value != null)
+ old = super.put(key, value);
+ else
+ old = super.remove(key);
if (key instanceof String && old != value)
- firePropertyChange ((String) key, old, value);
+ firePropertyChange((String) key, old, value);
return old;
}
public void putDefaults(Object[] entries)
{
- for (int i = 0; (2*i+1) < entries.length; ++i)
+ for (int i = 0; (2 * i + 1) < entries.length; ++i)
{
- super.put (entries[2*i], entries[2*i+1]);
+ super.put(entries[2 * i], entries[2 * i + 1]);
}
- firePropertyChange ("UIDefaults", null, null);
+ firePropertyChange("UIDefaults", null, null);
}
public Font getFont(Object key)
@@ -454,20 +458,20 @@ public class UIDefaults extends Hashtable
{
getUIError ("failed to locate createUI method on " + cls.toString ());
return null;
- }
+ }
try
- {
+ {
return (ComponentUI) factory.invoke (null, new Object[] { target });
- }
+ }
catch (java.lang.reflect.InvocationTargetException ite)
- {
+ {
getUIError ("InvocationTargetException ("+ ite.getTargetException()
+") calling createUI(...) on " + cls.toString ());
return null;
- }
+ }
catch (Exception e)
- {
+ {
getUIError ("exception calling createUI(...) on " + cls.toString ());
return null;
}
@@ -496,12 +500,12 @@ public class UIDefaults extends Hashtable
public void addResourceBundle(String name)
{
- bundles.addFirst (name);
+ bundles.addFirst(name);
}
public void removeResourceBundle(String name)
{
- bundles.remove (name);
+ bundles.remove(name);
}
public void setDefaultLocale(Locale loc)
diff --git a/libjava/javax/swing/UIManager.java b/libjava/javax/swing/UIManager.java
index 9722129ab7c..dfc6a82ac46 100644
--- a/libjava/javax/swing/UIManager.java
+++ b/libjava/javax/swing/UIManager.java
@@ -1,5 +1,5 @@
/* UIManager.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -94,7 +94,7 @@ public class UIManager implements Serializable
*
* @param listener the listener to add
*/
- public static void addPropertyChangeListener (PropertyChangeListener listener)
+ public static void addPropertyChangeListener(PropertyChangeListener listener)
{
// FIXME
}
@@ -104,7 +104,7 @@ public class UIManager implements Serializable
*
* @param listener the listener to remove
*/
- public static void removePropertyChangeListener (PropertyChangeListener listener)
+ public static void removePropertyChangeListener(PropertyChangeListener listener)
{
// FIXME
}
@@ -116,7 +116,7 @@ public class UIManager implements Serializable
*
* @since 1.4
*/
- public static PropertyChangeListener[] getPropertyChangeListeners ()
+ public static PropertyChangeListener[] getPropertyChangeListeners()
{
// FIXME
throw new Error ("Not implemented");
diff --git a/libjava/javax/swing/ViewportLayout.java b/libjava/javax/swing/ViewportLayout.java
index 4738baccd1a..3abf31da385 100644
--- a/libjava/javax/swing/ViewportLayout.java
+++ b/libjava/javax/swing/ViewportLayout.java
@@ -52,7 +52,7 @@ import java.io.Serializable;
*/
public class ViewportLayout implements LayoutManager, Serializable
{
- static final long serialVersionUID = -788225906076097229L;
+ private static final long serialVersionUID = -788225906076097229L;
public ViewportLayout()
{
@@ -63,17 +63,25 @@ public class ViewportLayout implements LayoutManager, Serializable
public void removeLayoutComponent(Component c)
{
}
+
public Dimension preferredLayoutSize(Container parent)
{
JViewport vp = (JViewport)parent;
Component view = vp.getView();
+ if (view != null)
return view.getPreferredSize();
+ else
+ return new Dimension();
}
+
public Dimension minimumLayoutSize(Container parent)
{
JViewport vp = (JViewport)parent;
Component view = vp.getView();
- return view.getMinimumSize();
+ if (view != null)
+ return view.getMinimumSize();
+ else
+ return new Dimension();
}
/**
@@ -113,6 +121,9 @@ public class ViewportLayout implements LayoutManager, Serializable
JViewport port = (JViewport) parent;
Component view = port.getView();
+ if (view == null)
+ return;
+
// These dimensions and positions are in *view space*. Do not mix
// variables in here from port space (eg. parent.getBounds()). This
// function should be entirely in view space, because the methods on
diff --git a/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java
index 6002854c01d..9f85164041b 100644
--- a/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java
+++ b/libjava/javax/swing/colorchooser/DefaultRGBChooserPanel.java
@@ -1,5 +1,5 @@
/* DefaultRGHChooserPanel.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,7 +57,7 @@ import javax.swing.event.ChangeListener;
* This is the default RGB panel for the JColorChooser. The color is selected
* using three sliders that represent the RGB values.
*/
-public class DefaultRGBChooserPanel extends AbstractColorChooserPanel
+class DefaultRGBChooserPanel extends AbstractColorChooserPanel
{
/**
* This class handles the slider value changes for all three sliders.
diff --git a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
index 7e5a4eff0c5..20a72f438a8 100644
--- a/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
+++ b/libjava/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
@@ -1,5 +1,5 @@
/* DefaultSwatchChooserPanel.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -432,7 +432,7 @@ class DefaultSwatchChooserPanel extends AbstractColorChooserPanel
/**
* This class is the recent swatch panel. It holds recently selected colors.
*/
- public static class RecentSwatchPanel extends SwatchPanel
+ static class RecentSwatchPanel extends SwatchPanel
{
/** The array for storing recently stored colors. */
Color[] colors;
diff --git a/libjava/javax/swing/event/EventListenerList.java b/libjava/javax/swing/event/EventListenerList.java
index e7294afcef4..226cac17916 100644
--- a/libjava/javax/swing/event/EventListenerList.java
+++ b/libjava/javax/swing/event/EventListenerList.java
@@ -1,5 +1,5 @@
/* EventListenerList.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.
@@ -84,8 +84,8 @@ import java.util.EventListener;
* }
* }</pre></blockquote>
*
- * @author <a href="mailto:aselkirk@sympatico.ca">Andrew Selkirk</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Andrew Selkirk (aselkirk@sympatico.ca)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class EventListenerList
implements Serializable
diff --git a/libjava/javax/swing/event/MouseInputAdapter.java b/libjava/javax/swing/event/MouseInputAdapter.java
index 23caed0a8d9..b94b5f8d995 100644
--- a/libjava/javax/swing/event/MouseInputAdapter.java
+++ b/libjava/javax/swing/event/MouseInputAdapter.java
@@ -1,5 +1,5 @@
/* MouseInputAdapter.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,72 +44,76 @@ import java.awt.event.MouseEvent;
* MouseInputAdapter
* @author Andrew Selkirk
*/
-public class MouseInputAdapter extends Object
- implements MouseInputListener {
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor MouseInputAdapter
- */
- public MouseInputAdapter() {
- } // MouseInputAdapter()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Mouse clicked
- * @param event Mouse event
- */
- public void mouseClicked(MouseEvent event) {
- } // mouseClicked()
-
- /**
- * Mouse dragged
- * @param event Mouse event
- */
- public void mouseDragged(MouseEvent event) {
- } // mouseDragged()
-
- /**
- * Mouse entered
- * @param event Mouse event
- */
- public void mouseEntered(MouseEvent event) {
- } // mouseEntered()
-
- /**
- * Mouse exited
- * @param event Mouse event
- */
- public void mouseExited(MouseEvent event) {
- } // mouseExited()
-
- /**
- * Mouse moved
- * @param event Mouse event
- */
- public void mouseMoved(MouseEvent event) {
- } // mouseMoved()
-
- /**
- * Mouse pressed
- * @param event Mouse event
- */
- public void mousePressed(MouseEvent event) {
- } // mousePressed()
-
- /**
- * Mouse released
- * @param event Mouse event
- */
- public void mouseReleased(MouseEvent event) {
- } // mouseReleased()
-
-
-} // MouseInputAdapterEvent
+public abstract class MouseInputAdapter implements MouseInputListener
+{
+ /**
+ * Constructor MouseInputAdapter
+ */
+ public MouseInputAdapter()
+ {
+ // Do nothing here.
+ }
+
+ /**
+ * Mouse clicked
+ * @param event Mouse event
+ */
+ public void mouseClicked(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse dragged
+ * @param event Mouse event
+ */
+ public void mouseDragged(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse entered
+ * @param event Mouse event
+ */
+ public void mouseEntered(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse exited
+ * @param event Mouse event
+ */
+ public void mouseExited(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse moved
+ * @param event Mouse event
+ */
+ public void mouseMoved(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse pressed
+ * @param event Mouse event
+ */
+ public void mousePressed(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+
+ /**
+ * Mouse released
+ * @param event Mouse event
+ */
+ public void mouseReleased(MouseEvent event)
+ {
+ // Do nothing by default.
+ }
+}
diff --git a/libjava/javax/swing/plaf/basic/BasicButtonListener.java b/libjava/javax/swing/plaf/basic/BasicButtonListener.java
index 2b4be67697c..48451c2373a 100644
--- a/libjava/javax/swing/plaf/basic/BasicButtonListener.java
+++ b/libjava/javax/swing/plaf/basic/BasicButtonListener.java
@@ -1,4 +1,4 @@
-/* BasicButtonListener.java
+/* BasicButtonListener.java --
Copyright (C) 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,6 +35,7 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
+
package javax.swing.plaf.basic;
import java.awt.event.ActionEvent;
@@ -58,12 +59,19 @@ public class BasicButtonListener
implements MouseListener, MouseMotionListener, FocusListener,
ChangeListener, PropertyChangeListener
{
+ public BasicButtonListener(AbstractButton b)
+ {
+ // Do nothing here.
+ }
+
public void propertyChange(PropertyChangeEvent e)
{
}
+
protected void checkOpacity(AbstractButton b)
{
}
+
public void focusGained(FocusEvent e)
{
if (e.getSource() instanceof AbstractButton)
@@ -86,6 +94,7 @@ public class BasicButtonListener
button.repaint();
}
}
+
public void installKeyboardActions(JComponent c)
{
c.getActionMap().put("pressed",
@@ -114,20 +123,25 @@ public class BasicButtonListener
}
});
}
+
public void uninstallKeyboardActions(JComponent c)
{
c.getActionMap().put("pressed", null);
c.getActionMap().put("released", null);
}
+
public void stateChanged(ChangeEvent e)
{
}
+
public void mouseMoved(MouseEvent e)
{
}
+
public void mouseDragged(MouseEvent e)
{
}
+
public void mouseClicked(MouseEvent e)
{
}
@@ -152,7 +166,6 @@ public class BasicButtonListener
}
}
-
/**
* Accept a mouse release event and set the button's
* "pressed" property to <code>true</code>, if the model
@@ -175,7 +188,6 @@ public class BasicButtonListener
}
}
-
/**
* Accept a mouse enter event and set the button's "rollover" property to
* <code>true</code>, if the button's "rolloverEnabled" property is
diff --git a/libjava/javax/swing/plaf/basic/BasicButtonUI.java b/libjava/javax/swing/plaf/basic/BasicButtonUI.java
index ed04d281254..ed352e76794 100644
--- a/libjava/javax/swing/plaf/basic/BasicButtonUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicButtonUI.java
@@ -1,5 +1,5 @@
-/* BasicButtonUI.java
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* BasicButtonUI.java --
+ 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.plaf.basic;
import java.awt.Color;
@@ -133,10 +134,10 @@ public class BasicButtonUI extends ButtonUI
protected BasicButtonListener createButtonListener(AbstractButton b)
{
- return new BasicButtonListener();
+ return new BasicButtonListener(b);
}
- public void installListeners(AbstractButton b)
+ protected void installListeners(AbstractButton b)
{
listener = createButtonListener(b);
b.addChangeListener(listener);
@@ -146,7 +147,7 @@ public class BasicButtonUI extends ButtonUI
b.addMouseMotionListener(listener);
}
- public void uninstallListeners(AbstractButton b)
+ protected void uninstallListeners(AbstractButton b)
{
b.removeChangeListener(listener);
b.removePropertyChangeListener(listener);
diff --git a/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java b/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
index a0cf5a43fec..5d7bbcd2c33 100644
--- a/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java
@@ -98,7 +98,7 @@ public class BasicCheckBoxMenuItemUI extends BasicMenuItemUI
*/
public void processMouseEvent(JMenuItem item, MouseEvent e,
MenuElement[] path,
- MenuSelectionManager manager)
+ MenuSelectionManager manager)
{
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java b/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java
index b306af71d1d..a55e13c954c 100644
--- a/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java
+++ b/libjava/javax/swing/plaf/basic/BasicComboBoxEditor.java
@@ -46,7 +46,6 @@ import java.awt.event.FocusListener;
import javax.swing.ComboBoxEditor;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
-import javax.swing.plaf.UIResource;
/**
* This is a component that is responsible for displaying/editting selected
diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java b/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java
index 5dc0f489e20..9f61e0d18e2 100644
--- a/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java
+++ b/libjava/javax/swing/plaf/basic/BasicComboBoxRenderer.java
@@ -50,7 +50,6 @@ import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
-import javax.swing.plaf.UIResource;
/**
* This class is renderer for the combo box.
diff --git a/libjava/javax/swing/plaf/basic/BasicComboBoxUI.java b/libjava/javax/swing/plaf/basic/BasicComboBoxUI.java
index 3ba13a2a1e1..9044ed76c86 100644
--- a/libjava/javax/swing/plaf/basic/BasicComboBoxUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicComboBoxUI.java
@@ -1,5 +1,5 @@
/* BasicComboBoxUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -80,6 +80,7 @@ import javax.swing.plaf.ComponentUI;
* UI Delegate for JComboBox
*
* @author Olga Rodimina
+ * @author Robert Schuster
*/
public class BasicComboBoxUI extends ComboBoxUI
{
@@ -783,22 +784,25 @@ public class BasicComboBoxUI extends ComboBoxUI
{
Object currentValue = comboBox.getSelectedItem();
boolean isPressed = arrowButton.getModel().isPressed();
- if (currentValue != null)
- {
- Component comp = comboBox.getRenderer()
+
+ /* Gets the component to be drawn for the current value.
+ * If there is currently no selected item we will take an empty
+ * String as replacement.
+ */
+ Component comp = comboBox.getRenderer()
.getListCellRendererComponent(listBox,
- currentValue,
+ (currentValue != null ? currentValue : ""),
-1,
isPressed,
hasFocus);
- if (! comboBox.isEnabled())
+ if (! comboBox.isEnabled())
comp.setEnabled(false);
- g.translate(borderInsets.left, borderInsets.top);
+ g.translate(borderInsets.left, borderInsets.top);
comp.setBounds(0, 0, bounds.width, bounds.height);
comp.paint(g);
g.translate(-borderInsets.left, -borderInsets.top);
- }
+
comboBox.revalidate();
}
else
@@ -1142,7 +1146,7 @@ public class BasicComboBoxUI extends ComboBoxUI
*/
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JComboBox.ENABLED_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("enabled"))
{
arrowButton.setEnabled(comboBox.isEnabled());
@@ -1150,7 +1154,7 @@ public class BasicComboBoxUI extends ComboBoxUI
comboBox.getEditor().getEditorComponent().setEnabled(comboBox
.isEnabled());
}
- else if (e.getPropertyName().equals(JComboBox.EDITABLE_CHANGED_PROPERTY))
+ else if (e.getPropertyName().equals("editable"))
{
if (comboBox.isEditable())
{
@@ -1166,7 +1170,7 @@ public class BasicComboBoxUI extends ComboBoxUI
comboBox.revalidate();
comboBox.repaint();
}
- else if (e.getPropertyName().equals(JComboBox.MODEL_CHANGED_PROPERTY))
+ else if (e.getPropertyName().equals("dataModel"))
{
// remove ListDataListener from old model and add it to new model
ComboBoxModel oldModel = (ComboBoxModel) e.getOldValue();
diff --git a/libjava/javax/swing/plaf/basic/BasicComboPopup.java b/libjava/javax/swing/plaf/basic/BasicComboPopup.java
index bec7f058f9d..2acc21fa7d4 100644
--- a/libjava/javax/swing/plaf/basic/BasicComboPopup.java
+++ b/libjava/javax/swing/plaf/basic/BasicComboPopup.java
@@ -1,5 +1,5 @@
/* BasicComboPopup.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -938,13 +938,13 @@ public class BasicComboPopup extends JPopupMenu implements ComboPopup
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JComboBox.RENDERER_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("renderer"))
{
list.setCellRenderer((ListCellRenderer) e.getNewValue());
revalidate();
repaint();
}
- if (e.getPropertyName().equals(JComboBox.MODEL_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("dataModel"))
{
list.setModel((ComboBoxModel) e.getNewValue());
revalidate();
diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
index 36bb4ec2e93..fd2832a4073 100644
--- a/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
+++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
@@ -288,6 +288,14 @@ public class BasicInternalFrameTitlePane extends JComponent
protected class TitlePaneLayout implements LayoutManager
{
/**
+ * Creates a new <code>TitlePaneLayout</code> object.
+ */
+ public TitlePaneLayout()
+ {
+ // Do nothing.
+ }
+
+ /**
* This method is called when adding a Component to the Container.
*
* @param name The name to reference the added Component by.
diff --git a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java
index 990a3e3f9e0..594bb7ecf93 100644
--- a/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicInternalFrameUI.java
@@ -821,7 +821,7 @@ public class BasicInternalFrameUI extends InternalFrameUI
if (e instanceof MouseEvent)
{
MouseEvent me = SwingUtilities.convertMouseEvent(frame.getRootPane()
- .getGlassPane(),
+ .getGlassPane(),
(MouseEvent) e,
frame.getRootPane()
.getGlassPane());
@@ -1105,7 +1105,7 @@ public class BasicInternalFrameUI extends InternalFrameUI
installDefaults();
installListeners();
- installComponents();
+ installComponents();
installKeyboardActions();
frame.setOpaque(true);
@@ -1122,7 +1122,7 @@ public class BasicInternalFrameUI extends InternalFrameUI
public void uninstallUI(JComponent c)
{
uninstallKeyboardActions();
- uninstallComponents();
+ uninstallComponents();
uninstallListeners();
uninstallDefaults();
diff --git a/libjava/javax/swing/plaf/basic/BasicLabelUI.java b/libjava/javax/swing/plaf/basic/BasicLabelUI.java
index 46d012ddd58..b278f1f593b 100644
--- a/libjava/javax/swing/plaf/basic/BasicLabelUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicLabelUI.java
@@ -176,12 +176,12 @@ public class BasicLabelUI extends LabelUI implements PropertyChangeListener
if (icon != null)
icon.paintIcon(b, g, ir.x, ir.y);
if (text != null && ! text.equals(""))
- {
- if (b.isEnabled())
- paintEnabledText(b, g, text, tr.x, tr.y + fm.getAscent());
- else
- paintDisabledText(b, g, text, tr.x, tr.y + fm.getAscent());
- }
+ {
+ if (b.isEnabled())
+ paintEnabledText(b, g, text, tr.x, tr.y + fm.getAscent());
+ else
+ paintDisabledText(b, g, text, tr.x, tr.y + fm.getAscent());
+ }
g.setFont(saved_font);
}
diff --git a/libjava/javax/swing/plaf/basic/BasicListUI.java b/libjava/javax/swing/plaf/basic/BasicListUI.java
index 50bbb819f62..b39421798fa 100644
--- a/libjava/javax/swing/plaf/basic/BasicListUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicListUI.java
@@ -686,7 +686,7 @@ public class BasicListUI extends ListUI
{
Rectangle bounds = getCellBounds(list, row, row);
if (bounds.intersects(clip))
- paintCell(g, row, bounds, render, model, sel, lead);
+ paintCell(g, row, bounds, render, model, sel, lead);
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java b/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
index 40bf972f25e..4a0f6d75728 100644
--- a/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
+++ b/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java
@@ -255,7 +255,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel
"Button.foreground", new ColorUIResource(Color.black),
"Button.highlight", new ColorUIResource(Color.white),
"Button.light", new ColorUIResource(Color.lightGray.brighter()),
- "Button.margin", new InsetsUIResource(2, 14, 2, 14),
+ "Button.margin", new InsetsUIResource(2, 2, 2, 2),
"Button.shadow", new ColorUIResource(Color.gray),
"Button.textIconGap", new Integer(4),
"Button.textShiftOffset", new Integer(0),
diff --git a/libjava/javax/swing/plaf/basic/BasicMenuBarUI.java b/libjava/javax/swing/plaf/basic/BasicMenuBarUI.java
index a1920fb5e31..bed2d051cc3 100644
--- a/libjava/javax/swing/plaf/basic/BasicMenuBarUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicMenuBarUI.java
@@ -1,5 +1,5 @@
/* BasicMenuBarUI.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.
@@ -294,9 +294,9 @@ public class BasicMenuBarUI extends MenuBarUI
*/
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JMenuBar.BORDER_PAINTED_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("borderPainted"))
menuBar.repaint();
- if (e.getPropertyName().equals(JMenuBar.MARGIN_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("margin"))
menuBar.repaint();
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java b/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java
index da3f5598d05..ff48a74f074 100644
--- a/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicMenuItemUI.java
@@ -619,9 +619,9 @@ public class BasicMenuItemUI extends MenuItemUI
textRect.y
+ fm.getAscent());
else
- BasicGraphicsUtils.drawString(g, text, 0, textRect.x,
- textRect.y + fm.getAscent());
- }
+ BasicGraphicsUtils.drawString(g, text, 0, textRect.x,
+ textRect.y + fm.getAscent());
+ }
}
/**
@@ -760,7 +760,7 @@ public class BasicMenuItemUI extends MenuItemUI
FontMetrics fm = g.getFontMetrics(acceleratorFont);
if (menuItem.isEnabled())
- g.setColor(acceleratorForeground);
+ g.setColor(acceleratorForeground);
else
// FIXME: should fix this to use 'disabledForeground', but its
// default value in BasicLookAndFeel is null.
diff --git a/libjava/javax/swing/plaf/basic/BasicMenuUI.java b/libjava/javax/swing/plaf/basic/BasicMenuUI.java
index 98af9546a4b..7cd16f9e75e 100644
--- a/libjava/javax/swing/plaf/basic/BasicMenuUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicMenuUI.java
@@ -299,7 +299,7 @@ public class BasicMenuUI extends BasicMenuItemUI
if (i) if this menu is a submenu in some other menu
(ii) or if this menu is in a menu bar and some other menu in a menu bar was just
selected. (If nothing was selected, menu should be pressed before
- it will be selected)
+ it will be selected)
*/
JMenu menu = (JMenu) menuItem;
if (! menu.isTopLevelMenu()
@@ -328,15 +328,15 @@ public class BasicMenuUI extends BasicMenuItemUI
MenuSelectionManager manager = MenuSelectionManager.defaultManager();
JMenu menu = (JMenu) menuItem;
manager.processMouseEvent(e);
-
+
// Menu should be displayed when the menu is pressed only if
// it is top-level menu
if (menu.isTopLevelMenu())
{
if (menu.getPopupMenu().isVisible())
- // If menu is visible and menu button was pressed..
- // then need to cancel the menu
- manager.clearSelectedPath();
+ // If menu is visible and menu button was pressed..
+ // then need to cancel the menu
+ manager.clearSelectedPath();
else
{
// Display the menu
diff --git a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java
index 609fd11ab8a..7d5e0149388 100644
--- a/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicOptionPaneUI.java
@@ -847,17 +847,17 @@ public class BasicOptionPaneUI extends OptionPaneUI
addIcon(messageArea);
JPanel rightSide = new JPanel()
- {
- public Dimension getPreferredSize()
- {
+ {
+ public Dimension getPreferredSize()
+ {
int w = Math.max(optionPane.getSize().width, minimumWidth);
- Insets i = optionPane.getInsets();
- Dimension orig = super.getPreferredSize();
- Dimension value = new Dimension(w - i.left - i.right - iconSize,
- orig.height);
- return value;
- }
- };
+ Insets i = optionPane.getInsets();
+ Dimension orig = super.getPreferredSize();
+ Dimension value = new Dimension(w - i.left - i.right - iconSize,
+ orig.height);
+ return value;
+ }
+ };
rightSide.setLayout(new GridBagLayout());
GridBagConstraints con = createConstraints();
diff --git a/libjava/javax/swing/plaf/basic/BasicProgressBarUI.java b/libjava/javax/swing/plaf/basic/BasicProgressBarUI.java
index 9398ab86c1b..1feb2c4ce45 100644
--- a/libjava/javax/swing/plaf/basic/BasicProgressBarUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicProgressBarUI.java
@@ -1,5 +1,5 @@
/* BasicProgressBarUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -103,7 +103,7 @@ public class BasicProgressBarUI extends ProgressBarUI
{
// Only need to listen for indeterminate changes.
// All other things are done on a repaint.
- if (e.getPropertyName().equals(JProgressBar.INDETERMINATE_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("inderterminate"))
if (((Boolean) e.getNewValue()).booleanValue())
startAnimationTimer();
else
@@ -467,7 +467,7 @@ public class BasicProgressBarUI extends ProgressBarUI
/**
* This method increments the animation index.
*/
- public void incrementAnimationIndex()
+ protected void incrementAnimationIndex()
{
animationIndex++;
//numFrames is like string length, it should be named numFrames or something
diff --git a/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java b/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
index 3b17f3608d0..55cfdc033e5 100644
--- a/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java
@@ -66,11 +66,11 @@ public class BasicRadioButtonMenuItemUI extends BasicMenuItemUI
/**
* Factory method to create a BasicRadioButtonMenuItemUI for the given {@link
* JComponent}, which should be a JRadioButtonMenuItem.
- *
+ *
* @param b The {@link JComponent} a UI is being created for.
- *
+ *
* @return A BasicRadioButtonMenuItemUI for the {@link JComponent}.
- */
+ */
public static ComponentUI createUI(JComponent b)
{
return new BasicRadioButtonMenuItemUI();
@@ -96,7 +96,7 @@ public class BasicRadioButtonMenuItemUI extends BasicMenuItemUI
*/
public void processMouseEvent(JMenuItem item, MouseEvent e,
MenuElement[] path,
- MenuSelectionManager manager)
+ MenuSelectionManager manager)
{
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicRootPaneUI.java b/libjava/javax/swing/plaf/basic/BasicRootPaneUI.java
index 110200e58ab..4923b90b265 100644
--- a/libjava/javax/swing/plaf/basic/BasicRootPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicRootPaneUI.java
@@ -49,17 +49,17 @@ import javax.swing.plaf.RootPaneUI;
public class BasicRootPaneUI extends RootPaneUI
implements PropertyChangeListener
{
- public static ComponentUI createUI(JComponent x)
- {
- return new BasicRootPaneUI();
- }
+ public static ComponentUI createUI(JComponent x)
+ {
+ return new BasicRootPaneUI();
+ }
- public void installUI(JComponent c)
- {
- c.setOpaque(true);
+ public void installUI(JComponent c)
+ {
+ c.setOpaque(true);
c.setBackground(UIManager.getColor("control"));
- super.installUI(c);
- }
+ super.installUI(c);
+ }
public void propertyChange(PropertyChangeEvent event)
{
diff --git a/libjava/javax/swing/plaf/basic/BasicScrollBarUI.java b/libjava/javax/swing/plaf/basic/BasicScrollBarUI.java
index 446726e8bf8..36939b21da0 100644
--- a/libjava/javax/swing/plaf/basic/BasicScrollBarUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicScrollBarUI.java
@@ -1,5 +1,5 @@
/* BasicScrollBarUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -142,13 +142,13 @@ public class BasicScrollBarUI extends ScrollBarUI implements LayoutManager,
*/
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JScrollBar.MODEL_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("model"))
{
((BoundedRangeModel) e.getOldValue()).removeChangeListener(modelListener);
scrollbar.getModel().addChangeListener(modelListener);
getThumbBounds();
}
- else if (e.getPropertyName().equals(JScrollBar.ORIENTATION_CHANGED_PROPERTY))
+ else if (e.getPropertyName().equals("orientation"))
{
incrButton.removeMouseListener(buttonListener);
decrButton.removeMouseListener(buttonListener);
diff --git a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java
index 4d70412479a..b4618b2f7bf 100644
--- a/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicScrollPaneUI.java
@@ -53,11 +53,11 @@ import javax.swing.plaf.ScrollPaneUI;
public class BasicScrollPaneUI extends ScrollPaneUI
implements ScrollPaneConstants
{
-
- public static ComponentUI createUI(final JComponent c)
- {
- return new BasicScrollPaneUI();
- }
+
+ public static ComponentUI createUI(final JComponent c)
+ {
+ return new BasicScrollPaneUI();
+ }
protected void installDefaults(JScrollPane p)
{
@@ -77,9 +77,9 @@ public class BasicScrollPaneUI extends ScrollPaneUI
p.setBorder(null);
}
- public void installUI(final JComponent c)
- {
- super.installUI(c);
+ public void installUI(final JComponent c)
+ {
+ super.installUI(c);
this.installDefaults((JScrollPane)c);
}
@@ -87,29 +87,29 @@ public class BasicScrollPaneUI extends ScrollPaneUI
{
super.uninstallUI(c);
this.uninstallDefaults((JScrollPane)c);
- }
-
+ }
+
- public Dimension getMinimumSize(JComponent c)
- {
- JScrollPane p = (JScrollPane ) c;
- ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout();
- return sl.minimumLayoutSize(c);
- }
-
- public Dimension getPreferredSize(JComponent c)
- {
- JScrollPane p = (JScrollPane ) c;
- ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout();
- return sl.preferredLayoutSize(c);
- }
-
-
- public void paint(Graphics g, JComponent c)
- {
- // do nothing; the normal painting-of-children algorithm, along with
- // ScrollPaneLayout, does all the relevant work.
- }
+ public Dimension getMinimumSize(JComponent c)
+ {
+ JScrollPane p = (JScrollPane ) c;
+ ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout();
+ return sl.minimumLayoutSize(c);
+ }
+
+ public Dimension getPreferredSize(JComponent c)
+ {
+ JScrollPane p = (JScrollPane ) c;
+ ScrollPaneLayout sl = (ScrollPaneLayout) p.getLayout();
+ return sl.preferredLayoutSize(c);
+ }
+
+
+ public void paint(Graphics g, JComponent c)
+ {
+ // do nothing; the normal painting-of-children algorithm, along with
+ // ScrollPaneLayout, does all the relevant work.
+ }
}
diff --git a/libjava/javax/swing/plaf/basic/BasicSliderUI.java b/libjava/javax/swing/plaf/basic/BasicSliderUI.java
index 648e332639b..a08acc9bdad 100644
--- a/libjava/javax/swing/plaf/basic/BasicSliderUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicSliderUI.java
@@ -1,5 +1,5 @@
/* BasicSliderUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -139,7 +139,7 @@ public class BasicSliderUI extends SliderUI
/**
* Helper class that listens to the {@link JSlider}'s model for changes.
*/
- protected class ChangeHandler implements ChangeListener
+ public class ChangeHandler implements ChangeListener
{
/**
* Called when the slider's model has been altered. The UI delegate should
@@ -182,7 +182,7 @@ public class BasicSliderUI extends SliderUI
/**
* Helper class that listens for focus events.
*/
- protected class FocusHandler implements FocusListener
+ public class FocusHandler implements FocusListener
{
/**
* Called when the {@link JSlider} has gained focus. It should repaint
@@ -211,7 +211,7 @@ public class BasicSliderUI extends SliderUI
* Helper class that listens for changes to the properties of the {@link
* JSlider}.
*/
- protected class PropertyChangeHandler implements PropertyChangeListener
+ public class PropertyChangeHandler implements PropertyChangeListener
{
/**
* Called when one of the properties change. The UI should recalculate any
@@ -222,15 +222,15 @@ public class BasicSliderUI extends SliderUI
public void propertyChange(PropertyChangeEvent e)
{
// Check for orientation changes.
- if (e.getPropertyName().equals(JSlider.ORIENTATION_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("orientation"))
recalculateIfOrientationChanged();
- else if (e.getPropertyName().equals(JSlider.MODEL_CHANGED_PROPERTY))
- {
- BoundedRangeModel oldModel = (BoundedRangeModel) e.getOldValue();
- oldModel.removeChangeListener(changeListener);
- slider.getModel().addChangeListener(changeListener);
- calculateThumbLocation();
- }
+ else if (e.getPropertyName().equals("model"))
+ {
+ BoundedRangeModel oldModel = (BoundedRangeModel) e.getOldValue();
+ oldModel.removeChangeListener(changeListener);
+ slider.getModel().addChangeListener(changeListener);
+ calculateThumbLocation();
+ }
// elif the componentOrientation changes (this is a bound property,
// just undocumented) we change leftToRightCache. In Sun's
@@ -247,7 +247,7 @@ public class BasicSliderUI extends SliderUI
* for listening to the timer and moving the thumb in the proper direction
* every interval.
*/
- protected class ScrollListener implements ActionListener
+ public class ScrollListener implements ActionListener
{
/** Indicates which direction the thumb should scroll. */
private transient int direction;
@@ -346,15 +346,15 @@ public class BasicSliderUI extends SliderUI
currentMouseX = e.getX();
currentMouseY = e.getY();
if (slider.getValueIsAdjusting())
- {
- int value;
- if (slider.getOrientation() == JSlider.HORIZONTAL)
- value = valueForXPosition(currentMouseX) - offset;
- else
- value = valueForYPosition(currentMouseY) - offset;
-
- slider.setValue(value);
- }
+ {
+ int value;
+ if (slider.getOrientation() == JSlider.HORIZONTAL)
+ value = valueForXPosition(currentMouseX) - offset;
+ else
+ value = valueForYPosition(currentMouseY) - offset;
+
+ slider.setValue(value);
+ }
}
/**
@@ -391,7 +391,7 @@ public class BasicSliderUI extends SliderUI
value = findClosestTick(value);
// If the thumb is hit, then we don't need to set the timers to move it.
- if (!thumbRect.contains(e.getPoint()))
+ if (! thumbRect.contains(e.getPoint()))
{
// The mouse has hit some other part of the slider.
// The value moves no matter where in the slider you hit.
@@ -403,8 +403,8 @@ public class BasicSliderUI extends SliderUI
else
{
slider.setValueIsAdjusting(true);
- offset = value - slider.getValue();
- }
+ offset = value - slider.getValue();
+ }
}
/**
@@ -419,11 +419,11 @@ public class BasicSliderUI extends SliderUI
currentMouseY = e.getY();
if (slider.getValueIsAdjusting())
- {
- slider.setValueIsAdjusting(false);
- if (slider.getSnapToTicks())
- slider.setValue(findClosestTick(slider.getValue()));
- }
+ {
+ slider.setValueIsAdjusting(false);
+ if (slider.getSnapToTicks())
+ slider.setValue(findClosestTick(slider.getValue()));
+ }
if (scrollTimer != null)
scrollTimer.stop();
}
@@ -862,22 +862,22 @@ public class BasicSliderUI extends SliderUI
public Dimension getPreferredHorizontalSize()
{
Insets insets = slider.getInsets();
-
+
// The width should cover all the labels (which are usually the
// deciding factor of the width)
int width = getWidthOfWidestLabel() * (slider.getLabelTable() == null ? 0
: slider.getLabelTable()
.size());
-
+
// If there are not enough labels.
// This number is pretty much arbitrary, but it looks nice.
if (width < 200)
width = 200;
-
+
// We can only draw inside of the focusRectangle, so we have to
// pad it with insets.
width += insets.left + insets.right + focusInsets.left + focusInsets.right;
-
+
// Height is determined by the thumb, the ticks and the labels.
int height = thumbHeight;
@@ -887,10 +887,10 @@ public class BasicSliderUI extends SliderUI
if (slider.getPaintLabels())
height += getHeightOfTallestLabel();
-
+
height += insets.top + insets.bottom + focusInsets.top
+ focusInsets.bottom;
-
+
return new Dimension(width, height);
}
@@ -903,19 +903,19 @@ public class BasicSliderUI extends SliderUI
public Dimension getPreferredVerticalSize()
{
Insets insets = slider.getInsets();
-
+
int height = getHeightOfTallestLabel() * (slider.getLabelTable() == null
? 0 : slider.getLabelTable()
.size());
-
+
if (height < 200)
height = 200;
-
+
height += insets.top + insets.bottom + focusInsets.top
+ focusInsets.bottom;
int width = thumbHeight;
-
+
if (slider.getPaintTicks() && slider.getMajorTickSpacing() > 0
|| slider.getMinorTickSpacing() > 0)
width += tickHeight;
@@ -924,7 +924,7 @@ public class BasicSliderUI extends SliderUI
width += getWidthOfWidestLabel();
width += insets.left + insets.right + focusInsets.left + focusInsets.right;
-
+
return new Dimension(width, height);
}
@@ -960,7 +960,7 @@ public class BasicSliderUI extends SliderUI
* @return The dimensions of the preferred size.
*/
public Dimension getPreferredSize(JComponent c)
- {
+ {
if (slider.getOrientation() == JSlider.HORIZONTAL)
return getPreferredHorizontalSize();
else
@@ -1000,22 +1000,22 @@ public class BasicSliderUI extends SliderUI
else
return getPreferredVerticalSize();
}
-
+
/**
* This method calculates all the sizes of the rectangles by delegating to
* the helper methods calculateXXXRect.
*/
- protected void calculateGeometry()
- {
- calculateFocusRect();
- calculateContentRect();
- calculateThumbSize();
- calculateTrackBuffer();
- calculateTrackRect();
- calculateTickRect();
- calculateLabelRect();
- calculateThumbLocation();
- }
+ protected void calculateGeometry()
+ {
+ calculateFocusRect();
+ calculateContentRect();
+ calculateThumbSize();
+ calculateTrackBuffer();
+ calculateTrackRect();
+ calculateTickRect();
+ calculateLabelRect();
+ calculateThumbLocation();
+ }
/**
* This method calculates the size and position of the focusRect. This
@@ -1412,7 +1412,7 @@ public class BasicSliderUI extends SliderUI
leftToRightCache = slider.getComponentOrientation() != ComponentOrientation.RIGHT_TO_LEFT;
// FIXME: This next line is only here because the above line is here.
calculateThumbLocation();
-
+
if (slider.getPaintTrack())
paintTrack(g);
if (slider.getPaintTicks())
@@ -1573,8 +1573,8 @@ public class BasicSliderUI extends SliderUI
{
double loc = tickRect.x;
double increment = (max == min) ? 0
- : majorSpace * (double) tickRect.width / (max
- - min);
+ : majorSpace * (double) tickRect.width / (max
+ - min);
if (drawInverted())
{
loc += tickRect.width;
@@ -1590,8 +1590,8 @@ public class BasicSliderUI extends SliderUI
{
double loc = tickRect.height + tickRect.y;
double increment = (max == min) ? 0
- : -majorSpace * (double) tickRect.height / (max
- - min);
+ : -majorSpace * (double) tickRect.height / (max
+ - min);
if (drawInverted())
{
loc = tickRect.y;
@@ -1610,8 +1610,8 @@ public class BasicSliderUI extends SliderUI
{
double loc = tickRect.x;
double increment = (max == min) ? 0
- : minorSpace * (double) tickRect.width / (max
- - min);
+ : minorSpace * (double) tickRect.width / (max
+ - min);
if (drawInverted())
{
loc += tickRect.width;
@@ -1627,8 +1627,8 @@ public class BasicSliderUI extends SliderUI
{
double loc = tickRect.height + tickRect.y;
double increment = (max == min) ? 0
- : -minorSpace * (double) tickRect.height / (max
- - min);
+ : -minorSpace * (double) tickRect.height / (max
+ - min);
if (drawInverted())
{
loc = tickRect.y;
@@ -1800,13 +1800,13 @@ public class BasicSliderUI extends SliderUI
Dimension dim = label.getPreferredSize();
int w = (int) dim.getWidth();
int h = (int) dim.getHeight();
-
+
int max = slider.getMaximum();
int min = slider.getMinimum();
if (value > max || value < min)
return;
-
+
// value
// |
// ------------
@@ -2027,7 +2027,7 @@ public class BasicSliderUI extends SliderUI
protected void scrollDueToClickInTrack(int dir)
{
scrollTimer.stop();
-
+
scrollListener.setDirection(dir);
scrollListener.setScrollByBlock(true);
diff --git a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java
index 1ee1bb6d993..987f86bdb1b 100644
--- a/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java
+++ b/libjava/javax/swing/plaf/basic/BasicSplitPaneDivider.java
@@ -160,6 +160,7 @@ public class BasicSplitPaneDivider extends Container
*/
private transient int currentDividerLocation = 1;
+ /** DOCUMENT ME! */
private transient Border tmpBorder = new Border()
{
public Insets getBorderInsets(Component c)
diff --git a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java
index 7073086aae5..a533f0820aa 100644
--- a/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java
@@ -1,5 +1,5 @@
-/* BasicTabbedPaneUI.java
- Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+/* BasicTabbedPaneUI.java --
+ 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.plaf.basic;
import java.awt.Color;
@@ -75,7 +76,6 @@ import javax.swing.plaf.TabbedPaneUI;
import javax.swing.plaf.UIResource;
import javax.swing.text.View;
-
/**
* This is the Basic Look and Feel's UI delegate for JTabbedPane.
*/
@@ -84,7 +84,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
/**
* A helper class that handles focus.
*/
- protected class FocusHandler extends FocusAdapter
+ public class FocusHandler extends FocusAdapter
{
/**
* This method is called when the component gains focus.
@@ -112,7 +112,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
* sets the index appropriately. In SCROLL_TAB_MODE, this class also
* handles the mouse clicks on the scrolling buttons.
*/
- protected class MouseHandler extends MouseAdapter
+ public class MouseHandler extends MouseAdapter
{
/**
* This method is called when the mouse is pressed. The index cannot
@@ -184,13 +184,13 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
*/
public void propertyChange(PropertyChangeEvent e)
{
- if (e.getPropertyName().equals(JTabbedPane.TAB_LAYOUT_POLICY_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("tabLayoutPolicy"))
{
layoutManager = createLayoutManager();
tabPane.setLayout(layoutManager);
}
- else if (e.getPropertyName().equals(JTabbedPane.TAB_PLACEMENT_CHANGED_PROPERTY)
+ else if (e.getPropertyName().equals("tabPlacement")
&& tabPane.getTabLayoutPolicy() == JTabbedPane.SCROLL_TAB_LAYOUT)
{
incrButton = createIncreaseButton();
@@ -1459,7 +1459,7 @@ public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants
*
* @return A layout manager given the tab layout policy.
*/
- public LayoutManager createLayoutManager()
+ protected LayoutManager createLayoutManager()
{
if (tabPane.getTabLayoutPolicy() == JTabbedPane.WRAP_TAB_LAYOUT)
return new TabbedPaneLayout();
diff --git a/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java
index ea7dfc0cd6d..ebc702ad393 100644
--- a/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTableHeaderUI.java
@@ -191,8 +191,8 @@ public class BasicTableHeaderUI
int spacing = 0;
if (header.getTable() != null
- && header.getTable().getInterCellSpacing() != null)
- spacing = header.getTable().getInterCellSpacing().width;
+ && header.getTable().getIntercellSpacing() != null)
+ spacing = header.getTable().getIntercellSpacing().width;
for (int i = 0; i < ncols; ++i)
{
diff --git a/libjava/javax/swing/plaf/basic/BasicTableUI.java b/libjava/javax/swing/plaf/basic/BasicTableUI.java
index eb0054bb645..9be6d60e918 100644
--- a/libjava/javax/swing/plaf/basic/BasicTableUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTableUI.java
@@ -104,45 +104,12 @@ public class BasicTableUI
{
Point begin, curr;
- private int getRowForPoint(Point p)
- {
- int y0 = table.getLocation().y;
- int nrows = table.getRowCount();
- Dimension gap = table.getInterCellSpacing();
- int height = table.getRowHeight() + (gap == null ? 0 : gap.height);
- int y = p.y;
- for (int i = 0; i < nrows; ++i)
- {
- if (0 <= y && y < height)
- return i;
- y -= height;
- }
- return -1;
- }
-
- private int getColForPoint(Point p)
- {
- int x0 = table.getLocation().x;
- int ncols = table.getColumnCount();
- Dimension gap = table.getInterCellSpacing();
- TableColumnModel cols = table.getColumnModel();
- int x = p.x;
- for (int i = 0; i < ncols; ++i)
- {
- int width = cols.getColumn(i).getWidth() + (gap == null ? 0 : gap.width);
- if (0 <= x && x < width)
- return i;
- x -= width;
- }
- return -1;
- }
-
private void updateSelection()
{
if (table.getRowSelectionAllowed())
{
- int lo_row = getRowForPoint(begin);
- int hi_row = getRowForPoint(curr);
+ int lo_row = table.rowAtPoint(begin);
+ int hi_row = table.rowAtPoint(curr);
ListSelectionModel rowModel = table.getSelectionModel();
if (lo_row != -1 && hi_row != -1)
rowModel.setSelectionInterval(lo_row, hi_row);
@@ -150,8 +117,8 @@ public class BasicTableUI
if (table.getColumnSelectionAllowed())
{
- int lo_col = getColForPoint(begin);
- int hi_col = getColForPoint(curr);
+ int lo_col = table.columnAtPoint(begin);
+ int hi_col = table.columnAtPoint(curr);
ListSelectionModel colModel = table.getColumnModel().getSelectionModel();
if (lo_col != -1 && hi_col != -1)
colModel.setSelectionInterval(lo_col, hi_col);
@@ -294,7 +261,7 @@ public class BasicTableUI
int x = x0;
int y = y0;
- Dimension gap = table.getInterCellSpacing();
+ Dimension gap = table.getIntercellSpacing();
int ymax = clip.y + clip.height;
int xmax = clip.x + clip.width;
diff --git a/libjava/javax/swing/plaf/basic/BasicTextPaneUI.java b/libjava/javax/swing/plaf/basic/BasicTextPaneUI.java
index 615c74b2bff..ac20a0a990c 100644
--- a/libjava/javax/swing/plaf/basic/BasicTextPaneUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTextPaneUI.java
@@ -38,23 +38,22 @@ exception statement from your version. */
package javax.swing.plaf.basic;
-import java.beans.PropertyChangeEvent;
-
import javax.swing.JComponent;
import javax.swing.plaf.ComponentUI;
import javax.swing.text.Element;
import javax.swing.text.PlainView;
import javax.swing.text.View;
-public class BasicTextPaneUI extends BasicTextUI
+public class BasicTextPaneUI extends BasicEditorPaneUI
{
- public static ComponentUI createUI(JComponent comp)
+ public BasicTextPaneUI()
{
- return new BasicTextPaneUI();
+ // Do nothing here.
}
- public BasicTextPaneUI()
+ public static ComponentUI createUI(JComponent comp)
{
+ return new BasicTextPaneUI();
}
public View create(Element elem)
diff --git a/libjava/javax/swing/plaf/basic/BasicTextUI.java b/libjava/javax/swing/plaf/basic/BasicTextUI.java
index b3d03dbae68..a94ca2bb420 100644
--- a/libjava/javax/swing/plaf/basic/BasicTextUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTextUI.java
@@ -1,5 +1,5 @@
-/* BasicTextUI.java
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* BasicTextUI.java --
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -94,7 +94,7 @@ public abstract class BasicTextUI extends TextUI
{
}
}
-
+
private class RootView extends View
{
private View view;
@@ -104,6 +104,8 @@ public abstract class BasicTextUI extends TextUI
super(null);
}
+ // View methods.
+
public ViewFactory getViewFactory()
{
// FIXME: Handle EditorKit somehow.
@@ -111,8 +113,8 @@ public abstract class BasicTextUI extends TextUI
}
public void setView(View v)
- {
- if (view != null)
+ {
+ if (view != null)
view.setParent(null);
if (v != null)
@@ -122,17 +124,17 @@ public abstract class BasicTextUI extends TextUI
}
public Container getContainer()
- {
+ {
return textComponent;
}
-
+
public float getPreferredSpan(int axis)
{
if (view != null)
return view.getPreferredSpan(axis);
return Integer.MAX_VALUE;
- }
+ }
public void paint(Graphics g, Shape s)
{
@@ -140,9 +142,12 @@ public abstract class BasicTextUI extends TextUI
view.paint(g, s);
}
- protected Rectangle modelToView(int position, Shape a, Position.Bias bias)
+ public Shape modelToView(int position, Shape a, Position.Bias bias)
throws BadLocationException
{
+ if (view == null)
+ return null;
+
return ((PlainView) view).modelToView(position, a, bias).getBounds();
}
}
@@ -183,7 +188,7 @@ public abstract class BasicTextUI extends TextUI
{
return textComponent;
}
-
+
public void installUI(final JComponent c)
{
super.installUI(c);
@@ -327,11 +332,12 @@ public abstract class BasicTextUI extends TextUI
rootView.setView(null);
textComponent.removePropertyChangeListener(updateHandler);
- textComponent = null;
uninstallDefaults();
uninstallListeners();
uninstallKeyboardActions();
+
+ textComponent = null;
}
protected void uninstallDefaults()
@@ -360,7 +366,7 @@ public abstract class BasicTextUI extends TextUI
return new Dimension((int) w, (int) h);
}
-
+
public final void paint(Graphics g, JComponent c)
{
paintSafely(g);
@@ -442,13 +448,13 @@ public abstract class BasicTextUI extends TextUI
public View create(Element elem)
{
- // subclasses have to implement this to get this functionality
+ // Subclasses have to implement this to get this functionality.
return null;
}
public View create(Element elem, int p0, int p1)
{
- // subclasses have to implement this to get this functionality
+ // Subclasses have to implement this to get this functionality.
return null;
}
diff --git a/libjava/javax/swing/plaf/basic/BasicToolBarUI.java b/libjava/javax/swing/plaf/basic/BasicToolBarUI.java
index 8315fc05f09..fad0108e096 100644
--- a/libjava/javax/swing/plaf/basic/BasicToolBarUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicToolBarUI.java
@@ -1,5 +1,5 @@
/* BasicToolBarUI.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -92,40 +92,40 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
private static Border rolloverBorder;
/** The last known BorderLayout constraint before floating. */
- protected String constraintBeforeFloating;
+ protected String constraintBeforeFloating;
/** The last known orientation of the JToolBar before floating. */
private int lastGoodOrientation;
/** The color of the border when it is dockable. */
- protected Color dockingBorderColor;
+ protected Color dockingBorderColor;
/** The background color of the JToolBar when it is dockable. */
- protected Color dockingColor;
+ protected Color dockingColor;
/** The docking listener responsible for mouse events on the JToolBar. */
- protected MouseInputListener dockingListener;
+ protected MouseInputListener dockingListener;
/** The window used for dragging the JToolBar. */
- protected BasicToolBarUI.DragWindow dragWindow;
+ protected BasicToolBarUI.DragWindow dragWindow;
/** The color of the border when it is not dockable. */
- protected Color floatingBorderColor;
+ protected Color floatingBorderColor;
/** The background color of the JToolBar when it is not dockable. */
- protected Color floatingColor;
+ protected Color floatingColor;
/** The index of the focused component. */
- protected int focusedCompIndex;
+ protected int focusedCompIndex;
/** The PropertyChangeListener for the JToolBar. */
- protected PropertyChangeListener propertyListener;
+ protected PropertyChangeListener propertyListener;
/** The JToolBar this UI delegate is responsible for. */
- protected JToolBar toolBar;
+ protected JToolBar toolBar;
/** The Container listener for the JToolBar. */
- protected ContainerListener toolBarContListener;
+ protected ContainerListener toolBarContListener;
/** The Focus listener for the JToolBar. */
protected FocusListener toolBarFocusListener;
@@ -152,11 +152,11 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
private transient int cachedOrientation;
/**
- * This method creates a new BasicToolBarUI object for the given JToolBar.
+ * This method creates a new <code>BasicToolBarUI</code> object for the given JToolBar.
*/
public BasicToolBarUI()
{
- super();
+ // Do nothing here.
}
/**
@@ -168,13 +168,10 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return Whether the JToolBar can dock.
*/
- protected boolean canDock(Component c, Point p)
- {
- if (areaOfClick(c, p) != -1)
- return true;
-
- return false;
- }
+ public boolean canDock(Component c, Point p)
+ {
+ return areaOfClick(c, p) != -1;
+ }
/**
* This helper method returns the position of the JToolBar if it can dock.
@@ -219,10 +216,10 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new DockingListener for the JToolBar.
*/
- protected MouseInputListener createDockingListener()
- {
+ protected MouseInputListener createDockingListener()
+ {
return new DockingListener(toolBar);
- }
+ }
/**
* This method creates a new DragWindow for the given JToolBar.
@@ -231,10 +228,10 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new DragWindow.
*/
- protected BasicToolBarUI.DragWindow createDragWindow(JToolBar toolbar)
- {
+ protected BasicToolBarUI.DragWindow createDragWindow(JToolBar toolbar)
+ {
return new DragWindow();
- }
+ }
/**
* This method creates a new floating frame for the JToolBar. By default,
@@ -245,11 +242,11 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new floating frame.
*/
- protected JFrame createFloatingFrame(JToolBar toolbar)
- {
+ protected JFrame createFloatingFrame(JToolBar toolbar)
+ {
// FIXME: Though deprecated, this should still work.
- return null;
- }
+ return null;
+ }
/**
* This method creates a new floating window for the JToolBar. This is the
@@ -259,21 +256,21 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new floating window.
*/
- protected RootPaneContainer createFloatingWindow(JToolBar toolbar)
- {
+ protected RootPaneContainer createFloatingWindow(JToolBar toolbar)
+ {
// This one is used by default though.
return new ToolBarDialog();
- }
+ }
/**
* This method creates a new WindowListener for the JToolBar.
*
* @return A new WindowListener.
*/
- protected WindowListener createFrameListener()
- {
+ protected WindowListener createFrameListener()
+ {
return new FrameListener();
- }
+ }
/**
* This method creates a new nonRolloverBorder for JButtons when the
@@ -281,20 +278,20 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new NonRolloverBorder.
*/
- protected Border createNonRolloverBorder()
- {
+ protected Border createNonRolloverBorder()
+ {
return new EtchedBorderUIResource();
- }
+ }
/**
* This method creates a new PropertyChangeListener for the JToolBar.
*
* @return A new PropertyChangeListener.
*/
- protected PropertyChangeListener createPropertyListener()
- {
+ protected PropertyChangeListener createPropertyListener()
+ {
return new PropertyListener();
- }
+ }
/**
* This method creates a new rollover border for JButtons when the
@@ -302,8 +299,8 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @return A new rollover border.
*/
- protected Border createRolloverBorder()
- {
+ protected Border createRolloverBorder()
+ {
return new EtchedBorderUIResource()
{
public void paintBorder(Component c, Graphics g, int x, int y,
@@ -316,27 +313,27 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
}
}
};
- }
+ }
/**
* This method creates a new Container listener for the JToolBar.
*
* @return A new Container listener.
*/
- protected ContainerListener createToolBarContListener()
- {
+ protected ContainerListener createToolBarContListener()
+ {
return new ToolBarContListener();
- }
+ }
/**
* This method creates a new FocusListener for the JToolBar.
*
* @return A new FocusListener for the JToolBar.
*/
- protected FocusListener createToolBarFocusListener()
- {
+ protected FocusListener createToolBarFocusListener()
+ {
return new ToolBarFocusListener();
- }
+ }
/**
* This method creates a new UI delegate for the given JComponent.
@@ -357,8 +354,8 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param position The mouse cursor coordinates relative to the JToolBar.
* @param origin The screen position of the JToolBar.
*/
- protected void dragTo(Point position, Point origin)
- {
+ protected void dragTo(Point position, Point origin)
+ {
int loc = areaOfClick(origParent,
SwingUtilities.convertPoint(toolBar, position,
origParent));
@@ -390,7 +387,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
{
w = cachedBounds.height;
h = cachedBounds.width;
- }
+ }
Point p = dragWindow.getOffset();
Insets insets = toolBar.getInsets();
@@ -414,8 +411,8 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param origin The screen position of the JToolBar before the drag session
* started.
*/
- protected void floatAt(Point position, Point origin)
- {
+ protected void floatAt(Point position, Point origin)
+ {
Point p = new Point(position);
int aoc = areaOfClick(origParent,
SwingUtilities.convertPoint(toolBar, p, origParent));
@@ -434,7 +431,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
{
floatFrame.hide();
newParent = origParent;
- }
+ }
String constraint;
switch (aoc)
@@ -499,9 +496,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The docking color.
*/
public Color getDockingColor()
- {
- return dockingColor;
- }
+ {
+ return dockingColor;
+ }
/**
* This method returns the Color which is displayed when over a floating
@@ -510,9 +507,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The color which is displayed when over a floating area.
*/
public Color getFloatingColor()
- {
- return floatingColor;
- }
+ {
+ return floatingColor;
+ }
/**
* This method returns the maximum size of the given JComponent for this UI.
@@ -522,9 +519,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The maximum size for this UI.
*/
public Dimension getMaximumSize(JComponent c)
- {
+ {
return getPreferredSize(c);
- }
+ }
/**
* This method returns the minimum size of the given JComponent for this UI.
@@ -534,9 +531,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The minimum size for this UI.
*/
public Dimension getMinimumSize(JComponent c)
- {
+ {
return getPreferredSize(c);
- }
+ }
/**
* This method returns the preferred size of the given JComponent for this
@@ -547,15 +544,15 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return The preferred size for this UI.
*/
public Dimension getPreferredSize(JComponent c)
- {
+ {
return toolBar.getLayout().preferredLayoutSize(c);
- }
+ }
/**
* This method installs the needed components for the JToolBar.
*/
- protected void installComponents()
- {
+ protected void installComponents()
+ {
floatFrame = (Window) createFloatingWindow(toolBar);
dragWindow = createDragWindow(toolBar);
@@ -569,13 +566,13 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
borders = new Hashtable();
fillHashtable();
- }
+ }
/**
* This method installs the defaults as specified by the look and feel.
*/
- protected void installDefaults()
- {
+ protected void installDefaults()
+ {
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
toolBar.setBorder(new ToolBarBorder());
@@ -588,24 +585,24 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
floatingBorderColor = defaults.getColor("ToolBar.floatingForeground");
floatingColor = defaults.getColor("ToolBar.floatingBackground");
- }
+ }
/**
* This method installs the keyboard actions for the JToolBar as specified
* by the look and feel.
*/
- protected void installKeyboardActions()
- {
+ protected void installKeyboardActions()
+ {
// FIXME: implement.
- }
+ }
/**
* This method installs listeners for the JToolBar.
*
* @param toolbar The JToolBar to register listeners for.
*/
- protected void installListeners(JToolBar toolbar)
- {
+ protected void installListeners(JToolBar toolbar)
+ {
dockingListener = createDockingListener();
toolBar.addMouseListener(dockingListener);
toolBar.addMouseMotionListener(dockingListener);
@@ -630,13 +627,13 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The JComponent whose children need to have non rollover borders
* installed.
*/
- protected void installNonRolloverBorders(JComponent c)
- {
+ protected void installNonRolloverBorders(JComponent c)
+ {
Component[] components = toolBar.getComponents();
for (int i = 0; i < components.length; i++)
setBorderToNonRollover(components[i]);
- }
+ }
/**
* This method installs normal (or their original) borders for each
@@ -645,13 +642,13 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The JComponent whose children need to have their original
* borders installed.
*/
- protected void installNormalBorders(JComponent c)
- {
+ protected void installNormalBorders(JComponent c)
+ {
Component[] components = toolBar.getComponents();
for (int i = 0; i < components.length; i++)
setBorderToNormal(components[i]);
- }
+ }
/**
* This method install rollover borders for each component inside the given
@@ -660,13 +657,13 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The JComponent whose children need to have rollover borders
* installed.
*/
- protected void installRolloverBorders(JComponent c)
- {
+ protected void installRolloverBorders(JComponent c)
+ {
Component[] components = toolBar.getComponents();
for (int i = 0; i < components.length; i++)
setBorderToRollover(components[i]);
- }
+ }
/**
* This method fills the borders hashtable with a list of components that
@@ -694,20 +691,20 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @param c The JComponent to install a UI for.
*/
- public void installUI(JComponent c)
- {
- super.installUI(c);
+ public void installUI(JComponent c)
+ {
+ super.installUI(c);
- if (c instanceof JToolBar)
- {
- toolBar = (JToolBar) c;
- toolBar.setOpaque(true);
+ if (c instanceof JToolBar)
+ {
+ toolBar = (JToolBar) c;
+ toolBar.setOpaque(true);
installDefaults();
installComponents();
- installListeners(toolBar);
+ installListeners(toolBar);
installKeyboardActions();
- }
- }
+ }
+ }
/**
* This method returns whether the JToolBar is floating.
@@ -715,9 +712,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return Whether the JToolBar is floating.
*/
public boolean isFloating()
- {
+ {
return floatFrame.isVisible();
- }
+ }
/**
* This method returns whether rollover borders have been set.
@@ -725,9 +722,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @return Whether rollover borders have been set.
*/
public boolean isRolloverBorders()
- {
+ {
return toolBar.isRollover();
- }
+ }
/**
* This method navigates in the given direction giving focus to the next
@@ -735,10 +732,10 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @param direction The direction to give focus to.
*/
- protected void navigateFocusedComp(int direction)
- {
+ protected void navigateFocusedComp(int direction)
+ {
// FIXME: Implement.
- }
+ }
/**
* This method sets the border of the given component to a non rollover
@@ -746,45 +743,45 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
*
* @param c The Component whose border needs to be set.
*/
- protected void setBorderToNonRollover(Component c)
- {
+ protected void setBorderToNonRollover(Component c)
+ {
if (c instanceof JButton)
{
JButton b = (JButton) c;
b.setRolloverEnabled(false);
b.setBorder(nonRolloverBorder);
}
- }
+ }
/**
* This method sets the border of the given component to its original value.
*
* @param c The Component whose border needs to be set.
*/
- protected void setBorderToNormal(Component c)
- {
+ protected void setBorderToNormal(Component c)
+ {
if (c instanceof JButton)
{
JButton b = (JButton) c;
Border border = (Border) borders.get(b);
b.setBorder(border);
}
- }
+ }
/**
* This method sets the border of the given component to a rollover border.
*
* @param c The Component whose border needs to be set.
*/
- protected void setBorderToRollover(Component c)
- {
+ protected void setBorderToRollover(Component c)
+ {
if (c instanceof JButton)
{
JButton b = (JButton) c;
b.setRolloverEnabled(true);
b.setBorder(rolloverBorder);
}
- }
+ }
/**
* This method sets the docking color.
@@ -792,9 +789,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The docking color.
*/
public void setDockingColor(Color c)
- {
- dockingColor = c;
- }
+ {
+ dockingColor = c;
+ }
/**
* This method sets the floating property for the JToolBar.
@@ -816,9 +813,9 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The floating color.
*/
public void setFloatingColor(Color c)
- {
+ {
floatingColor = c;
- }
+ }
/**
* This method sets the floating location of the JToolBar.
@@ -866,7 +863,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* This method uninstall UI installed components from the JToolBar.
*/
protected void uninstallComponents()
- {
+ {
installNormalBorders(toolBar);
borders = null;
rolloverBorder = null;
@@ -890,21 +887,21 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
dockingColor = null;
floatingBorderColor = null;
floatingColor = null;
- }
+ }
/**
* This method uninstalls keyboard actions installed by the UI.
*/
protected void uninstallKeyboardActions()
- {
+ {
// FIXME: implement.
- }
+ }
/**
* This method uninstalls listeners installed by the UI.
*/
protected void uninstallListeners()
- {
+ {
toolBar.removeFocusListener(toolBarFocusListener);
toolBarFocusListener = null;
@@ -917,7 +914,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
toolBar.removeMouseMotionListener(dockingListener);
toolBar.removeMouseListener(dockingListener);
dockingListener = null;
- }
+ }
/**
* This method uninstalls the UI.
@@ -925,7 +922,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* @param c The JComponent that is having this UI removed.
*/
public void uninstallUI(JComponent c)
- {
+ {
uninstallKeyboardActions();
uninstallListeners();
uninstallComponents();
@@ -937,7 +934,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
* This is the MouseHandler class that allows the user to drag the JToolBar
* in and out of the parent and dock it if it can.
*/
- protected class DockingListener implements MouseInputListener
+ public class DockingListener implements MouseInputListener
{
/** Whether the JToolBar is being dragged. */
protected boolean isDragging;
@@ -1032,7 +1029,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
{
if (e.getX() > insets.left)
return;
- }
+ }
else
{
if (e.getY() > insets.top)
@@ -1221,7 +1218,7 @@ public class BasicToolBarUI extends ToolBarUI implements SwingConstants
public void propertyChange(PropertyChangeEvent e)
{
// FIXME: need name properties so can change floatFrame title.
- if (e.getPropertyName().equals(JToolBar.ROLLOVER_CHANGED_PROPERTY))
+ if (e.getPropertyName().equals("rollover"))
setRolloverBorders(toolBar.isRollover());
}
}
diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI.java b/libjava/javax/swing/plaf/basic/BasicTreeUI.java
index 93e3900750a..db74f067ef0 100644
--- a/libjava/javax/swing/plaf/basic/BasicTreeUI.java
+++ b/libjava/javax/swing/plaf/basic/BasicTreeUI.java
@@ -45,14 +45,13 @@ import java.awt.Graphics;
import java.awt.Rectangle;
import javax.swing.JComponent;
+import javax.swing.JTree;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
-import javax.swing.JTree;
import javax.swing.plaf.TreeUI;
-import javax.swing.tree.DefaultTreeCellRenderer;
-import javax.swing.tree.TreePath;
import javax.swing.tree.TreeModel;
+import javax.swing.tree.TreePath;
/**
* A delegate providing the user interface for <code>JTree</code>
diff --git a/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
index fb6f27b88c1..b33205004b0 100644
--- a/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
+++ b/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java
@@ -36,35 +36,275 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
-
package javax.swing.plaf.metal;
import javax.swing.UIDefaults;
+import javax.swing.plaf.ColorUIResource;
+import javax.swing.plaf.FontUIResource;
import javax.swing.plaf.basic.BasicLookAndFeel;
public class MetalLookAndFeel extends BasicLookAndFeel
{
private static final long serialVersionUID = 6680646159193457980L;
-
- public boolean isNativeLookAndFeel() { return true; }
- public boolean isSupportedLookAndFeel() { return true; }
- public String getDescription() { return "Metal look and feel"; }
- public String getID() { return "MetalLookAndFeel"; }
- public String getName() { return "MetalLookAndFeel"; }
-
-
- UIDefaults LAF_defaults;
-
- public MetalLookAndFeel()
- {
- }
-
- public UIDefaults getDefaults()
- {
- if (LAF_defaults == null)
- LAF_defaults = super.getDefaults();
-
- // Returns the default values for this look and feel.
- return LAF_defaults;
- }
- }
+ private static MetalTheme theme;
+ private UIDefaults LAF_defaults;
+
+ public MetalLookAndFeel()
+ {
+ createDefaultTheme();
+ }
+
+ protected void createDefaultTheme()
+ {
+ setCurrentTheme(new DefaultMetalTheme());
+ }
+
+ public boolean isNativeLookAndFeel()
+ {
+ return true;
+ }
+
+ public boolean isSupportedLookAndFeel()
+ {
+ return true;
+ }
+
+ public String getDescription()
+ {
+ return "Metal look and feel";
+ }
+
+ public String getID()
+ {
+ return "MetalLookAndFeel";
+ }
+
+ public String getName()
+ {
+ return "MetalLookAndFeel";
+ }
+
+ public UIDefaults getDefaults()
+ {
+ if (LAF_defaults == null)
+ LAF_defaults = super.getDefaults();
+
+ // Returns the default values for this look and feel.
+ return LAF_defaults;
+ }
+
+ public static ColorUIResource getAcceleratorForeground()
+ {
+ return theme.getAcceleratorForeground();
+ }
+
+ public static ColorUIResource getAcceleratorSelectedForeground()
+ {
+ return theme.getAcceleratorSelectedForeground();
+ }
+
+ public static ColorUIResource getBlack()
+ {
+ return theme.getBlack();
+ }
+
+ public static ColorUIResource getControl()
+ {
+ return theme.getControl();
+ }
+
+ public static ColorUIResource getControlDarkShadow()
+ {
+ return theme.getControlDarkShadow();
+ }
+
+ public static ColorUIResource getControlDisabled()
+ {
+ return theme.getControlDisabled();
+ }
+
+ public static ColorUIResource getControlHighlight()
+ {
+ return theme.getControlHighlight();
+ }
+
+ public static ColorUIResource getControlInfo()
+ {
+ return theme.getControlInfo();
+ }
+
+ public static ColorUIResource getControlShadow()
+ {
+ return theme.getControlShadow();
+ }
+
+ public static ColorUIResource getControlTextColor()
+ {
+ return theme.getControlTextColor();
+ }
+
+ public static FontUIResource getControlTextFont()
+ {
+ return theme.getControlTextFont();
+ }
+
+ public static ColorUIResource getDesktopColor()
+ {
+ return theme.getDesktopColor();
+ }
+
+ public static ColorUIResource getFocusColor()
+ {
+ return theme.getFocusColor();
+ }
+
+ public static ColorUIResource getHighlightedTextColor()
+ {
+ return theme.getHighlightedTextColor();
+ }
+
+ public static ColorUIResource getInactiveControlTextColor()
+ {
+ return theme.getInactiveControlTextColor();
+ }
+
+ public static ColorUIResource getInactiveSystemTextColor()
+ {
+ return theme.getInactiveSystemTextColor();
+ }
+
+ public static ColorUIResource getMenuBackground()
+ {
+ return theme.getMenuBackground();
+ }
+
+ public static ColorUIResource getMenuDisabledForeground()
+ {
+ return theme.getMenuDisabledForeground();
+ }
+
+ public static ColorUIResource getMenuForeground()
+ {
+ return theme.getMenuForeground();
+ }
+
+ public static ColorUIResource getMenuSelectedBackground()
+ {
+ return theme.getMenuSelectedBackground();
+ }
+
+ public static ColorUIResource getMenuSelectedForeground()
+ {
+ return theme.getMenuSelectedForeground();
+ }
+
+ public static FontUIResource getMenuTextFont()
+ {
+ return theme.getMenuTextFont();
+ }
+
+ public static ColorUIResource getPrimaryControl()
+ {
+ return theme.getPrimaryControl();
+ }
+
+ public static ColorUIResource getPrimaryControlDarkShadow()
+ {
+ return theme.getPrimaryControlDarkShadow();
+ }
+
+ public static ColorUIResource getPrimaryControlHighlight()
+ {
+ return theme.getPrimaryControlHighlight();
+ }
+
+ public static ColorUIResource getPrimaryControlInfo()
+ {
+ return theme.getPrimaryControlInfo();
+ }
+
+ public static ColorUIResource getPrimaryControlShadow()
+ {
+ return theme.getPrimaryControlShadow();
+ }
+
+ public static ColorUIResource getSeparatorBackground()
+ {
+ return theme.getSeparatorBackground();
+ }
+
+ public static ColorUIResource getSeparatorForeground()
+ {
+ return theme.getSeparatorForeground();
+ }
+
+ public static FontUIResource getSubTextFont()
+ {
+ return theme.getSubTextFont();
+ }
+
+ public static ColorUIResource getSystemTextColor()
+ {
+ return theme.getSystemTextColor();
+ }
+
+ public static FontUIResource getSystemTextFont()
+ {
+ return theme.getSystemTextFont();
+ }
+
+ public static ColorUIResource getTextHighlightColor()
+ {
+ return theme.getTextHighlightColor();
+ }
+
+ public static ColorUIResource getUserTextColor()
+ {
+ return theme.getUserTextColor();
+ }
+
+ public static FontUIResource getUserTextFont()
+ {
+ return theme.getUserTextFont();
+ }
+
+ public static ColorUIResource getWhite()
+ {
+ return theme.getWhite();
+ }
+
+ public static ColorUIResource getWindowBackground()
+ {
+ return theme.getWindowBackground();
+ }
+
+ public static ColorUIResource getWindowTitleBackground()
+ {
+ return theme.getWindowTitleBackground();
+ }
+
+ public static FontUIResource getWindowTitleFont()
+ {
+ return theme.getWindowTitleFont();
+ }
+
+ public static ColorUIResource getWindowTitleForeground()
+ {
+ return theme.getWindowTitleForeground();
+ }
+
+ public static ColorUIResource getWindowTitleInactiveBackground()
+ {
+ return theme.getWindowTitleInactiveBackground();
+ }
+
+ public static ColorUIResource getWindowTitleInactiveForeground()
+ {
+ return theme.getWindowTitleInactiveForeground();
+ }
+
+ public static void setCurrentTheme(MetalTheme theme)
+ {
+ MetalLookAndFeel.theme = theme;
+ }
+}
diff --git a/libjava/javax/swing/table/DefaultTableCellRenderer.java b/libjava/javax/swing/table/DefaultTableCellRenderer.java
index ac5edb99586..790d0450f7f 100644
--- a/libjava/javax/swing/table/DefaultTableCellRenderer.java
+++ b/libjava/javax/swing/table/DefaultTableCellRenderer.java
@@ -1,5 +1,5 @@
/* DefaultTableCellRenderer.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.
@@ -199,8 +199,8 @@ public class DefaultTableCellRenderer extends JLabel
* <p>This method needs to be overridden in a subclass to actually
* do something.</p>
*/
- public void firePropertyChange(String propertyName, Object oldValue,
- Object newValue)
+ protected void firePropertyChange(String propertyName, Object oldValue,
+ Object newValue)
{
// Does nothing.
}
diff --git a/libjava/javax/swing/table/DefaultTableColumnModel.java b/libjava/javax/swing/table/DefaultTableColumnModel.java
index b66b6951a99..3a8b1a3bf6d 100644
--- a/libjava/javax/swing/table/DefaultTableColumnModel.java
+++ b/libjava/javax/swing/table/DefaultTableColumnModel.java
@@ -66,37 +66,37 @@ public class DefaultTableColumnModel
private static final long serialVersionUID = 6580012493508960512L;
/**
- * tableColumns
+ * Columns that this model keeps track of.
*/
protected Vector tableColumns;
/**
- * selectionModel
+ * Selection Model that keeps track of columns selection
*/
protected ListSelectionModel selectionModel;
/**
- * columnMargin
+ * Space between two columns. By default it is set to 1
*/
protected int columnMargin;
/**
- * listenerList
+ * listenerList keeps track of all listeners registered with this model
*/
protected EventListenerList listenerList = new EventListenerList();
/**
- * changeEvent
+ * changeEvent is fired when change occurs in one of the columns properties
*/
protected transient ChangeEvent changeEvent = new ChangeEvent(this);
/**
- * columnSelectionAllowed
+ * Indicates whether columns can be selected
*/
protected boolean columnSelectionAllowed;
/**
- * totalColumnWidth
+ * Total width of all the columns in this model
*/
protected int totalColumnWidth;
@@ -106,103 +106,116 @@ public class DefaultTableColumnModel
public DefaultTableColumnModel()
{
tableColumns = new Vector();
- setSelectionModel(new DefaultListSelectionModel());
+ setSelectionModel(createSelectionModel());
columnMargin = 1;
columnSelectionAllowed = false;
}
/**
- * addColumn
- * @param value0 TODO
+ * addColumn adds column to the model. This method fires ColumnAdded
+ * event to model's registered TableColumnModelListeners.
+ *
+ * @param col column to add
*/
public void addColumn(TableColumn col)
{
tableColumns.add(col);
invalidateWidthCache();
+ fireColumnAdded(new TableColumnModelEvent(this,0,tableColumns.size()));
}
/**
- * removeColumn
- * @param value0 TODO
+ * removeColumn removes table column from the model. This method fires
+ * ColumnRemoved event to model's registered TableColumnModelListeners.
+ *
+ * @param col column to be removed
*/
public void removeColumn(TableColumn col)
{
+ int index = getColumnIndex(col);
+ fireColumnRemoved(new TableColumnModelEvent(this,index,0));
tableColumns.remove(col);
invalidateWidthCache();
}
/**
- * moveColumn
- * @param value0 TODO
- * @param value1 TODO
+ * moveColumn moves column at index i to index j. This method fires
+ * ColumnMoved event to model's registered TableColumnModelListeners.
+ *
+ * @param i index of the column that will be moved
+ * @param j index of column's new location
*/
public void moveColumn(int i, int j)
{
Object tmp = tableColumns.get(i);
tableColumns.set(i, tableColumns.get(j));
tableColumns.set(j, tmp);
+ fireColumnAdded(new TableColumnModelEvent(this,i,j));
}
/**
- * setColumnMargin
- * @param value0 TODO
+ * setColumnMargin sets margin of the columns.
+ * @param m new column margin
*/
public void setColumnMargin(int m)
{
columnMargin = m;
+ fireColumnMarginChanged();
}
- /**
- * getColumnCount
- * @return int
- */
+ /**
+ * getColumnCount returns number of columns in the model
+ * @return int number of columns in the model
+ */
public int getColumnCount()
{
return tableColumns.size();
}
- /**
- * getColumns
+ /**
+ * getColumns
* @return Enumeration
- */
+ */
public Enumeration getColumns()
{
return tableColumns.elements();
}
- /**
- * getColumnIndex
- * @param value0 TODO
- * @return int
+ /**
+ * getColumnIndex returns index of the specified column
+ *
+ * @param identifier identifier of the column
+ * @return int index of the given column
*/
- public int getColumnIndex(Object obj)
+ public int getColumnIndex(Object identifier)
{
- return tableColumns.indexOf(obj, 0);
+ return tableColumns.indexOf(identifier, 0);
}
- /**
- * getColumn
- * @param value0 TODO
- * @return TableColumn
+ /**
+ * getColumn returns column at the specified index
+ * @param i index of the column
+ * @return TableColumn column at the specified index
*/
public TableColumn getColumn(int i)
{
return (TableColumn) tableColumns.get(i);
}
- /**
- * getColumnMargin
- * @return int
- */
+ /**
+ * getColumnMargin returns column margin
+ * @return int column margin
+ */
public int getColumnMargin()
{
return columnMargin;
}
- /**
- * getColumnIndexAtX
- * @param value0 TODO
- * @return int
+ /**
+ * getColumnIndexAtX returns column that contains specified x-coordinate.
+ * @param x x-coordinate that column should contain
+ * @return int index of the column that contains specified x-coordinate relative
+ * to this column model
*/
public int getColumnIndexAtX(int x)
{
@@ -217,10 +230,12 @@ public class DefaultTableColumnModel
return -1;
}
- /**
- * getTotalColumnWidth
- * @return int
- */
+ /**
+ * getTotalColumnWidth returns total width of all the columns including
+ * column's margins.
+ *
+ * @return total width of all the columns
+ */
public int getTotalColumnWidth()
{
if (totalColumnWidth == -1)
@@ -229,8 +244,10 @@ public class DefaultTableColumnModel
}
/**
- * setSelectionModel
- * @param model TODO
+ * setSelectionModel sets selection model that will be used by this ColumnTableModel
+ * to keep track of currently selected columns
+ *
+ * @param model new selection model
* @exception IllegalArgumentException if model is null
*/
public void setSelectionModel(ListSelectionModel model)
@@ -242,53 +259,124 @@ public class DefaultTableColumnModel
selectionModel.addListSelectionListener(this);
}
- /**
- * getSelectionModel
- * @return ListSelectionModel
- */
+ /**
+ * getSelectionModel returns selection model
+ * @return ListSelectionModel selection model
+ */
public ListSelectionModel getSelectionModel()
{
return selectionModel;
}
/**
- * setColumnSelectionAllowed
- * @param value0 TODO
+ * setColumnSelectionAllowed sets whether column selection is allowed
+ * or not.
+ *
+ * @param flag true if column selection is allowed and false otherwise
*/
- public void setColumnSelectionAllowed(boolean a)
+ public void setColumnSelectionAllowed(boolean flag)
{
- columnSelectionAllowed = a;
+ columnSelectionAllowed = flag;
}
- /**
- * getColumnSelectionAllowed
- * @return boolean
- */
+ /**
+ * getColumnSelectionAllowed indicates whether column selection is
+ * allowed or not.
+ *
+ * @return boolean true if column selection is allowed and false otherwise.
+ */
public boolean getColumnSelectionAllowed()
{
return columnSelectionAllowed;
}
- /**
- * getSelectedColumns
- * @return int[]
- */
+ /**
+ * getSelectedColumns returns array containing indexes of currently
+ * selected columns
+ *
+ * @return int[] array containing indexes of currently selected columns
+ */
public int[] getSelectedColumns()
{
- return null; // TODO
+ // FIXME: Implementation of this method was taken from private method
+ // JTable.getSelections(), which is used in various places in JTable
+ // including selected row calculations and cannot be simply removed.
+ // This design should be improved to illuminate duplication of code.
+
+ ListSelectionModel lsm = this.selectionModel;
+ int sz = getSelectedColumnCount();
+ int [] ret = new int[sz];
+
+ int lo = lsm.getMinSelectionIndex();
+ int hi = lsm.getMaxSelectionIndex();
+ int j = 0;
+ java.util.ArrayList ls = new java.util.ArrayList();
+ if (lo != -1 && hi != -1)
+ {
+ switch (lsm.getSelectionMode())
+ {
+ case ListSelectionModel.SINGLE_SELECTION:
+ ret[0] = lo;
+ break;
+
+ case ListSelectionModel.SINGLE_INTERVAL_SELECTION:
+ for (int i = lo; i <= hi; ++i)
+ ret[j++] = i;
+ break;
+
+ case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:
+ for (int i = lo; i <= hi; ++i)
+ if (lsm.isSelectedIndex(i))
+ ret[j++] = i;
+ break;
+ }
+ }
+ return ret;
}
- /**
- * getSelectedColumnCount
- * @return int
- */
+ /**
+ * getSelectedColumnCount returns number of currently selected columns
+ * @return int number of currently selected columns
+ */
public int getSelectedColumnCount()
{
- return 0; // TODO
+ // FIXME: Implementation of this method was taken from private method
+ // JTable.countSelections(), which is used in various places in JTable
+ // including selected row calculations and cannot be simply removed.
+ // This design should be improved to illuminate duplication of code.
+
+ ListSelectionModel lsm = this.selectionModel;
+ int lo = lsm.getMinSelectionIndex();
+ int hi = lsm.getMaxSelectionIndex();
+ int sum = 0;
+
+ if (lo != -1 && hi != -1)
+ {
+ switch (lsm.getSelectionMode())
+ {
+ case ListSelectionModel.SINGLE_SELECTION:
+ sum = 1;
+ break;
+
+ case ListSelectionModel.SINGLE_INTERVAL_SELECTION:
+ sum = hi - lo + 1;
+ break;
+
+ case ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:
+ for (int i = lo; i <= hi; ++i)
+ if (lsm.isSelectedIndex(i))
+ ++sum;
+ break;
+ }
+ }
+
+ return sum;
}
/**
- * addColumnModelListener
+ * addColumnModelListener adds specified listener to the model's
+ * listener list
+ *
* @param listener the listener to add
*/
public void addColumnModelListener(TableColumnModelListener listener)
@@ -297,7 +385,9 @@ public class DefaultTableColumnModel
}
/**
- * removeColumnModelListener
+ * removeColumnModelListener removes specified listener from the model's
+ * listener list.
+ *
* @param listener the listener to remove
*/
public void removeColumnModelListener(TableColumnModelListener listener)
@@ -315,35 +405,53 @@ public class DefaultTableColumnModel
}
/**
- * fireColumnAdded
- * @param value0 TODO
+ * fireColumnAdded fires TableColumnModelEvent to registered
+ * TableColumnModelListeners to indicate that column was added
+ *
+ * @param e TableColumnModelEvent
*/
- protected void fireColumnAdded(TableColumnModelEvent value0)
- {
- // TODO
+ protected void fireColumnAdded(TableColumnModelEvent e)
+ {
+ TableColumnModelListener[] listeners = getColumnModelListeners();
+
+ for (int i=0; i< listeners.length; i++)
+ listeners[i].columnAdded(e);
}
- /**
- * fireColumnRemoved
- * @param value0 TODO
- */
- protected void fireColumnRemoved(TableColumnModelEvent value0)
+ /**
+ * fireColumnAdded fires TableColumnModelEvent to registered
+ * TableColumnModelListeners to indicate that column was removed
+ *
+ * @param e TableColumnModelEvent
+ */
+ protected void fireColumnRemoved(TableColumnModelEvent e)
{
- // TODO
+ TableColumnModelListener[] listeners = getColumnModelListeners();
+
+ for (int i=0; i< listeners.length; i++)
+ listeners[i].columnRemoved(e);
}
- /**
- * fireColumnMoved
- * @param value0 TODO
- */
- protected void fireColumnMoved(TableColumnModelEvent value0)
+ /**
+ * fireColumnAdded fires TableColumnModelEvent to registered
+ * TableColumnModelListeners to indicate that column was moved
+ *
+ * @param e TableColumnModelEvent
+ */
+ protected void fireColumnMoved(TableColumnModelEvent e)
{
- // TODO
+ TableColumnModelListener[] listeners = getColumnModelListeners();
+
+ for (int i=0; i< listeners.length; i++)
+ listeners[i].columnMoved(e);
}
/**
- * fireColumnSelectionChanged
- * @param value0 TODO
+ * fireColumnSelectionChanged fires TableColumnModelEvent to model's
+ * registered TableColumnModelListeners to indicate that different column
+ * was selected.
+ *
+ * @param evt ListSelectionEvent
*/
protected void fireColumnSelectionChanged(ListSelectionEvent evt)
{
@@ -352,54 +460,66 @@ public class DefaultTableColumnModel
((TableColumnModelListener)listeners[i]).columnSelectionChanged(evt);
}
- /**
- * fireColumnMarginChanged
- */
+ /**
+ * fireColumnMarginChanged fires TableColumnModelEvent to model's
+ * registered TableColumnModelListeners to indicate that column margin
+ * was changed.
+ */
protected void fireColumnMarginChanged()
{
- // TODO
+ EventListener [] listeners = getListeners(TableColumnModelListener.class);
+ for (int i = 0; i < listeners.length; ++i)
+ ((TableColumnModelListener)listeners[i]).columnMarginChanged(changeEvent);
}
- /**
- * getListeners
- * @param value0 TODO
- * @return EventListener[]
+ /**
+ * getListeners returns currently registered listeners with this model.
+ * @param listenerType type of listeners to return
+ *
+ * @return EventListener[] array of model's listeners of the specified type
*/
- public EventListener[] getListeners(Class klass)
+ public EventListener[] getListeners(Class listenerType)
{
- return listenerList.getListeners(klass);
+ return listenerList.getListeners(listenerType);
}
- /**
- * propertyChange
- * @param value0 TODO
- */
- public void propertyChange(PropertyChangeEvent value0)
+ /**
+ * propertyChange handles changes occuring in the properties of the
+ * model's columns.
+ *
+ * @param evt PropertyChangeEvent
+ */
+ public void propertyChange(PropertyChangeEvent evt)
{
- // TODO
+ if (evt.getPropertyName().equals(TableColumn.COLUMN_WIDTH_PROPERTY))
+ invalidateWidthCache();
}
- /**
- * valueChanged
- * @param value0 TODO
- */
- public void valueChanged(ListSelectionEvent value0)
+ /**
+ * valueChanged handles changes in the selectionModel.
+ * @param e ListSelectionEvent
+ */
+ public void valueChanged(ListSelectionEvent e)
{
- fireColumnSelectionChanged(value0);
+ fireColumnSelectionChanged(e);
}
- /**
- * createSelectionModel
- * @return ListSelectionModel
- */
+ /**
+ * createSelectionModel creates selection model that will keep track
+ * of currently selected column(s)
+ *
+ * @return ListSelectionModel selection model of the columns
+ */
protected ListSelectionModel createSelectionModel()
- {
- return null; // TODO
+ {
+ return new DefaultListSelectionModel();
}
- /**
- * recalcWidthCache
- */
+ /**
+ * recalcWidthCache calculates total width of the columns.
+ * If the current cache of the total width is in invalidated state,
+ * then width is recalculated. Otherwise nothing is done.
+ */
protected void recalcWidthCache()
{
if (totalColumnWidth == -1)
@@ -412,9 +532,9 @@ public class DefaultTableColumnModel
}
}
- /**
- * invalidateWidthCache
- */
+ /**
+ * invalidateWidthCache
+ */
private void invalidateWidthCache()
{
totalColumnWidth = -1;
diff --git a/libjava/javax/swing/table/DefaultTableModel.java b/libjava/javax/swing/table/DefaultTableModel.java
index dd8e3b84612..aab4202012e 100644
--- a/libjava/javax/swing/table/DefaultTableModel.java
+++ b/libjava/javax/swing/table/DefaultTableModel.java
@@ -1,5 +1,5 @@
/* DefaultTableModel.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.
@@ -44,15 +44,19 @@ import java.util.Vector;
import javax.swing.event.TableModelEvent;
/**
- * DefaultTableModel
+ * A two dimensional data structure used to store <code>Object</code>
+ * instances, usually for display in a <code>JTable</code> component.
+ *
* @author Andrew Selkirk
*/
public class DefaultTableModel extends AbstractTableModel
implements Serializable
{
static final long serialVersionUID = 6680042567037222321L;
+
/**
- * dataVector
+ * Storage for the rows in the table (each row is itself
+ * a <code>Vector</code>).
*/
protected Vector dataVector;
@@ -62,7 +66,7 @@ public class DefaultTableModel extends AbstractTableModel
protected Vector columnIdentifiers;
/**
- * Constructor DefaultTableModel
+ * Creates an empty table with zero rows and zero columns.
*/
public DefaultTableModel()
{
@@ -70,9 +74,11 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified number of rows and columns.
+ * All cells in the table are initially empty (set to <code>null</code>).
+ *
+ * @param numRows the number of rows.
+ * @param numColumns the number of columns.
*/
public DefaultTableModel(int numRows, int numColumns)
{
@@ -81,20 +87,28 @@ public class DefaultTableModel extends AbstractTableModel
for (int i = 0; i < numColumns; i++)
{
defaultNames.add(super.getColumnName(i));
+ }
+ for (int r = 0; r < numRows; r++)
+ {
Vector tmp = new Vector(numColumns);
tmp.setSize(numColumns);
data.add(tmp);
- }
- setDataVector(defaultNames, data);
+ }
+ setDataVector(data, defaultNames);
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified column names and number of
+ * rows. The number of columns is determined by the number of column
+ * names supplied.
+ *
+ * @param columnNames the column names.
+ * @param numRows the number of rows.
*/
public DefaultTableModel(Vector columnNames, int numRows)
{
+ if (numRows < 0)
+ throw new IllegalArgumentException("numRows < 0");
Vector data = new Vector();
int numColumns = 0;
@@ -111,9 +125,10 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified column names and row count.
+ *
+ * @param columnNames the column names.
+ * @param numRows the number of rows.
*/
public DefaultTableModel(Object[] columnNames, int numRows)
{
@@ -121,9 +136,10 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified data values and column names.
+ *
+ * @param data the data values.
+ * @param columnNames the column names.
*/
public DefaultTableModel(Vector data, Vector columnNames)
{
@@ -131,9 +147,10 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * Constructor DefaultTableModel
- * @param value0 TODO
- * @param value1 TODO
+ * Creates a new table with the specified data values and column names.
+ *
+ * @param data the data values.
+ * @param columnNames the column names.
*/
public DefaultTableModel(Object[][] data, Object[] columnNames)
{
@@ -141,8 +158,9 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * getDataVector
- * @returns Vector
+ * Returns the vector containing the row data for the table.
+ *
+ * @returns The data vector.
*/
public Vector getDataVector()
{
@@ -150,9 +168,16 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setDataVector
- * @param value0 TODO
- * @param value1 TODO
+ * Sets the data and column identifiers for the table. The data vector
+ * contains a <code>Vector</code> for each row in the table - if the
+ * number of objects in each row does not match the number of column
+ * names specified, the row data is truncated or expanded (by adding
+ * <code>null</code> values) as required.
+ *
+ * @param data the data for the table (a vector of row vectors).
+ * @param columnNames the column names.
+ *
+ * @throws NullPointerException if either argument is <code>null</code>.
*/
public void setDataVector(Vector data, Vector columnNames)
{
@@ -164,9 +189,12 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setDataVector
- * @param value0 TODO
- * @param value1 TODO
+ * Sets the data and column identifiers for the table.
+ *
+ * @param data the data for the table.
+ * @param columnNames the column names.
+ *
+ * @throws NullPointerException if either argument is <code>null</code>.
*/
public void setDataVector(Object[][] data, Object[] columnNames)
{
@@ -175,8 +203,11 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * newDataAvailable
- * @param value0 TODO
+ * Sends the specified <code>event</code> to all registered listeners.
+ * This method is equivalent to
+ * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}.
+ *
+ * @param event the event.
*/
public void newDataAvailable(TableModelEvent event)
{
@@ -184,8 +215,11 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * newRowsAdded
- * @param value0 TODO
+ * Sends the specified <code>event</code> to all registered listeners.
+ * This method is equivalent to
+ * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}.
+ *
+ * @param event the event.
*/
public void newRowsAdded(TableModelEvent event)
{
@@ -193,8 +227,11 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * rowsRemoved
- * @param value0 TODO
+ * Sends the specified <code>event</code> to all registered listeners.
+ * This method is equivalent to
+ * {@link AbstractTableModel#fireTableChanged(TableModelEvent)}.
+ *
+ * @param event the event.
*/
public void rowsRemoved(TableModelEvent event)
{
@@ -202,18 +239,26 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setColumnIdentifiers
- * @param value0 TODO
+ * Sets the column identifiers, updates the data rows (truncating
+ * or padding each row with <code>null</code> values) to match the
+ * number of columns, and sends a {@link TableModelEvent} to all
+ * registered listeners.
+ *
+ * @param columnIdentifiers the column identifiers.
*/
public void setColumnIdentifiers(Vector columnIdentifiers)
{
this.columnIdentifiers = columnIdentifiers;
- setColumnCount(columnIdentifiers.size());
+ setColumnCount((columnIdentifiers == null ? 0 : columnIdentifiers.size()));
}
/**
- * setColumnIdentifiers
- * @param value0 TODO
+ * Sets the column identifiers, updates the data rows (truncating
+ * or padding each row with <code>null</code> values) to match the
+ * number of columns, and sends a {@link TableModelEvent} to all
+ * registered listeners.
+ *
+ * @param columnIdentifiers the column identifiers.
*/
public void setColumnIdentifiers(Object[] columnIdentifiers)
{
@@ -221,8 +266,9 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setNumRows
- * @param value0 TODO
+ * This method is obsolete, use {@link #setRowCount(int)} instead.
+ *
+ * @param numRows the number of rows.
*/
public void setNumRows(int numRows)
{
@@ -230,18 +276,40 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * setRowCount
- * @param value0 TODO
+ * Sets the number of rows in the table. If <code>rowCount</code> is less
+ * than the current number of rows in the table, rows are discarded.
+ * If <code>rowCount</code> is greater than the current number of rows in
+ * the table, new (empty) rows are added.
+ *
+ * @param the row count.
*/
public void setRowCount(int rowCount)
{
- dataVector.setSize(rowCount);
- fireTableDataChanged();
+ int existingRowCount = dataVector.size();
+ if (rowCount < existingRowCount)
+ {
+ dataVector.setSize(rowCount);
+ fireTableRowsDeleted(rowCount,existingRowCount-1);
+ }
+ else
+ {
+ int rowsToAdd = rowCount - existingRowCount;
+ for (int i = 0; i < rowsToAdd; i++)
+ {
+ Vector tmp = new Vector();
+ tmp.setSize(columnIdentifiers.size());
+ dataVector.add(tmp);
+ }
+ fireTableRowsInserted(existingRowCount,rowCount-1);
+ }
}
/**
- * setColumnCount
- * @param value0 TODO
+ * Sets the number of columns in the table. Existing rows are truncated
+ * or padded with <code>null</code> values to match the new column count.
+ * A {@link TableModelEvent} is sent to all registered listeners.
+ *
+ * @param columnCount the column count.
*/
public void setColumnCount(int columnCount)
{
@@ -249,13 +317,16 @@ public class DefaultTableModel extends AbstractTableModel
{
((Vector) dataVector.get(i)).setSize(columnCount);
}
- columnIdentifiers.setSize(columnCount);
+ if (columnIdentifiers != null)
+ columnIdentifiers.setSize(columnCount);
fireTableDataChanged();
}
/**
- * addColumn
- * @param value0 TODO
+ * Adds a column with the specified name to the table. All cell values
+ * for the column are initially set to <code>null</code>.
+ *
+ * @param columnName the column name (<code>null</code> permitted).
*/
public void addColumn(Object columnName)
{
@@ -263,21 +334,52 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * addColumn
- * @param value0 TODO
- * @param value1 TODO
+ * Adds a column with the specified name and data values to the table.
+ *
+ * @param columnName the column name (<code>null</code> permitted).
+ * @param columnData the column data.
*/
public void addColumn(Object columnName, Vector columnData)
{
- addColumn(columnName, columnData == null ? null : columnData.toArray());
+ Object[] dataArray = null;
+ if (columnData != null)
+ {
+ int rowCount = dataVector.size();
+ if (columnData.size() < rowCount)
+ columnData.setSize(rowCount);
+ dataArray = columnData.toArray();
+ }
+ addColumn(columnName, dataArray);
}
/**
- * addColumn
- * @param value0 TODO
- * @param value1 TODO
+ * Adds a column with the specified name and data values to the table.
+ *
+ * @param columnName the column name (<code>null</code> permitted).
+ * @param columnData the column data.
*/
public void addColumn(Object columnName, Object[] columnData) {
+ if (columnData != null)
+ {
+ // check columnData array for cases where the number of items
+ // doesn't match the number of rows in the existing table
+ if (columnData.length > dataVector.size())
+ {
+ int rowsToAdd = columnData.length - dataVector.size();
+ for (int i = 0; i < rowsToAdd; i++)
+ {
+ Vector tmp = new Vector();
+ tmp.setSize(columnIdentifiers.size());
+ dataVector.add(tmp);
+ }
+ }
+ else if (columnData.length < dataVector.size())
+ {
+ Object[] tmp = new Object[dataVector.size()];
+ System.arraycopy(columnData, 0, tmp, 0, columnData.length);
+ columnData = tmp;
+ }
+ }
for (int i = 0; i < dataVector.size(); ++i)
{
((Vector) dataVector.get(i)).add(columnData == null ? null : columnData[i]);
@@ -287,62 +389,79 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * addRow
- * @param value0 TODO
+ * Adds a new row containing the specified data to the table and sends a
+ * {@link TableModelEvent} to all registered listeners.
+ *
+ * @param rowData the row data (<code>null</code> permitted).
*/
public void addRow(Vector rowData) {
dataVector.add(rowData);
- fireTableDataChanged();
+ newRowsAdded(new TableModelEvent(
+ this, dataVector.size(), dataVector.size(), -1, TableModelEvent.INSERT)
+ );
}
/**
- * addRow
- * @param value0 TODO
+ * Adds a new row containing the specified data to the table and sends a
+ * {@link TableModelEvent} to all registered listeners.
+ *
+ * @param rowData the row data (<code>null</code> permitted).
*/
public void addRow(Object[] rowData) {
addRow(convertToVector(rowData));
}
/**
- * insertRow
- * @param value0 TODO
- * @param value1 TODO
+ * Inserts a new row into the table.
+ *
+ * @param row the row index.
+ * @param rowData the row data.
*/
public void insertRow(int row, Vector rowData) {
dataVector.add(row, rowData);
- fireTableDataChanged();
+ fireTableRowsInserted(row,row);
}
/**
- * insertRow
- * @param value0 TODO
- * @param value1 TODO
+ * Inserts a new row into the table.
+ *
+ * @param row the row index.
+ * @param rowData the row data.
*/
public void insertRow(int row, Object[] rowData) {
insertRow(row, convertToVector(rowData));
}
/**
- * moveRow
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
+ * Moves the rows from <code>startIndex</code> to <code>endIndex</code>
+ * (inclusive) to the specified row.
+ *
+ * @param startIndex the start row.
+ * @param endIndex the end row.
+ * @param toIndex the row to move to.
*/
public void moveRow(int startIndex, int endIndex, int toIndex) {
- for (int index = 0; index < (endIndex - startIndex); index++) {
- Vector vector = (Vector) dataVector.remove(startIndex);
- dataVector.add(toIndex, vector);
+ Vector removed = new Vector();
+ for (int i = endIndex; i >= startIndex; i--)
+ {
+ removed.add(this.dataVector.remove(i));
+ }
+ for (int i = 0; i <= endIndex - startIndex; i++)
+ {
+ dataVector.insertElementAt(removed.get(i), toIndex);
}
fireTableDataChanged();
}
/**
- * removeRow
- * @param value0 TODO
+ * Removes a row from the table and sends a {@link TableModelEvent} to
+ * all registered listeners.
+ *
+ * @param row the row index.
*/
public void removeRow(int row) {
dataVector.remove(row);
- fireTableDataChanged();
+ fireTableRowsDeleted(row,row);
}
/**
@@ -354,63 +473,86 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * getColumnCount
- * @returns int
+ * Returns the number of columns in the model.
+ *
+ * @return The column count.
*/
public int getColumnCount() {
- return columnIdentifiers.size();
+ return (columnIdentifiers == null ? 0 : columnIdentifiers.size());
}
/**
- * getColumnName
- * @param value0 TODO
- * @returns String
+ * Returns the name of the specified column.
+ *
+ * @param column the column index.
+ *
+ * @returns The column name.
*/
public String getColumnName(int column) {
- // Check for Column
- if (columnIdentifiers == null || column >= getColumnCount()) {
- return super.getColumnName(column);
+ String result = "";
+ if (columnIdentifiers == null)
+ result = super.getColumnName(column);
+ else
+ {
+ if (column < getColumnCount())
+ {
+ Object id = columnIdentifiers.get(column);
+ if (id != null)
+ result = id.toString();
+ else
+ result = super.getColumnName(column);
+ }
}
-
- // Return Column name
- return (String) columnIdentifiers.get(column);
+ return result;
}
/**
- * isCellEditable
- * @param value0 TODO
- * @param value1 TODO
- * @returns boolean
+ * Returns <code>true</code> if the specified cell can be modified, and
+ * <code>false</code> otherwise. For this implementation, the method
+ * always returns <code>true</code>.
+ *
+ * @param row the row index.
+ * @param column the column index.
+ *
+ * @returns <code>true</code> in all cases.
*/
public boolean isCellEditable(int row, int column) {
return true;
}
/**
- * getValueAt
- * @param value0 TODO
- * @param value1 TODO
- * @returns Object
+ * Returns the value at the specified cell in the table.
+ *
+ * @param row the row index.
+ * @param column the column index.
+ *
+ * @returns The value (<code>Object</code>, possibly <code>null</code>) at
+ * the specified cell in the table.
*/
public Object getValueAt(int row, int column) {
return ((Vector) dataVector.get(row)).get(column);
}
/**
- * setValueAt
- * @param value0 TODO
- * @param value1 TODO
- * @param value2 TODO
+ * Sets the value for the specified cell in the table and sends a
+ * {@link TableModelEvent} to all registered listeners.
+ *
+ * @param value the value (<code>Object</code>, <code>null</code> permitted).
+ * @param row the row index.
+ * @param column the column index.
*/
public void setValueAt(Object value, int row, int column) {
((Vector) dataVector.get(row)).set(column, value);
- fireTableDataChanged();
+ fireTableCellUpdated(row,column);
}
/**
- * convertToVector
- * @param value0 TODO
- * @returns Vector
+ * Converts the data array to a <code>Vector</code>.
+ *
+ * @param data the data array (<code>null</code> permitted).
+ *
+ * @returns A vector (or <code>null</code> if the data array
+ * is <code>null</code>).
*/
protected static Vector convertToVector(Object[] data) {
if (data == null)
@@ -422,9 +564,12 @@ public class DefaultTableModel extends AbstractTableModel
}
/**
- * convertToVector
- * @param value0 TODO
- * @returns Vector
+ * Converts the data array to a <code>Vector</code> of rows.
+ *
+ * @param the data array (<code>null</code> permitted).
+ *
+ * @returns A vector (or <code>null</code> if the data array
+ * is <code>null</code>.
*/
protected static Vector convertToVector(Object[][] data) {
if (data == null)
diff --git a/libjava/javax/swing/table/JTableHeader.java b/libjava/javax/swing/table/JTableHeader.java
index 95ff92006cf..0f538ed2490 100644
--- a/libjava/javax/swing/table/JTableHeader.java
+++ b/libjava/javax/swing/table/JTableHeader.java
@@ -1,5 +1,5 @@
/* JTableHeader.java --
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -70,6 +70,11 @@ public class JTableHeader extends JComponent
protected class AccessibleJTableHeaderEntry extends AccessibleContext
implements Accessible, AccessibleComponent
{
+ public AccessibleJTableHeaderEntry(int c, JTableHeader p, JTable t)
+ {
+ throw new Error("not implemented");
+ }
+
public void addFocusListener(FocusListener l)
{
throw new Error("not implemented");
@@ -616,4 +621,11 @@ public class JTableHeader extends JComponent
setUI((TableHeaderUI) UIManager.getUI(this));
}
+ public int columnAtPoint(Point point)
+ {
+ if (getBounds().contains(point))
+ return columnModel.getColumnIndexAtX(point.x);
+
+ return -1;
+ }
}
diff --git a/libjava/javax/swing/table/TableColumn.java b/libjava/javax/swing/table/TableColumn.java
index 0aaad8b3f95..c2de7f0e1a7 100644
--- a/libjava/javax/swing/table/TableColumn.java
+++ b/libjava/javax/swing/table/TableColumn.java
@@ -141,81 +141,87 @@ public class TableColumn
private SwingPropertyChangeSupport changeSupport =
new SwingPropertyChangeSupport(this);
- /**
- * Constructor TableColumn
- */
+ /**
+ * Constructor TableColumn
+ */
public TableColumn()
{
- this(0, 75, null, null);
+ this(0, 75, null, null);
}
- /**
- * Constructor TableColumn
- * @param modelIndex TODO
- */
+ /**
+ * Constructor TableColumn
+ *
+ * @param modelIndex the index of the column in the model
+ */
public TableColumn(int modelIndex)
{
- this(modelIndex, 75, null, null);
+ this(modelIndex, 75, null, null);
}
- /**
- * Constructor TableColumn
- * @param modelIndex TODO
- * @param width TODO
- */
+ /**
+ * Constructor TableColumn
+ *
+ * @param modelIndex the index of the column in the model
+ * @param width the width
+ */
public TableColumn(int modelIndex, int width)
{
- this(modelIndex, width, null, null);
+ this(modelIndex, width, null, null);
}
- /**
- * Constructor TableColumn
- * @param modelIndex TODO
- * @param width TODO
- * @param cellRenderer TODO
- * @param cellEditor TODO
- */
- public TableColumn(int modelIndex, int width,
+ /**
+ * Constructor TableColumn
+ *
+ * @param modelIndex the index of the column in the model
+ * @param width the width
+ * @param cellRenderer the cell renderer
+ * @param cellEditor the cell editor
+ */
+ public TableColumn(int modelIndex, int width,
TableCellRenderer cellRenderer, TableCellEditor cellEditor)
{
- this.modelIndex = modelIndex;
- this.width = width;
- this.preferredWidth = width;
- this.cellRenderer = cellRenderer;
- this.cellEditor = cellEditor;
- this.headerValue = null;
- this.identifier = null;
- }
-
- /**
- * firePropertyChange
- * @param property TODO
- * @param oldValue TODO
- * @param newValue TODO
- */
+ this.modelIndex = modelIndex;
+ this.width = width;
+ this.preferredWidth = width;
+ this.cellRenderer = cellRenderer;
+ this.cellEditor = cellEditor;
+ this.headerValue = null;
+ this.identifier = null;
+ }
+
+ /**
+ * firePropertyChange
+ *
+ * @param property the name of the property
+ * @param oldValue the old value
+ * @param newValue the new value
+ */
private void firePropertyChange(String property, Object oldValue,
Object newValue)
{
- changeSupport.firePropertyChange(property, oldValue, newValue);
+ changeSupport.firePropertyChange(property, oldValue, newValue);
}
- /**
- * firePropertyChange
- * @param property TODO
- * @param oldValue TODO
- * @param newValue TODO
- */
+ /**
+ * firePropertyChange
+ *
+ * @param property the name of the property
+ * @param oldValue the old value
+ * @param newValue the new value
+ */
private void firePropertyChange(String property, int oldValue, int newValue)
{
- firePropertyChange(property, new Integer(oldValue), new Integer(newValue));
+ firePropertyChange(property, new Integer(oldValue), new Integer(newValue));
}
- /**
- * firePropertyChange
- * @param property TODO
- * @param oldValue TODO
- * @param newValue TODO
- */
+ /**
+ * firePropertyChange
+ *
+ * @param property the name of the property
+ * @param oldValue the old value
+ * @param newValue the new value
+ */
private void firePropertyChange(String property, boolean oldValue,
boolean newValue)
{
@@ -225,73 +231,75 @@ public class TableColumn
/**
* setModelIndex
- * @param modelIndex TODO
+ *
+ * @param modelIndex the index to set
*/
public void setModelIndex(int modelIndex)
{
- this.modelIndex = modelIndex;
+ this.modelIndex = modelIndex;
}
- /**
- * getModelIndex
- * @return int
- */
+ /**
+ * getModelIndex
+ *
+ * @return the model index
+ */
public int getModelIndex()
{
- return modelIndex;
+ return modelIndex;
}
- /**
- * setIdentifier
- * @param identifier TODO
- */
+ /**
+ * setIdentifier
+ *
+ * @param identifier the identifier
+ */
public void setIdentifier(Object identifier)
{
- this.identifier = identifier;
+ this.identifier = identifier;
}
- /**
- * getIdentifier
- * @return Object
- */
+ /**
+ * getIdentifier
+ *
+ * @return the identifier
+ */
public Object getIdentifier()
{
if (identifier == null)
- return getHeaderValue();
- return identifier;
+ return getHeaderValue();
+ return identifier;
}
- /**
- * setHeaderValue
- * @param headerValue TODO
- */
+ /**
+ * setHeaderValue
+ *
+ * @param headerValue the value of the header
+ */
public void setHeaderValue(Object headerValue)
{
- // Variables
- Object oldValue;
-
- // Get Old Value
- oldValue = this.headerValue;
-
- // Set Propeprty
- this.headerValue = headerValue;
-
- // Notify Listeners of change
+ if (this.headerValue == headerValue)
+ return;
+
+ Object oldValue = this.headerValue;
+ this.headerValue = headerValue;
firePropertyChange(HEADER_VALUE_PROPERTY, oldValue, headerValue);
}
- /**
- * getHeaderValue
- * @return Object
- */
+ /**
+ * getHeaderValue
+ *
+ * @return the value of the header
+ */
public Object getHeaderValue()
{
- return headerValue;
+ return headerValue;
}
/**
* setHeaderRenderer
- * @param headerRenderer TODO
+ *
+ * @param headerRenderer the renderer to se
*/
public void setHeaderRenderer(TableCellRenderer renderer)
{
@@ -304,18 +312,19 @@ public class TableColumn
oldRenderer, headerRenderer);
}
- /**
- * getHeaderRenderer
+ /**
+ * getHeaderRenderer
* @return TableCellRenderer
- */
+ */
public TableCellRenderer getHeaderRenderer()
{
- return headerRenderer;
+ return headerRenderer;
}
/**
* setCellRenderer
- * @param cellRenderer TODO
+ *
+ * @param cellRenderer the cell renderer
*/
public void setCellRenderer(TableCellRenderer renderer)
{
@@ -328,36 +337,40 @@ public class TableColumn
oldRenderer, cellRenderer);
}
- /**
- * getCellRenderer
- * @return TableCellRenderer
- */
+ /**
+ * getCellRenderer
+ *
+ * @return the cell renderer
+ */
public TableCellRenderer getCellRenderer()
{
- return cellRenderer;
+ return cellRenderer;
}
- /**
- * setCellEditor
- * @param cellEditor TODO
- */
+ /**
+ * setCellEditor
+ *
+ * @param cellEditor the cell editor
+ */
public void setCellEditor(TableCellEditor cellEditor)
{
- this.cellEditor = cellEditor;
+ this.cellEditor = cellEditor;
}
- /**
- * getCellEditor
- * @return TableCellEditor
- */
+ /**
+ * getCellEditor
+ *
+ * @return the cell editor
+ */
public TableCellEditor getCellEditor()
{
- return cellEditor;
+ return cellEditor;
}
/**
* setWidth
- * @param newWidth TODO
+ *
+ * @param newWidth the width
*/
public void setWidth(int newWidth)
{
@@ -376,102 +389,112 @@ public class TableColumn
firePropertyChange(COLUMN_WIDTH_PROPERTY, oldWidth, width);
}
- /**
- * getWidth
+ /**
+ * getWidth
+ *
* @return int
- */
+ */
public int getWidth()
{
- return width;
+ return width;
}
- /**
- * setPreferredWidth
- * @param preferredWidth TODO
- */
+ /**
+ * setPreferredWidth
+ *
+ * @param preferredWidth the preferred width
+ */
public void setPreferredWidth(int preferredWidth)
{
if (preferredWidth < minWidth)
- this.preferredWidth = minWidth;
+ this.preferredWidth = minWidth;
else if (preferredWidth > maxWidth)
- this.preferredWidth = maxWidth;
+ this.preferredWidth = maxWidth;
else
- this.preferredWidth = preferredWidth;
+ this.preferredWidth = preferredWidth;
}
- /**
- * getPreferredWidth
- * @return int
- */
+ /**
+ * getPreferredWidth
+ *
+ * @return the preferred width
+ */
public int getPreferredWidth()
{
- return preferredWidth;
+ return preferredWidth;
}
- /**
- * setMinWidth
- * @param minWidth TODO
- */
+ /**
+ * setMinWidth
+ *
+ * @param minWidth the minium width
+ */
public void setMinWidth(int minWidth)
{
- this.minWidth = minWidth;
- setWidth(getWidth());
- setPreferredWidth(getPreferredWidth());
+ this.minWidth = minWidth;
+ setWidth(getWidth());
+ setPreferredWidth(getPreferredWidth());
}
- /**
- * getMinWidth
- * @return int
- */
+ /**
+ * getMinWidth
+ *
+ * @return the minimum width
+ */
public int getMinWidth()
{
- return minWidth;
+ return minWidth;
}
- /**
- * setMaxWidth
- * @param maxWidth TODO
- */
+ /**
+ * setMaxWidth
+ *
+ * @param maxWidth the maximum width
+ */
public void setMaxWidth(int maxWidth)
{
- this.maxWidth = maxWidth;
- setWidth(getWidth());
- setPreferredWidth(getPreferredWidth());
+ this.maxWidth = maxWidth;
+ setWidth(getWidth());
+ setPreferredWidth(getPreferredWidth());
}
- /**
- * getMaxWidth
- * @return int
- */
+ /**
+ * getMaxWidth
+ * @return the maximim width
+ */
public int getMaxWidth()
{
- return maxWidth;
+ return maxWidth;
}
- /**
- * setResizable
- * @param isResizable TODO
- */
+ /**
+ * setResizable
+ *
+ * @param isResizable <code>true</code> if this column is resizable,
+ * <code>false</code> otherwise
+ */
public void setResizable(boolean isResizable)
{
- this.isResizable = isResizable;
+ this.isResizable = isResizable;
}
- /**
- * getResizable
- * @return boolean
- */
+ /**
+ * getResizable
+ *
+ * @return <code>true</code> if this column is resizable,
+ * <code>false</code> otherwise
+ */
public boolean getResizable()
{
- return isResizable;
+ return isResizable;
}
- /**
- * sizeWidthToFit
- */
+ /**
+ * sizeWidthToFit
+ */
public void sizeWidthToFit()
{
- // TODO
+ // TODO
}
/**
@@ -481,7 +504,7 @@ public class TableColumn
*/
public void disableResizedPosting()
{
- // Does nothing
+ // Does nothing
}
/**
@@ -491,25 +514,25 @@ public class TableColumn
*/
public void enableResizedPosting()
{
- // Does nothing
+ // Does nothing
}
- /**
- * addPropertyChangeListener
+ /**
+ * addPropertyChangeListener
* @param listener the listener to all
- */
+ */
public synchronized void addPropertyChangeListener(PropertyChangeListener listener)
{
- changeSupport.addPropertyChangeListener(listener);
+ changeSupport.addPropertyChangeListener(listener);
}
- /**
- * removePropertyChangeListener
+ /**
+ * removePropertyChangeListener
* @param listener the listener to remove
- */
+ */
public synchronized void removePropertyChangeListener(PropertyChangeListener listener)
{
- changeSupport.removePropertyChangeListener(listener);
+ changeSupport.removePropertyChangeListener(listener);
}
/**
@@ -523,9 +546,9 @@ public class TableColumn
/**
* createDefaultHeaderRenderer
* @return TableCellRenderer
- */
+ */
protected TableCellRenderer createDefaultHeaderRenderer()
{
- return new DefaultTableCellRenderer();
+ return new DefaultTableCellRenderer();
}
}
diff --git a/libjava/javax/swing/table/TableColumnModel.java b/libjava/javax/swing/table/TableColumnModel.java
index b825ca0606c..1c036d8a11e 100644
--- a/libjava/javax/swing/table/TableColumnModel.java
+++ b/libjava/javax/swing/table/TableColumnModel.java
@@ -49,118 +49,118 @@ import javax.swing.event.TableColumnModelListener;
*/
public interface TableColumnModel
{
- /**
- * addColumn
- * @param column TableColumn
- */
- void addColumn(TableColumn column);
-
- /**
- * removeColumn
- * @param column TableColumn
- */
- void removeColumn(TableColumn column);
-
- /**
- * moveColumn
- * @param columnIndex Index of column to move
- * @param newIndex New index of column
- */
- void moveColumn(int columnIndex, int newIndex);
-
- /**
- * setColumnMargin
- * @param margin Margin of column
- */
- void setColumnMargin(int margin);
-
- /**
- * getColumnCount
+ /**
+ * addColumn
+ * @param column TableColumn
+ */
+ void addColumn(TableColumn column);
+
+ /**
+ * removeColumn
+ * @param column TableColumn
+ */
+ void removeColumn(TableColumn column);
+
+ /**
+ * moveColumn
+ * @param columnIndex Index of column to move
+ * @param newIndex New index of column
+ */
+ void moveColumn(int columnIndex, int newIndex);
+
+ /**
+ * setColumnMargin
+ * @param margin Margin of column
+ */
+ void setColumnMargin(int margin);
+
+ /**
+ * getColumnCount
* @return Column count
- */
- int getColumnCount();
+ */
+ int getColumnCount();
- /**
- * getColumns
+ /**
+ * getColumns
* @return Enumeration of columns
- */
- Enumeration getColumns();
-
- /**
- * getColumnIndex
- * @param columnIdentifier Column id
- */
- int getColumnIndex(Object columnIdentifier);
-
- /**
- * getColumn
- * @param columnIndex Index of column
- */
- TableColumn getColumn(int columnIndex);
-
- /**
- * getColumnMargin
+ */
+ Enumeration getColumns();
+
+ /**
+ * getColumnIndex
+ * @param columnIdentifier Column id
+ */
+ int getColumnIndex(Object columnIdentifier);
+
+ /**
+ * getColumn
+ * @param columnIndex Index of column
+ */
+ TableColumn getColumn(int columnIndex);
+
+ /**
+ * getColumnMargin
* @return Column margin
- */
- int getColumnMargin();
+ */
+ int getColumnMargin();
- /**
- * getColumnIndexAtX
+ /**
+ * getColumnIndexAtX
* @return Column index as position x
- */
- int getColumnIndexAtX(int xPosition);
+ */
+ int getColumnIndexAtX(int xPosition);
- /**
- * getTotalColumnWidth
+ /**
+ * getTotalColumnWidth
* @return Total column width
- */
- int getTotalColumnWidth();
+ */
+ int getTotalColumnWidth();
- /**
- * setColumnSelectionAllowed
- * @param value Set column selection
- */
- void setColumnSelectionAllowed(boolean value);
+ /**
+ * setColumnSelectionAllowed
+ * @param value Set column selection
+ */
+ void setColumnSelectionAllowed(boolean value);
- /**
- * getColumnSelectionAllowed
+ /**
+ * getColumnSelectionAllowed
* @return true if column selection allowed, false otherwise
- */
- boolean getColumnSelectionAllowed();
+ */
+ boolean getColumnSelectionAllowed();
- /**
- * getSelectedColumns
+ /**
+ * getSelectedColumns
* @return Selected columns
- */
- int[] getSelectedColumns();
+ */
+ int[] getSelectedColumns();
- /**
- * getSelectedColumnCount
+ /**
+ * getSelectedColumnCount
* @return Count of selected columns
- */
- int getSelectedColumnCount();
-
- /**
- * setSelectionModel
- * @param model ListSelectionModel
- */
- void setSelectionModel(ListSelectionModel model);
-
- /**
- * getSelectionModel
- * @param column TableColumn
- */
- ListSelectionModel getSelectionModel();
-
- /**
- * addColumnModelListener
- * @param listener TableColumnModelListener
- */
- void addColumnModelListener(TableColumnModelListener listener);
-
- /**
- * removeColumnModelListener
- * @param listener TableColumnModelListener
- */
- void removeColumnModelListener(TableColumnModelListener listener);
+ */
+ int getSelectedColumnCount();
+
+ /**
+ * setSelectionModel
+ * @param model ListSelectionModel
+ */
+ void setSelectionModel(ListSelectionModel model);
+
+ /**
+ * getSelectionModel
+ * @param column TableColumn
+ */
+ ListSelectionModel getSelectionModel();
+
+ /**
+ * addColumnModelListener
+ * @param listener TableColumnModelListener
+ */
+ void addColumnModelListener(TableColumnModelListener listener);
+
+ /**
+ * removeColumnModelListener
+ * @param listener TableColumnModelListener
+ */
+ void removeColumnModelListener(TableColumnModelListener listener);
}
diff --git a/libjava/javax/swing/table/TableModel.java b/libjava/javax/swing/table/TableModel.java
index a4732d061b9..591ce4342a0 100644
--- a/libjava/javax/swing/table/TableModel.java
+++ b/libjava/javax/swing/table/TableModel.java
@@ -1,5 +1,5 @@
/* TableModel.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2005, Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,72 +39,96 @@ package javax.swing.table;
import javax.swing.event.TableModelListener;
-
/**
- * TableModel public interface
+ * A <code>TableModel</code> is a two dimensional data structure that
+ * can store arbitrary <code>Object</code> instances, usually for the
+ * purpose of display in a {@link JTable} component. Individual objects
+ * can be accessed by specifying the row index and column index for
+ * the object. Each column in the model has a name associated with it.
+ * <p>
+ * The {@link DefaultTableModel} class provides one implementation of
+ * this interface.
+ *
* @author Andrew Selkirk
*/
public interface TableModel
{
- /**
- * getRowCount
- * @return row count
- */
- int getRowCount();
-
- /**
- * getColumnCount
- * @return column count
- */
- int getColumnCount();
-
- /**
- * getColumnName
- * @param columnIndex Column index
- * @return Column name
- */
- String getColumnName(int columnIndex);
-
- /**
- * getColumnClass
- * @param columnIndex Column index
- * @return Column class
- */
- Class getColumnClass(int columnIndex);
-
- /**
- * isCellEditable
- * @param rowIndex Row index
- * @param columnIndex Column index
- * @return true if editable, false otherwise
- */
- boolean isCellEditable(int rowIndex, int columnIndex);
-
- /**
- * getValueAt
- * @param rowIndex Row index
- * @param columnIndex Column index
- * @return Value at specified indices
- */
- Object getValueAt(int rowIndex, int columnIndex);
-
- /**
- * setValueAt
- * @param aValue Value to set
- * @param rowIndex Row index
- * @param columnIndex Column index
- */
- void setValueAt(Object aValue, int rowIndex, int columnIndex);
-
- /**
- * addTableModelListener
- * @param listener TableModelListener
- */
- void addTableModelListener(TableModelListener listener);
-
- /**
- * removeTableModelListener
- * @param listener TableModelListener
- */
- void removeTableModelListener(TableModelListener listener);
+ /**
+ * Returns the number of rows in the model.
+ *
+ * @return The row count.
+ */
+ int getRowCount();
+
+ /**
+ * Returns the number of columns in the model.
+ *
+ * @return The column count
+ */
+ int getColumnCount();
+
+ /**
+ * Returns the name of a column in the model.
+ *
+ * @param columnIndex the column index.
+ *
+ * @return The column name.
+ */
+ String getColumnName(int columnIndex);
+
+ /**
+ * Returns the <code>Class</code> for all <code>Object</code> instances
+ * in the specified column.
+ *
+ * @param columnIndex the column index.
+ *
+ * @return The class.
+ */
+ Class getColumnClass(int columnIndex);
+
+ /**
+ * Returns <code>true</code> if the cell is editable, and <code>false</code>
+ * otherwise.
+ *
+ * @param rowIndex the row index.
+ * @param columnIndex the column index.
+ *
+ * @return <code>true</code> if editable, <code>false</code> otherwise.
+ */
+ boolean isCellEditable(int rowIndex, int columnIndex);
+
+ /**
+ * Returns the value (<code>Object</code>) at a particular cell in the
+ * table.
+ *
+ * @param rowIndex the row index.
+ * @param columnIndex the column index.
+ *
+ * @return The value at the specified cell.
+ */
+ Object getValueAt(int rowIndex, int columnIndex);
+
+ /**
+ * Sets the value at a particular cell in the table.
+ *
+ * @param aValue the value (<code>null</code> permitted).
+ * @param rowIndex the row index.
+ * @param columnIndex the column index.
+ */
+ void setValueAt(Object aValue, int rowIndex, int columnIndex);
+
+ /**
+ * Adds a listener to the model. The listener will receive notification
+ * of updates to the model.
+ *
+ * @param listener the listener.
+ */
+ void addTableModelListener(TableModelListener listener);
+
+ /**
+ * Removes a listener from the model.
+ *
+ * @param listener the listener.
+ */
+ void removeTableModelListener(TableModelListener listener);
}
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/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..2a05e95306b 100644
--- a/libjava/javax/swing/text/JTextComponent.java
+++ b/libjava/javax/swing/text/JTextComponent.java
@@ -1,5 +1,5 @@
/* JTextComponent.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.
@@ -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;
@@ -294,7 +302,7 @@ public abstract class JTextComponent extends JComponent
* report</a>, a pair of private classes wraps a {@link
* javax.swing.text.Keymap} in the new {@link InputMap} / {@link
* ActionMap} interfaces, such that old Keymap-using code can make use of
- * the new framework.</p>
+ * the new framework.
*
* <p>A little bit of experimentation with these classes reveals the following
* structure:
@@ -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.
@@ -747,7 +843,7 @@ public abstract class JTextComponent extends JComponent
* <code>b</code>, if there exists a provided action <code>a</code> such
* that <code>a.getValue(Action.NAME) == b.ActionName</code> then an
* entry is added to the Keymap mapping <code>b</code> to
- * </code>a</code>.
+ * <code>a</code>.
*
* @param map The Keymap to add new mappings to
* @param bindings The set of bindings to add to the Keymap
@@ -847,7 +943,7 @@ public abstract class JTextComponent extends JComponent
}
/**
- * Get the <code>AccessibleContext<code> of this object.
+ * Get the <code>AccessibleContext</code> of this object.
*
* @return an <code>AccessibleContext</code> object
*/
@@ -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/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/Utilities.java b/libjava/javax/swing/text/Utilities.java
index 6d2b54680a0..c55f48e0a5f 100644
--- a/libjava/javax/swing/text/Utilities.java
+++ b/libjava/javax/swing/text/Utilities.java
@@ -1,5 +1,5 @@
/* Utilities.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.awt.Graphics;
* A set of utilities to deal with text. This is used by several other classes
* inside this package.
*
- * @author Roman Kennke <roman@ontographics.com>
+ * @author Roman Kennke (roman@ontographics.com)
*/
public class Utilities
{
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);
}
diff --git a/libjava/javax/swing/tree/DefaultMutableTreeNode.java b/libjava/javax/swing/tree/DefaultMutableTreeNode.java
index b6dd1d0b870..de34ee07250 100644
--- a/libjava/javax/swing/tree/DefaultMutableTreeNode.java
+++ b/libjava/javax/swing/tree/DefaultMutableTreeNode.java
@@ -1,5 +1,5 @@
/* DefaultMutableTreeNode.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,984 +38,917 @@ exception statement from your version. */
package javax.swing.tree;
+import gnu.java.util.EmptyEnumeration;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Enumeration;
-import java.util.Random;
import java.util.Stack;
import java.util.Vector;
/**
* DefaultMutableTreeNode
+ *
* @author Andrew Selkirk
*/
public class DefaultMutableTreeNode
implements Cloneable, MutableTreeNode, Serializable
{
- static final long serialVersionUID = -4298474751201349152L;
-
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * EMPTY_ENUMERATION
- */
- public static final Enumeration EMPTY_ENUMERATION = null; // TODO
-
- /**
- * parent
- */
- protected MutableTreeNode parent = null;
-
- /**
- * children
- */
- protected Vector children = new Vector();
-
- /**
- * userObject
- */
- protected transient Object userObject = "";
-
- /**
- * allowsChildren
- */
- protected boolean allowsChildren = true;
-
-
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * Constructor DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode() {
- // TODO
- } // DefaultMutableTreeNode()
-
- /**
- * Constructor DefaultMutableTreeNode
- * @param value0 TODO
- */
- public DefaultMutableTreeNode(Object userObject) {
- this.userObject = userObject;
- } // DefaultMutableTreeNode()
-
- /**
- * Constructor DefaultMutableTreeNode
- * @param value0 TODO
- * @param value1 TODO
- */
- public DefaultMutableTreeNode(Object userObject, boolean allowsChildren) {
- this.userObject = userObject;
- this.allowsChildren = allowsChildren;
- } // DefaultMutableTreeNode()
-
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * clone
- * @returns Object
- */
- public Object clone() {
- return null; // TODO
- } // clone()
-
- /**
- * toString
- * @returns String
- */
- public String toString() {
- if (userObject == null) {
- return null;
- } // if
- return userObject.toString();
- } // toString()
-
- /**
- * add
- * @param value0 TODO
- */
- public void add(MutableTreeNode child) {
- children.add(child);
- child.setParent(this);
- } // add()
-
- /**
- * getParent
- * @returns TreeNode
- */
- public TreeNode getParent() {
- return parent;
- } // getParent()
-
- /**
- * remove
- * @param value0 TODO
- */
- public void remove(int index) {
- children.remove(index);
- } // remove()
-
- /**
- * remove
- * @param value0 TODO
- */
- public void remove(MutableTreeNode node) {
- children.remove(node);
- } // remove()
-
- /**
- * writeObject
- * @param value0 TODO
- * @exception IOException TODO
- */
- private void writeObject(ObjectOutputStream value0) throws IOException {
- // TODO
- } // writeObject()
-
- /**
- * readObject
- * @param value0 TODO
- * @exception IOException TODO
- * @exception ClassNotFoundException TODO
- */
- private void readObject(ObjectInputStream value0) throws IOException, ClassNotFoundException {
- // TODO
- } // readObject()
-
- /**
- * insert
- * @param value0 TODO
- * @param value1 TODO
- */
- public void insert(MutableTreeNode node, int index) {
- children.insertElementAt(node, index);
- } // insert()
-
- /**
- * getPath
- * @returns TreeNode[]
- */
- public TreeNode[] getPath() {
-
- // Variables
- TreeNode[] path;
- int size;
- int index;
- TreeNode current;
-
- // Determine length of Path
- size = getLevel() + 1;
-
- // Create Path
- path = new TreeNode[size];
- current = this;
- for (index = size - 1; index >= 0; index--) {
- path[index] = current;
- current = current.getParent();
- } // for
-
- // Return Path
- return path;
-
- } // getPath()
-
- /**
- * children
- * @returns Enumeration
- */
- public Enumeration children() {
- return children.elements();
- } // children()
-
- /**
- * setParent
- * @param value0 TODO
- */
- public void setParent(MutableTreeNode node) {
- parent = node;
- } // setParent()
-
- /**
- * getChildAt
- * @param value0 TODO
- * @returns TreeNode
- */
- public TreeNode getChildAt(int index) {
- return (TreeNode) children.elementAt(index);
- } // getChildAt()
-
- /**
- * getChildCount
- * @returns int
- */
- public int getChildCount() {
- return children.size();
- } // getChildCount()
-
- /**
- * getIndex
- * @param value0 TODO
- * @returns int
- */
- public int getIndex(TreeNode node) {
- return children.indexOf(node);
- } // getIndex()
-
- /**
- * setAllowsChildren
- * @param value0 TODO
- */
- public void setAllowsChildren(boolean allowsChildren) {
- this.allowsChildren = allowsChildren;
- } // setAllowsChildren()
-
- /**
- * getAllowsChildren
- * @returns boolean
- */
- public boolean getAllowsChildren() {
- return allowsChildren;
- } // getAllowsChildren()
-
- /**
- * setUserObject
- * @param value0 TODO
- */
- public void setUserObject(Object userObject) {
- this.userObject = userObject;
- } // setUserObject()
-
- /**
- * getUserObject
- * @returns Object
- */
- public Object getUserObject() {
- return userObject;
- } // getUserObject()
-
- /**
- * removeFromParent
- */
- public void removeFromParent() {
- parent = null;
- // TODO
- } // removeFromParent()
-
- /**
- * removeAllChildren
- */
- public void removeAllChildren() {
- children.removeAllElements();
- } // removeAllChildren()
-
- /**
- * isNodeAncestor
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeAncestor(TreeNode node) {
-
- // Variables
- TreeNode current;
-
- // Sanity Check
- if (node == null) {
- return false;
- } // if
-
- // Search For Ancestor
- current = this;
- while (current != null && current != node) {
- current = current.getParent();
- } // while
-
- // Check for Ancestor
- if (current == node) {
- return true;
- } // if
-
- // Otherwise, no
- return false;
-
- } // isNodeAncestor()
-
- /**
- * isNodeDescendant
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeDescendant(DefaultMutableTreeNode node) {
-
- // Variables
- TreeNode current;
-
- // Sanity Check
- if (node == null) {
- return false;
- } // if
-
- // Search For Descendant
- current = node;
- while (current != null && current != this) {
- current = current.getParent();
- } // while
-
- // Check for Descendant
- if (current == this) {
- return true;
- } // if
-
- // Otherwise, no
- return false;
-
- } // isNodeDescendant()
-
- /**
- * getSharedAncestor
- * @param value0 TODO
- * @returns TreeNode
- */
- public TreeNode getSharedAncestor(DefaultMutableTreeNode node) {
-
- // Variables
- ArrayList list;
- TreeNode current;
-
- // Get List of Path Elements for this node
- current = this;
- list = new ArrayList();
- while (current != null) {
- list.add(current);
- current = current.getParent();
- } // while
-
- // Check if any path element of node are in list
- current = node;
- while (current != null) {
- if (list.contains(current) == true) {
- return current;
- } // if
- current = current.getParent();
- } // while
-
- // Unable to locate shared ancestor
- return null;
-
- } // getSharedAncestor()
-
- /**
- * isNodeRelated
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeRelated(DefaultMutableTreeNode node) {
-
- // Sanity Check
- if (node == null) {
- return false;
- } // if
-
- // Check for the same root
- if (node.getRoot() == getRoot()) {
- return true;
- } // if
-
- // Nodes are not related
- return false;
-
- } // isNodeRelated()
-
- /**
- * getDepth
- * @returns int
- */
- public int getDepth() {
-
- // Variables
- TreeNode node;
- int depth;
- int current;
- int size;
- Stack stack;
- int index;
-
- // Check for children
- if (allowsChildren == false || children.size() == 0) {
- return 0;
- } // if
-
- // Process Depths
- stack = new Stack();
- stack.push(new Integer(0));
- node = getChildAt(0);
-//System.out.println(" * Descend: 0-0");
- depth = 0;
- current = 1;
- while (stack.empty() == false) {
-
- // Check if node has children
- if (node.getChildCount() != 0) {
- node = node.getChildAt(0);
- stack.push(new Integer(0));
- current++;
-// System.out.println(" * Descend: 0-" + current);
-
- // Check for next sibling
- } else {
-
- // Check Depth
- if (current > depth) {
- depth = current;
- } // if
-
- do {
-
- // Traverse to Parent
- node = node.getParent();
- size = node.getChildCount();
- current--;
- index = ((Integer) stack.pop()).intValue();
-// System.out.println(" * Ascend from: " + index + "-" + current);
- index++;
-
- } while (index >= size && node != this);
-
- // Check for child
- if (index < size) {
- node = node.getChildAt(index);
- stack.push(new Integer(index));
- current++;
-// System.out.println(" * Descend: " + index + "-" + current);
- } // if
-
- } // if
-
- } // while
-
- return depth;
-
- } // getDepth()
-
- static Random random = new Random(System.currentTimeMillis());
-
- public static void growTree(DefaultMutableTreeNode root) {
-
- // Variables
- int index;
- DefaultMutableTreeNode node;
- DefaultMutableTreeNode current;
-
- current = root;
- index = 0;
-// while (current != root) {
- do {
-
-// if (random.nextInt(3) < 2) {
- if (random.nextBoolean()) {
- node = new DefaultMutableTreeNode(String.valueOf(index));
- index++;
- current.add(node);
- current = node;
- } else {
- current = (DefaultMutableTreeNode) current.getParent();
- } // if
-
-// } // while
- } while (current != root && current != null);
-
- System.out.println("Number of nodes: " + index);
-
-/*
- // Calc # children
- size = random.nextInt(4);
-
- for (index = 0; index < size; index++) {
-
- // Create Node
- node = new DefaultMutableTreeNode(String.valueOf(index));
- growTree(node);
-
- // Add Node to root
- root.add(node);
-
- } // for
-*/
- } // growTree()
-
- public static void main(String[] argv) {
-/*
- DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("node1");
- DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("node2");
- DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("node3");
- DefaultMutableTreeNode node4 = new DefaultMutableTreeNode("node4");
- DefaultMutableTreeNode node5 = new DefaultMutableTreeNode("node5");
- DefaultMutableTreeNode node6 = new DefaultMutableTreeNode("node6");
- DefaultMutableTreeNode node7 = new DefaultMutableTreeNode("node7");
- DefaultMutableTreeNode node8 = new DefaultMutableTreeNode("node8");
-
- node1.add(node2);
- node1.add(node3);
- node2.add(node4);
- node2.add(node5);
- node3.add(node6);
- node3.add(node7);
- node5.add(node8);
-
- System.out.println("Depth (node1): " + node1.getDepth());
- System.out.println("Depth (node2): " + node2.getDepth());
- System.out.println("Depth (node3): " + node3.getDepth());
-*/
-
- System.out.println("Create tree...");
- DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
- growTree(root);
- System.out.println("Find depth...");
- System.out.println("Depth (root): " + root.getDepth());
-
- } // main
-
- /**
- * getLevel
- * @returns int
- */
- public int getLevel() {
-
- // Variables
- TreeNode current;
- int count;
-
- // Lookup Parent
- count = -1;
- current = this;
- do {
- current = current.getParent();
- count++;
- } while (current != null);
-
- return count;
-
- } // getLevel()
-
- /**
- * getPathToRoot
- * @param value0 TODO
- * @param value1 TODO
- * @returns TreeNode[]
- */
- protected TreeNode[] getPathToRoot(TreeNode value0, int value1) {
- return null; // TODO
- } // getPathToRoot()
-
- /**
- * getUserObjectPath
- * @returns Object[]
- */
- public Object[] getUserObjectPath() {
-
- // Variables
- TreeNode[] path;
- Object[] object;
- int index;
-
- // Get Path for Tree Nodes
- path = getPath();
-
- // Construct Object Path
- object = new Object[path.length];
- for (index = 0; index < path.length; index++) {
- object[index] = ((DefaultMutableTreeNode) path[index]).getUserObject();
- } // for
-
- // Return Object Path
- return object;
-
- } // getUserObjectPath()
-
- /**
- * getRoot
- * @returns TreeNode
- */
- public TreeNode getRoot() {
-
- // Variables
- TreeNode current;
- TreeNode check;
-
- // Lookup Parent
- current = this;
- check = current.getParent();
- while (check != null) {
- current = check;
- check = current.getParent();
- } // while
-
- return current;
-
- } // getRoot()
-
- /**
- * isRoot
- * @returns boolean
- */
- public boolean isRoot() {
- return (parent == null);
- } // isRoot()
-
- /**
- * getNextNode
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getNextNode() {
- return null; // TODO
- } // getNextNode()
-
- /**
- * getPreviousNode
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getPreviousNode() {
- return null; // TODO
- } // getPreviousNode()
-
- /**
- * preorderEnumeration
- * @returns Enumeration
- */
- public Enumeration preorderEnumeration() {
- return null; // TODO
- } // preorderEnumeration()
-
- /**
- * postorderEnumeration
- * @returns Enumeration
- */
- public Enumeration postorderEnumeration() {
- return null; // TODO
- } // postorderEnumeration()
-
- /**
- * breadthFirstEnumeration
- * @returns Enumeration
- */
- public Enumeration breadthFirstEnumeration() {
- return null; // TODO
- } // breadthFirstEnumeration()
-
- /**
- * depthFirstEnumeration
- * @returns Enumeration
- */
- public Enumeration depthFirstEnumeration() {
- return null; // TODO
- } // depthFirstEnumeration()
-
- /**
- * pathFromAncestorEnumeration
- * @param value0 TODO
- * @returns Enumeration
- */
- public Enumeration pathFromAncestorEnumeration(TreeNode value0) {
- return null; // TODO
- } // pathFromAncestorEnumeration()
-
- /**
- * isNodeChild
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeChild(TreeNode node) {
-
- // Variables
- TreeNode current;
-
- // Sanity Check
- if (node == null) {
- return false;
- } // if
-
- // Process Path
- current = node;
- while (current != null) {
- if (current == this) {
- return true;
- } // if
- current = current.getParent();
- } // while
-
- // Node not located in path, not child
- return false;
-
- } // isNodeChild()
-
- /**
- * getFirstChild
- * @returns TreeNode
- */
- public TreeNode getFirstChild() {
- return (TreeNode) children.firstElement();
- } // getFirstChild()
-
- /**
- * getLastChild
- * @returns TreeNode
- */
- public TreeNode getLastChild() {
- return (TreeNode) children.lastElement();
- } // getLastChild()
-
- /**
- * getChildAfter
- * @param value0 TODO
- * @returns TreeNode
- */
- public TreeNode getChildAfter(TreeNode node) {
-
- // Variables
- int index;
-
- // Check node
- if (node == null || node.getParent() != this) {
- throw new IllegalArgumentException();
- } // if
-
- // Get index of child node
- index = getIndex(node);
-
- // Check for child after
- index++;
- if (index == getChildCount()) {
- return null;
- } // if
-
- // Retrieve Child After
- return getChildAt(index);
-
- } // getChildAfter()
-
- /**
- * getChildBefore
- * @param value0 TODO
- * @returns TreeNode
- */
- public TreeNode getChildBefore(TreeNode node) {
-
- // Variables
- int index;
-
- // Check node
- if (node == null || node.getParent() != this) {
- throw new IllegalArgumentException();
- } // if
-
- // Get index of child node
- index = getIndex(node);
-
- // Check for child before
- index--;
- if (index < 0) {
- return null;
- } // if
-
- // Retrieve Child Before
- return getChildAt(index);
-
- } // getChildBefore()
-
- /**
- * isNodeSibling
- * @param value0 TODO
- * @returns boolean
- */
- public boolean isNodeSibling(TreeNode node) {
-
- // Check for null
- if (node == null) {
- return false;
- } // if
-
- // Check if nodes share a parent
- if (node.getParent() == getParent() && getParent() != null) {
- return true;
- } // if
-
- // Nodes are not siblings
- return false;
-
- } // isNodeSibling()
-
- /**
- * getSiblingCount
- * @returns int
- */
- public int getSiblingCount() {
-
- // Variables
-
- // Check for no parent
- if (parent == null) {
- return 1;
- } // if
-
- // Calculate sibling count from parent's child count
- return parent.getChildCount();
-
- } // getSiblingCount()
-
- /**
- * getNextSibling
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getNextSibling() {
-
- // Variables
- int index;
- int size;
-
- // Check for Parent
- if (parent == null) {
- return null;
- } // if
-
- // Get Index of this node
- index = parent.getIndex(this);
-
- // Check for Next Sibling
- size = parent.getChildCount();
- index++;
- if (index == size) {
- return null;
- } // if
-
- return (DefaultMutableTreeNode) parent.getChildAt(index);
-
- } // getNextSibling()
-
- /**
- * getPreviousSibling
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getPreviousSibling() {
-
- // Variables
- int index;
-
- // Check for Parent
- if (parent == null) {
- return null;
- } // if
-
- // Get Index of this node
- index = parent.getIndex(this);
-
- // Check for Previous Sibling
- index--;
- if (index < 0) {
- return null;
- } // if
-
- return (DefaultMutableTreeNode) parent.getChildAt(index);
-
- } // getPreviousSibling()
-
- /**
- * isLeaf
- * @returns boolean
- */
- public boolean isLeaf() {
- return (children.size() == 0); // TODO: check allowsChildren??
- } // isLeaf()
-
- /**
- * getFirstLeaf
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getFirstLeaf() {
-
- // Variables
- TreeNode current;
-
- current = this;
- while (current.getChildCount() > 0) {
- current = current.getChildAt(0);
- } // while
-
- return (DefaultMutableTreeNode) current;
-
- } // getFirstLeaf()
-
- /**
- * getLastLeaf
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getLastLeaf() {
-
- // Variables
- TreeNode current;
- int size;
-
- current = this;
- size = current.getChildCount();
- while (size > 0) {
- current = current.getChildAt(size - 1);
- size = current.getChildCount();
- } // while
-
- return (DefaultMutableTreeNode) current;
-
- } // getLastLeaf()
-
- /**
- * getNextLeaf
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getNextLeaf() {
- return null; // TODO
- } // getNextLeaf()
-
- /**
- * getPreviousLeaf
- * @returns DefaultMutableTreeNode
- */
- public DefaultMutableTreeNode getPreviousLeaf() {
- return null; // TODO
- } // getPreviousLeaf()
-
- /**
- * getLeafCount
- * @returns int
- */
- public int getLeafCount() {
-
- // Variables
- Enumeration e;
- int count;
- TreeNode current;
-
- // Get Enumeration of all descendants
- e = depthFirstEnumeration();
-
- // Process Nodes
- count = 0;
- while (e.hasMoreElements() == true) {
- current = (TreeNode) e.nextElement();
- if (current.isLeaf() == true) {
- count++;
- } // if
- } // if
-
- return count;
-
- } // getLeafCount()
-
-
-} // DefaultMutableTreeNode
+ private static final long serialVersionUID = -4298474751201349152L;
+
+ /**
+ * EMPTY_ENUMERATION
+ */
+ public static final Enumeration EMPTY_ENUMERATION =
+ EmptyEnumeration.getInstance();
+
+ /**
+ * parent
+ */
+ protected MutableTreeNode parent;
+
+ /**
+ * children
+ */
+ protected Vector children = new Vector();
+
+ /**
+ * userObject
+ */
+ protected transient Object userObject;
+
+ /**
+ * allowsChildren
+ */
+ protected boolean allowsChildren;
+
+ /**
+ * Creates a <code>DefaultMutableTreeNode</code> object.
+ * This node allows to add child nodes.
+ */
+ public DefaultMutableTreeNode()
+ {
+ this(null, true);
+ }
+
+ /**
+ * Creates a <code>DefaultMutableTreeNode</code> object with the given
+ * user object attached to it. This node allows to add child nodes.
+ *
+ * @param userObject the user object
+ */
+ public DefaultMutableTreeNode(Object userObject)
+ {
+ this(userObject, true);
+ }
+
+ /**
+ * Creates a <code>DefaultMutableTreeNode</code> object with the given
+ * user object attached to it.
+ *
+ * @param userObject the user object
+ * @param allowsChildren <code>true</code> if the code allows to add child
+ * nodes, <code>false</code> otherwise
+ */
+ public DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
+ {
+ this.userObject = userObject;
+ this.allowsChildren = allowsChildren;
+ }
+
+ /**
+ * clone
+ *
+ * @return Object
+ */
+ public Object clone()
+ {
+ try
+ {
+ return super.clone();
+ // TODO: Do we need to do more here ?
+ }
+ catch (CloneNotSupportedException e)
+ {
+ // This never happens.
+ return null;
+ }
+ }
+
+ /**
+ * Returns a string representation of this node
+ *
+ * @return a human-readable String representing this node
+ */
+ public String toString()
+ {
+ if (userObject == null)
+ return null;
+
+ return userObject.toString();
+ }
+
+ /**
+ * Adds a new child node to this node.
+ *
+ * @param child the child node
+ *
+ * @throws IllegalArgumentException if <code>child</code> is null
+ * @throws IllegalStateException if the node does not allow children
+ */
+ public void add(MutableTreeNode child)
+ {
+ if (child == null)
+ throw new IllegalArgumentException();
+
+ if (! allowsChildren)
+ throw new IllegalStateException();
+
+ children.add(child);
+ child.setParent(this);
+ }
+
+ /**
+ * Returns the parent node of this node.
+ *
+ * @return the parent node
+ */
+ public TreeNode getParent()
+ {
+ return parent;
+ }
+
+ /**
+ * Removes the child with the given index from this node
+ *
+ * @param index the index
+ */
+ public void remove(int index)
+ {
+ children.remove(index);
+ }
+
+ /**
+ * Removes the given child from this node.
+ *
+ * @param node the child node
+ */
+ public void remove(MutableTreeNode node)
+ {
+ children.remove(node);
+ }
+
+ /**
+ * writeObject
+ *
+ * @param stream the output stream
+ *
+ * @exception IOException If an error occurs
+ */
+ private void writeObject(ObjectOutputStream stream)
+ throws IOException
+ {
+ // TODO: Implement me.
+ }
+
+ /**
+ * readObject
+ *
+ * @param stream the input stream
+ *
+ * @exception IOException If an error occurs
+ * @exception ClassNotFoundException TODO
+ */
+ private void readObject(ObjectInputStream stream)
+ throws IOException, ClassNotFoundException
+ {
+ // TODO: Implement me.
+ }
+
+ /**
+ * Inserts given child node at the given index.
+ *
+ * @param node the child node
+ * @param value the index.
+ */
+ public void insert(MutableTreeNode node, int index)
+ {
+ children.insertElementAt(node, index);
+ }
+
+ /**
+ * Returns a path to this node from the root.
+ *
+ * @return an array of tree nodes
+ */
+ public TreeNode[] getPath()
+ {
+ return getPathToRoot(this, 0);
+ }
+
+ /**
+ * Returns an enumeration containing all children of this node.
+ * <code>EMPTY_ENUMERATION</code> is returned if this node has no children.
+ *
+ * @return an enumeration of tree nodes
+ */
+ public Enumeration children()
+ {
+ if (children.size() == 0)
+ return EMPTY_ENUMERATION;
+
+ return children.elements();
+ }
+
+ /**
+ * Set the parent node for this node.
+ *
+ * @param node the parent node
+ */
+ public void setParent(MutableTreeNode node)
+ {
+ parent = node;
+ }
+
+ /**
+ * Returns the child node at a given index.
+ *
+ * @param index the index
+ *
+ * @return the child node
+ */
+ public TreeNode getChildAt(int index)
+ {
+ return (TreeNode) children.elementAt(index);
+ }
+
+ /**
+ * Returns the number of children of this node.
+ *
+ * @return the number of children
+ */
+ public int getChildCount()
+ {
+ return children.size();
+ }
+
+ /**
+ * Returns the child index for a given node.
+ *
+ * @param node this node
+ *
+ * @return the index
+ */
+ public int getIndex(TreeNode node)
+ {
+ return children.indexOf(node);
+ }
+
+ /**
+ * setAllowsChildren
+ *
+ * @param allowsChildren TODO
+ */
+ public void setAllowsChildren(boolean allowsChildren)
+ {
+ this.allowsChildren = allowsChildren;
+ }
+
+ /**
+ * getAllowsChildren
+ *
+ * @return boolean
+ */
+ public boolean getAllowsChildren()
+ {
+ return allowsChildren;
+ }
+
+ /**
+ * Sets the user object for this node
+ *
+ * @param userObject the user object
+ */
+ public void setUserObject(Object userObject)
+ {
+ this.userObject = userObject;
+ }
+
+ /**
+ * Returns the user object attached to this node. <code>null</code> is
+ * returned when no user object is set.
+ *
+ * @return the user object
+ */
+ public Object getUserObject()
+ {
+ return userObject;
+ }
+
+ /**
+ * Removes this node from its parent.
+ */
+ public void removeFromParent()
+ {
+ // FIXME: IS this implementation really correct ?
+ parent = null;
+ }
+
+ /**
+ * Removes all child nodes from this node.
+ */
+ public void removeAllChildren()
+ {
+ children.removeAllElements();
+ }
+
+ /**
+ * isNodeAncestor
+ *
+ * @param node TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeAncestor(TreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ TreeNode current = this;
+
+ while (current != null
+ && current != node)
+ current = current.getParent();
+
+ return current == node;
+ }
+
+ /**
+ * isNodeDescendant
+ *
+ * @param node0 TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeDescendant(DefaultMutableTreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ TreeNode current = node;
+
+ while (current != null
+ && current != this)
+ current = current.getParent();
+
+ return current == this;
+ }
+
+ /**
+ * getSharedAncestor
+ *
+ * @param node TODO
+ *
+ * @return TreeNode
+ */
+ public TreeNode getSharedAncestor(DefaultMutableTreeNode node)
+ {
+ TreeNode current = this;
+ ArrayList list = new ArrayList();
+
+ while (current != null)
+ {
+ list.add(current);
+ current = current.getParent();
+ }
+
+ current = node;
+
+ while (current != null)
+ {
+ if (list.contains(current))
+ return current;
+
+ current = current.getParent();
+ }
+
+ return null;
+ }
+
+ /**
+ * isNodeRelated
+ *
+ * @param node TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeRelated(DefaultMutableTreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ return node.getRoot() == getRoot();
+ }
+
+ /**
+ * getDepth
+ *
+ * @return int
+ */
+ public int getDepth()
+ {
+ if ((! allowsChildren)
+ || children.size() == 0)
+ return 0;
+
+ Stack stack = new Stack();
+ stack.push(new Integer(0));
+ TreeNode node = getChildAt(0);
+ int depth = 0;
+ int current = 1;
+
+ while (! stack.empty())
+ {
+ if (node.getChildCount() != 0)
+ {
+ node = node.getChildAt(0);
+ stack.push(new Integer(0));
+ current++;
+ }
+ else
+ {
+ if (current > depth)
+ depth = current;
+
+ int size;
+ int index;
+
+ do
+ {
+ node = node.getParent();
+ size = node.getChildCount();
+ index = ((Integer) stack.pop()).intValue() + 1;
+ current--;
+ }
+ while (index >= size
+ && node != this);
+
+ if (index < size)
+ {
+ node = node.getChildAt(index);
+ stack.push(new Integer(index));
+ current++;
+ }
+ }
+ }
+
+ return depth;
+ }
+
+ /**
+ * getLevel
+ *
+ * @return int
+ */
+ public int getLevel()
+ {
+ int count = -1;
+ TreeNode current = this;
+
+ do
+ {
+ current = current.getParent();
+ count++;
+ }
+ while (current != null);
+
+ return count;
+ }
+
+ /**
+ * getPathToRoot
+ *
+ * @param node TODO
+ * @param depth TODO
+ *
+ * @return TreeNode[]
+ */
+ protected TreeNode[] getPathToRoot(TreeNode node, int depth)
+ {
+ if (node == null)
+ {
+ if (depth == 0)
+ return null;
+
+ return new TreeNode[depth];
+ }
+
+ TreeNode[] path = getPathToRoot(node.getParent(), depth + 1);
+ path[path.length - depth - 1] = node;
+ return path;
+ }
+
+ /**
+ * getUserObjectPath
+ *
+ * @return Object[]
+ */
+ public Object[] getUserObjectPath()
+ {
+ TreeNode[] path = getPathToRoot(this, 0);
+ Object[] object = new Object[path.length];
+
+ for (int index = 0; index < path.length; ++index)
+ object[index] = ((DefaultMutableTreeNode) path[index]).getUserObject();
+
+ return object;
+ }
+
+ /**
+ * Returns the root node by iterating the parents of this node.
+ *
+ * @return the root node
+ */
+ public TreeNode getRoot()
+ {
+ TreeNode current = this;
+ TreeNode check = current.getParent();
+
+ while (check != null)
+ {
+ current = check;
+ check = current.getParent();
+ }
+
+ return current;
+ }
+
+ /**
+ * Tells whether this node is the root node or not.
+ *
+ * @return <code>true</code> if this is the root node,
+ * <code>false</code>otherwise
+ */
+ public boolean isRoot()
+ {
+ return parent == null;
+ }
+
+ /**
+ * getNextNode
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getNextNode()
+ {
+ // Return first child.
+ if (getChildCount() != 0)
+ return (DefaultMutableTreeNode) getChildAt(0);
+
+ // Return next sibling (if needed the sibling of some parent).
+ DefaultMutableTreeNode node = this;
+ DefaultMutableTreeNode sibling;
+
+ do
+ {
+ sibling = node.getNextSibling();
+ node = (DefaultMutableTreeNode) node.getParent();
+ }
+ while (sibling == null &&
+ node != null);
+
+ // Return sibling.
+ return sibling;
+ }
+
+ /**
+ * getPreviousNode
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getPreviousNode()
+ {
+ // Return null if no parent.
+ if (parent == null)
+ return null;
+
+ DefaultMutableTreeNode sibling = getPreviousSibling();
+
+ // Return parent if no sibling.
+ if (sibling == null)
+ return (DefaultMutableTreeNode) parent;
+
+ // Return last leaf of sibling.
+ if (sibling.getChildCount() != 0)
+ return sibling.getLastLeaf();
+
+ // Return sibling.
+ return sibling;
+ }
+
+ /**
+ * preorderEnumeration
+ *
+ * @return Enumeration
+ */
+ public Enumeration preorderEnumeration()
+ {
+ return null; // TODO: Implement me.
+ }
+
+ /**
+ * postorderEnumeration
+ *
+ * @return Enumeration
+ */
+ public Enumeration postorderEnumeration()
+ {
+ return null; // TODO: Implement me.
+ }
+
+ /**
+ * breadthFirstEnumeration
+ *
+ * @return Enumeration
+ */
+ public Enumeration breadthFirstEnumeration()
+ {
+ return null; // TODO: Implement me.
+ }
+
+ /**
+ * depthFirstEnumeration
+ *
+ * @return Enumeration
+ */
+ public Enumeration depthFirstEnumeration()
+ {
+ return postorderEnumeration();
+ }
+
+ /**
+ * pathFromAncestorEnumeration
+ *
+ * @param node TODO
+ *
+ * @return Enumeration
+ */
+ public Enumeration pathFromAncestorEnumeration(TreeNode node)
+ {
+ if (node == null)
+ throw new IllegalArgumentException();
+
+ TreeNode parent = this;
+ Vector nodes = new Vector();
+ nodes.add(this);
+
+ while (parent != node && parent != null)
+ {
+ parent = parent.getParent();
+ nodes.add(0, parent);
+ }
+
+ if (parent != node)
+ throw new IllegalArgumentException();
+
+ return nodes.elements();
+ }
+
+ /**
+ * isNodeChild
+ *
+ * @param node TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeChild(TreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ return node.getParent() == this;
+ }
+
+ /**
+ * getFirstChild
+ *
+ * @return TreeNode
+ */
+ public TreeNode getFirstChild()
+ {
+ return (TreeNode) children.firstElement();
+ }
+
+ /**
+ * getLastChild
+ *
+ * @return TreeNode
+ */
+ public TreeNode getLastChild()
+ {
+ return (TreeNode) children.lastElement();
+ }
+
+ /**
+ * getChildAfter
+ *
+ * @param node TODO
+ *
+ * @return TreeNode
+ */
+ public TreeNode getChildAfter(TreeNode node)
+ {
+ if (node == null
+ || node.getParent() != this)
+ throw new IllegalArgumentException();
+
+ int index = getIndex(node) + 1;
+
+ if (index == getChildCount())
+ return null;
+
+ return getChildAt(index);
+ }
+
+ /**
+ * getChildBefore
+ *
+ * @param node TODO
+ *
+ * @return TreeNode
+ */
+ public TreeNode getChildBefore(TreeNode node)
+ {
+ if (node == null
+ || node.getParent() != this)
+ throw new IllegalArgumentException();
+
+ int index = getIndex(node) - 1;
+
+ if (index < 0)
+ return null;
+
+ return getChildAt(index);
+ }
+
+ /**
+ * isNodeSibling
+ *
+ * @param node TODO
+ *
+ * @return boolean
+ */
+ public boolean isNodeSibling(TreeNode node)
+ {
+ if (node == null)
+ return false;
+
+ return (node.getParent() == getParent()
+ && getParent() != null);
+ }
+
+ /**
+ * getSiblingCount
+ *
+ * @return int
+ */
+ public int getSiblingCount()
+ {
+ if (parent == null)
+ return 1;
+
+ return parent.getChildCount();
+ }
+
+ /**
+ * getNextSibling
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getNextSibling()
+ {
+ if (parent == null)
+ return null;
+
+ int index = parent.getIndex(this) + 1;
+
+ if (index == parent.getChildCount())
+ return null;
+
+ return (DefaultMutableTreeNode) parent.getChildAt(index);
+ }
+
+ /**
+ * getPreviousSibling
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getPreviousSibling()
+ {
+ if (parent == null)
+ return null;
+
+ int index = parent.getIndex(this) - 1;
+
+ if (index < 0)
+ return null;
+
+ return (DefaultMutableTreeNode) parent.getChildAt(index);
+ }
+
+ /**
+ * isLeaf
+ *
+ * @return boolean
+ */
+ public boolean isLeaf()
+ {
+ return children.size() == 0;
+ }
+
+ /**
+ * getFirstLeaf
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getFirstLeaf()
+ {
+ TreeNode current = this;
+
+ while (current.getChildCount() > 0)
+ current = current.getChildAt(0);
+
+ return (DefaultMutableTreeNode) current;
+ }
+
+ /**
+ * getLastLeaf
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getLastLeaf()
+ {
+ TreeNode current = this;
+ int size = current.getChildCount();
+
+ while (size > 0)
+ {
+ current = current.getChildAt(size - 1);
+ size = current.getChildCount();
+ }
+
+ return (DefaultMutableTreeNode) current;
+ }
+
+ /**
+ * getNextLeaf
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getNextLeaf()
+ {
+ if (parent == null)
+ return null;
+
+ return null;
+ //return parent.getChildAfter(this);
+ }
+
+ /**
+ * getPreviousLeaf
+ *
+ * @return DefaultMutableTreeNode
+ */
+ public DefaultMutableTreeNode getPreviousLeaf()
+ {
+ if (parent == null)
+ return null;
+
+ return null;
+ //return parent.getChildBefore(this);
+ }
+
+ /**
+ * getLeafCount
+ *
+ * @return int
+ */
+ public int getLeafCount()
+ {
+ int count = 0;
+ Enumeration e = depthFirstEnumeration();
+
+ while (e.hasMoreElements())
+ {
+ TreeNode current = (TreeNode) e.nextElement();
+
+ if (current.isLeaf())
+ count++;
+ }
+
+ return count;
+ }
+}
diff --git a/libjava/javax/swing/tree/MutableTreeNode.java b/libjava/javax/swing/tree/MutableTreeNode.java
index ff038d5b3f1..1f0c943aad9 100644
--- a/libjava/javax/swing/tree/MutableTreeNode.java
+++ b/libjava/javax/swing/tree/MutableTreeNode.java
@@ -1,5 +1,5 @@
/* MutableTreeNode.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,45 +39,66 @@ package javax.swing.tree;
/**
* MutableTreeNode public interface
+
* @author Andrew Selkirk
*/
-public interface MutableTreeNode extends TreeNode {
-
- /**
- * insert
- * @param child MutableTreeNode
- * @param index Index
- */
- void insert(MutableTreeNode child, int index);
-
- /**
- * remove
- * @param index Index
- */
- void remove(int index);
-
- /**
- * remove
- * @param node MutableTreeNode
- */
- void remove(MutableTreeNode node);
-
- /**
- * setUserObject
- * @param object Object
- */
- void setUserObject(Object object);
-
- /**
- * removeFromParent
- */
- void removeFromParent();
-
- /**
- * setParent
- * @param parent MutableTreeNode
- */
- void setParent(MutableTreeNode parent);
-
-
-} // MutableTreeNode
+public interface MutableTreeNode extends TreeNode
+{
+ /**
+ * Inserts a node as child at a given index.
+ *
+ * @param child the note to insert
+ * @param index the index
+ *
+ * @see #remove(int)
+ * @see #remove(MutableTreeNode)
+ * @see #setParent(MutableTreeNode)
+ */
+ void insert(MutableTreeNode child, int index);
+
+ /**
+ * Removes the child node a given index.
+ *
+ * @param index the index
+ *
+ * @see #add(MutableTreeNode,int)
+ * @see #remove(MutableTreeNode)
+ * @see #removeFromParent()
+ */
+ void remove(int index);
+
+ /**
+ * Removes a given child node.
+ *
+ * @param node the node to remove
+ *
+ * @see #add(MutableTreeNode,int)
+ * @see #remove(int)
+ * @see #removeFromParent()
+ */
+ void remove(MutableTreeNode node);
+
+ /**
+ * Sets a user object, the data represented by the node.
+ *
+ * @param object the data
+ */
+ void setUserObject(Object object);
+
+ /**
+ * Removes this node from its parent.
+ *
+ * @see #remove(int)
+ * @see #remove(MutableTreeNode)
+ */
+ void removeFromParent();
+
+ /**
+ * Sets the parent of the node.
+ *
+ * @param parent the parent
+ *
+ * @see insert(MutableTreeNode,int)
+ */
+ void setParent(MutableTreeNode parent);
+}
diff --git a/libjava/javax/swing/tree/TreeCellEditor.java b/libjava/javax/swing/tree/TreeCellEditor.java
index d9de676dd8d..4b4357a1611 100644
--- a/libjava/javax/swing/tree/TreeCellEditor.java
+++ b/libjava/javax/swing/tree/TreeCellEditor.java
@@ -49,19 +49,17 @@ import javax.swing.JTree;
*/
public interface TreeCellEditor extends CellEditor
{
- /**
- * getTreeCellEditorComponent
- * @param tree TODO
- * @param value TODO
- * @param isSelected TODO
- * @param expanded TODO
- * @param leaf TODO
- * @param row TODO
- * @returns TODO
- */
- Component getTreeCellEditorComponent(JTree tree,
- Object value, boolean isSelected, boolean expanded,
- boolean leaf, int row);
-
-
-} // TreeCellEditor
+ /**
+ * getTreeCellEditorComponent
+ * @param tree TODO
+ * @param value TODO
+ * @param isSelected TODO
+ * @param expanded TODO
+ * @param leaf TODO
+ * @param row TODO
+ * @return TODO
+ */
+ Component getTreeCellEditorComponent(JTree tree, Object value,
+ boolean isSelected, boolean expanded,
+ boolean leaf, int row);
+}
diff --git a/libjava/javax/swing/undo/UndoManager.java b/libjava/javax/swing/undo/UndoManager.java
index c1b7cb88ffa..fcdcf34ec0f 100644
--- a/libjava/javax/swing/undo/UndoManager.java
+++ b/libjava/javax/swing/undo/UndoManager.java
@@ -1,5 +1,5 @@
/* AbstractTableModel.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.
@@ -81,7 +81,7 @@ import javax.swing.event.UndoableEditListener;
* {@link javax.swing.event.UndoableEvent} sources do not need to
* broadcast their events from inside the Swing worker thread.
*
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class UndoManager
extends CompoundEdit
diff --git a/libjava/javax/swing/undo/UndoableEditSupport.java b/libjava/javax/swing/undo/UndoableEditSupport.java
index 8b4cef77588..80234aa8a75 100644
--- a/libjava/javax/swing/undo/UndoableEditSupport.java
+++ b/libjava/javax/swing/undo/UndoableEditSupport.java
@@ -1,5 +1,5 @@
/* UndoableEditSupport.java --
- Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,8 +48,8 @@ import javax.swing.event.UndoableEditListener;
* A helper class for supporting {@link
* javax.swing.event.UndoableEditListener}.
*
- * @author <a href="mailto:aselkirk@sympatico.ca">Andrew Selkirk</a>
- * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
+ * @author Andrew Selkirk (aselkirk@sympatico.ca)
+ * @author Sascha Brawer (brawer@dandelis.ch)
*/
public class UndoableEditSupport
{
diff --git a/libjava/javax/transaction/HeuristicCommitException.java b/libjava/javax/transaction/HeuristicCommitException.java
index e1ef8e2def2..15d3091f220 100644
--- a/libjava/javax/transaction/HeuristicCommitException.java
+++ b/libjava/javax/transaction/HeuristicCommitException.java
@@ -1,5 +1,5 @@
/* HeuristicCommitException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/HeuristicMixedException.java b/libjava/javax/transaction/HeuristicMixedException.java
index 68986b60672..8ac7ecd7d83 100644
--- a/libjava/javax/transaction/HeuristicMixedException.java
+++ b/libjava/javax/transaction/HeuristicMixedException.java
@@ -1,5 +1,5 @@
/* HeuristicMixedException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/HeuristicRollbackException.java b/libjava/javax/transaction/HeuristicRollbackException.java
index 72ac3b4d4d5..e3f77c412eb 100644
--- a/libjava/javax/transaction/HeuristicRollbackException.java
+++ b/libjava/javax/transaction/HeuristicRollbackException.java
@@ -1,5 +1,5 @@
/* HeuristicRollbackException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/InvalidTransactionException.java b/libjava/javax/transaction/InvalidTransactionException.java
index 0c47912be46..bcc31eb295d 100644
--- a/libjava/javax/transaction/InvalidTransactionException.java
+++ b/libjava/javax/transaction/InvalidTransactionException.java
@@ -1,5 +1,5 @@
/* InvalidTransactionException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.transaction;
import java.rmi.RemoteException;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date April 18, 2001
*/
diff --git a/libjava/javax/transaction/NotSupportedException.java b/libjava/javax/transaction/NotSupportedException.java
index b239574fcb4..16462beb1b5 100644
--- a/libjava/javax/transaction/NotSupportedException.java
+++ b/libjava/javax/transaction/NotSupportedException.java
@@ -1,5 +1,5 @@
/* NotSupportedException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/RollbackException.java b/libjava/javax/transaction/RollbackException.java
index c8706f5bb86..2f0ad46c8f9 100644
--- a/libjava/javax/transaction/RollbackException.java
+++ b/libjava/javax/transaction/RollbackException.java
@@ -1,5 +1,5 @@
/* RollbackException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/Status.java b/libjava/javax/transaction/Status.java
index 7b3c4aea946..3f47b5227cf 100644
--- a/libjava/javax/transaction/Status.java
+++ b/libjava/javax/transaction/Status.java
@@ -1,5 +1,5 @@
/* Status.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/Synchronization.java b/libjava/javax/transaction/Synchronization.java
index e8d8eb917f8..7cd02489fe5 100644
--- a/libjava/javax/transaction/Synchronization.java
+++ b/libjava/javax/transaction/Synchronization.java
@@ -1,5 +1,5 @@
/* Synchronization.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/SystemException.java b/libjava/javax/transaction/SystemException.java
index ed9c9e4f273..e2339938b7a 100644
--- a/libjava/javax/transaction/SystemException.java
+++ b/libjava/javax/transaction/SystemException.java
@@ -1,5 +1,5 @@
/* SystemException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/Transaction.java b/libjava/javax/transaction/Transaction.java
index 55303b7c782..0c0910c172a 100644
--- a/libjava/javax/transaction/Transaction.java
+++ b/libjava/javax/transaction/Transaction.java
@@ -1,5 +1,5 @@
/* Transaction.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,7 +41,7 @@ package javax.transaction;
import javax.transaction.xa.XAResource;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/TransactionManager.java b/libjava/javax/transaction/TransactionManager.java
index 0a79bd3f6de..f8a26f1df55 100644
--- a/libjava/javax/transaction/TransactionManager.java
+++ b/libjava/javax/transaction/TransactionManager.java
@@ -1,5 +1,5 @@
/* TransactionManager.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/TransactionRequiredException.java b/libjava/javax/transaction/TransactionRequiredException.java
index ebc5679d941..ec624270f69 100644
--- a/libjava/javax/transaction/TransactionRequiredException.java
+++ b/libjava/javax/transaction/TransactionRequiredException.java
@@ -1,5 +1,5 @@
/* TransactionRequiredException --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.transaction;
import java.rmi.RemoteException;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date April 18, 2001
*/
diff --git a/libjava/javax/transaction/TransactionRolledbackException.java b/libjava/javax/transaction/TransactionRolledbackException.java
index ef4f1cc2641..45ac60fd817 100644
--- a/libjava/javax/transaction/TransactionRolledbackException.java
+++ b/libjava/javax/transaction/TransactionRolledbackException.java
@@ -1,5 +1,5 @@
/* TransactionRolledbackException --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.transaction;
import java.rmi.RemoteException;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date April 18, 2001
*/
diff --git a/libjava/javax/transaction/UserTransaction.java b/libjava/javax/transaction/UserTransaction.java
index 1327a0c50ea..00dbd206226 100644
--- a/libjava/javax/transaction/UserTransaction.java
+++ b/libjava/javax/transaction/UserTransaction.java
@@ -1,5 +1,5 @@
/* UserTransaction.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ exception statement from your version. */
package javax.transaction;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/xa/XAException.java b/libjava/javax/transaction/xa/XAException.java
index 48c7ca8126d..96e614e8404 100644
--- a/libjava/javax/transaction/xa/XAException.java
+++ b/libjava/javax/transaction/xa/XAException.java
@@ -1,5 +1,5 @@
/* XAException.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,7 @@ exception statement from your version. */
package javax.transaction.xa;
/**
- * @author Tom Tromey <tromey@redhat.com>
+ * @author Tom Tromey (tromey@redhat.com)
* @date April 18, 2001
*/
diff --git a/libjava/javax/transaction/xa/XAResource.java b/libjava/javax/transaction/xa/XAResource.java
index 6fd0717e2d0..194b02f867e 100644
--- a/libjava/javax/transaction/xa/XAResource.java
+++ b/libjava/javax/transaction/xa/XAResource.java
@@ -1,5 +1,5 @@
/* XAResource.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,7 @@ exception statement from your version. */
package javax.transaction.xa;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/transaction/xa/Xid.java b/libjava/javax/transaction/xa/Xid.java
index c91843d303b..e34256dc8de 100644
--- a/libjava/javax/transaction/xa/Xid.java
+++ b/libjava/javax/transaction/xa/Xid.java
@@ -1,5 +1,5 @@
/* Xid.java --
- Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,7 +38,7 @@ exception statement from your version. */
package javax.transaction.xa;
/**
- * @author Warren Levy <warrenl@redhat.com>
+ * @author Warren Levy (warrenl@redhat.com)
* @date May 25, 2001
*/
diff --git a/libjava/javax/xml/XMLConstants.java b/libjava/javax/xml/XMLConstants.java
index 4b9b0661736..4c256f44329 100644
--- a/libjava/javax/xml/XMLConstants.java
+++ b/libjava/javax/xml/XMLConstants.java
@@ -1,5 +1,5 @@
/* XMLConstants.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml;
/**
* Repository for well-known XML constants.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public final class XMLConstants
diff --git a/libjava/javax/xml/datatype/DatatypeConfigurationException.java b/libjava/javax/xml/datatype/DatatypeConfigurationException.java
index 15440798807..0e3243b87f0 100644
--- a/libjava/javax/xml/datatype/DatatypeConfigurationException.java
+++ b/libjava/javax/xml/datatype/DatatypeConfigurationException.java
@@ -1,5 +1,5 @@
/* DatatypeConfigurationException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.datatype;
/**
* A serious error during datatype configuration.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class DatatypeConfigurationException
diff --git a/libjava/javax/xml/datatype/DatatypeConstants.java b/libjava/javax/xml/datatype/DatatypeConstants.java
index a761f88d50e..5724502e7e7 100644
--- a/libjava/javax/xml/datatype/DatatypeConstants.java
+++ b/libjava/javax/xml/datatype/DatatypeConstants.java
@@ -1,5 +1,5 @@
/* DatatypeConstants.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.xml.namespace.QName;
/**
* Basic data type constants.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public final class DatatypeConstants
diff --git a/libjava/javax/xml/datatype/DatatypeFactory.java b/libjava/javax/xml/datatype/DatatypeFactory.java
index 2299435fc4a..b3c8cf43142 100644
--- a/libjava/javax/xml/datatype/DatatypeFactory.java
+++ b/libjava/javax/xml/datatype/DatatypeFactory.java
@@ -1,5 +1,5 @@
/* DatatypeFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import java.util.GregorianCalendar;
* Factory class to create new datatype objects mapping XML to and from Java
* objects.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class DatatypeFactory
diff --git a/libjava/javax/xml/datatype/Duration.java b/libjava/javax/xml/datatype/Duration.java
index ed1221dbf20..b7d188cd7b8 100644
--- a/libjava/javax/xml/datatype/Duration.java
+++ b/libjava/javax/xml/datatype/Duration.java
@@ -1,5 +1,5 @@
/* Duration.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import javax.xml.namespace.QName;
/**
* An immutable time space as specified in XML Schema 1.0.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class Duration
diff --git a/libjava/javax/xml/datatype/XMLGregorianCalendar.java b/libjava/javax/xml/datatype/XMLGregorianCalendar.java
index c3585a48905..48280381c9c 100644
--- a/libjava/javax/xml/datatype/XMLGregorianCalendar.java
+++ b/libjava/javax/xml/datatype/XMLGregorianCalendar.java
@@ -1,5 +1,5 @@
/* XMLGregorianCalendar.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import javax.xml.namespace.QName;
/**
* An XML Schema 1.0 date/time data type.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class XMLGregorianCalendar
diff --git a/libjava/javax/xml/namespace/NamespaceContext.java b/libjava/javax/xml/namespace/NamespaceContext.java
index 2e790654870..4b768dcdeb7 100644
--- a/libjava/javax/xml/namespace/NamespaceContext.java
+++ b/libjava/javax/xml/namespace/NamespaceContext.java
@@ -1,5 +1,5 @@
/* NamespaceContext.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import java.util.Iterator;
/**
* Interface by which namespace properties are made available.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public interface NamespaceContext
diff --git a/libjava/javax/xml/namespace/QName.java b/libjava/javax/xml/namespace/QName.java
index 62dc8cd08a6..fbb222efc07 100644
--- a/libjava/javax/xml/namespace/QName.java
+++ b/libjava/javax/xml/namespace/QName.java
@@ -1,5 +1,5 @@
/* QName.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import javax.xml.XMLConstants;
* An XML
* <a href='http://www.w3.org/TR/REC-xml-names/#ns-qualnames'>qualified name</a>.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class QName
diff --git a/libjava/javax/xml/parsers/DocumentBuilder.java b/libjava/javax/xml/parsers/DocumentBuilder.java
index 13d7658de36..15130e89583 100644
--- a/libjava/javax/xml/parsers/DocumentBuilder.java
+++ b/libjava/javax/xml/parsers/DocumentBuilder.java
@@ -1,5 +1,5 @@
/* DocumentBuilder.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,6 @@ import org.w3c.dom.DOMImplementation;
import org.xml.sax.InputSource;
import org.xml.sax.EntityResolver;
import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
@@ -55,7 +54,7 @@ import org.xml.sax.SAXException;
* graph.
* Instances of this class are <em>not</em> guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class DocumentBuilder
{
diff --git a/libjava/javax/xml/parsers/DocumentBuilderFactory.java b/libjava/javax/xml/parsers/DocumentBuilderFactory.java
index c531005164d..1ba51d0217f 100644
--- a/libjava/javax/xml/parsers/DocumentBuilderFactory.java
+++ b/libjava/javax/xml/parsers/DocumentBuilderFactory.java
@@ -1,5 +1,5 @@
/* DocumentBuilderFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,15 +45,12 @@ import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Properties;
import javax.xml.validation.Schema;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
/**
* Factory for obtaining document builders.
* Instances of this class are <em>not</em> guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class DocumentBuilderFactory
{
diff --git a/libjava/javax/xml/parsers/FactoryConfigurationError.java b/libjava/javax/xml/parsers/FactoryConfigurationError.java
index e7ff57e2a90..351b340a0e0 100644
--- a/libjava/javax/xml/parsers/FactoryConfigurationError.java
+++ b/libjava/javax/xml/parsers/FactoryConfigurationError.java
@@ -1,5 +1,5 @@
/* FactoryConfigurationError.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.parsers;
/**
* An error occurred during configuration of the parser factory.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class FactoryConfigurationError
extends Error
diff --git a/libjava/javax/xml/parsers/ParserConfigurationException.java b/libjava/javax/xml/parsers/ParserConfigurationException.java
index d7b54cf7b46..a8cd546cf20 100644
--- a/libjava/javax/xml/parsers/ParserConfigurationException.java
+++ b/libjava/javax/xml/parsers/ParserConfigurationException.java
@@ -1,5 +1,5 @@
/* ParserConfigurationException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.parsers;
/**
* An exception occurred during configuration of the XML parser.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class ParserConfigurationException
extends Exception
diff --git a/libjava/javax/xml/parsers/SAXParser.java b/libjava/javax/xml/parsers/SAXParser.java
index 10289dc6a20..f05cc510dec 100644
--- a/libjava/javax/xml/parsers/SAXParser.java
+++ b/libjava/javax/xml/parsers/SAXParser.java
@@ -1,5 +1,5 @@
/* SAXParser.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -55,7 +55,7 @@ import org.xml.sax.helpers.DefaultHandler;
* Convenience class for using or accessing a SAX version 1 or 2 parser.
* Instances of this class are <em>not</em> guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class SAXParser
{
diff --git a/libjava/javax/xml/parsers/SAXParserFactory.java b/libjava/javax/xml/parsers/SAXParserFactory.java
index 143ee620697..7b87bf24e72 100644
--- a/libjava/javax/xml/parsers/SAXParserFactory.java
+++ b/libjava/javax/xml/parsers/SAXParserFactory.java
@@ -1,5 +1,5 @@
/* SAXParserFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -53,7 +53,7 @@ import org.xml.sax.SAXNotSupportedException;
* Factory for obtaining SAX parsers.
* Instances of this class are <em>not</em> guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class SAXParserFactory
{
diff --git a/libjava/javax/xml/transform/ErrorListener.java b/libjava/javax/xml/transform/ErrorListener.java
index f2021cd02d3..153de5c6612 100644
--- a/libjava/javax/xml/transform/ErrorListener.java
+++ b/libjava/javax/xml/transform/ErrorListener.java
@@ -1,5 +1,5 @@
/* ErrorListener.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
* Error reporting callback handler.
* Equivalent to the SAX ErrorHandler.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface ErrorListener
{
diff --git a/libjava/javax/xml/transform/OutputKeys.java b/libjava/javax/xml/transform/OutputKeys.java
index 784194c87d6..f034a921bd6 100644
--- a/libjava/javax/xml/transform/OutputKeys.java
+++ b/libjava/javax/xml/transform/OutputKeys.java
@@ -1,5 +1,5 @@
/* OutputKeys.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
/**
* Constants for XSLT output attributes.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class OutputKeys
{
diff --git a/libjava/javax/xml/transform/Result.java b/libjava/javax/xml/transform/Result.java
index ec9420f6e41..88b4659ca56 100644
--- a/libjava/javax/xml/transform/Result.java
+++ b/libjava/javax/xml/transform/Result.java
@@ -1,5 +1,5 @@
/* Result.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ package javax.xml.transform;
/**
* The result of an XSL transformation.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface Result
{
diff --git a/libjava/javax/xml/transform/Source.java b/libjava/javax/xml/transform/Source.java
index 4d6002b5344..ef1730a6899 100644
--- a/libjava/javax/xml/transform/Source.java
+++ b/libjava/javax/xml/transform/Source.java
@@ -1,5 +1,5 @@
/* Source.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
* An XML input source.
* This is equivalent to a SAX InputSource.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface Source
{
diff --git a/libjava/javax/xml/transform/SourceLocator.java b/libjava/javax/xml/transform/SourceLocator.java
index dfeea46d143..bc39e52db61 100644
--- a/libjava/javax/xml/transform/SourceLocator.java
+++ b/libjava/javax/xml/transform/SourceLocator.java
@@ -1,5 +1,5 @@
/* SourceLocator.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
* The location in an XML resource at which an event occurred.
* Tis is equivalent to the SAX Locator.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface SourceLocator
{
diff --git a/libjava/javax/xml/transform/Templates.java b/libjava/javax/xml/transform/Templates.java
index 3e9293ee122..2cae7adfb73 100644
--- a/libjava/javax/xml/transform/Templates.java
+++ b/libjava/javax/xml/transform/Templates.java
@@ -1,5 +1,5 @@
/* Templates.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.util.Properties;
* A compiled, reusable XSL transformation.
* Implementations of this class are guaranteed to be thread safe.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface Templates
{
diff --git a/libjava/javax/xml/transform/Transformer.java b/libjava/javax/xml/transform/Transformer.java
index 3bf1e886de4..fe2a9ce3432 100644
--- a/libjava/javax/xml/transform/Transformer.java
+++ b/libjava/javax/xml/transform/Transformer.java
@@ -1,5 +1,5 @@
/* Transformer.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import java.util.Properties;
* Instances of this class may be reused, but the same instance may not be
* used concurrently by different threads.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class Transformer
{
diff --git a/libjava/javax/xml/transform/TransformerConfigurationException.java b/libjava/javax/xml/transform/TransformerConfigurationException.java
index 006fc2f4f22..9915d1a0d3f 100644
--- a/libjava/javax/xml/transform/TransformerConfigurationException.java
+++ b/libjava/javax/xml/transform/TransformerConfigurationException.java
@@ -1,5 +1,5 @@
/* TransformerConfigurationException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
/**
* An exception occurred during configuration of the transformer.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class TransformerConfigurationException
extends TransformerException
diff --git a/libjava/javax/xml/transform/TransformerException.java b/libjava/javax/xml/transform/TransformerException.java
index c10fa8a4fc2..7e40cd294a4 100644
--- a/libjava/javax/xml/transform/TransformerException.java
+++ b/libjava/javax/xml/transform/TransformerException.java
@@ -1,5 +1,5 @@
/* TransformerException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import java.io.PrintWriter;
/**
* An exception occurred during the transformation process.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class TransformerException
extends Exception
diff --git a/libjava/javax/xml/transform/TransformerFactory.java b/libjava/javax/xml/transform/TransformerFactory.java
index a1f50fc2466..53d9173cdde 100644
--- a/libjava/javax/xml/transform/TransformerFactory.java
+++ b/libjava/javax/xml/transform/TransformerFactory.java
@@ -1,5 +1,5 @@
/* TransformerFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.util.Properties;
/**
* Factory for obtaining transformation contexts.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class TransformerFactory
{
diff --git a/libjava/javax/xml/transform/TransformerFactoryConfigurationError.java b/libjava/javax/xml/transform/TransformerFactoryConfigurationError.java
index 3ec8809918b..ae1521f9354 100644
--- a/libjava/javax/xml/transform/TransformerFactoryConfigurationError.java
+++ b/libjava/javax/xml/transform/TransformerFactoryConfigurationError.java
@@ -1,5 +1,5 @@
/* TransformerFactoryConfigurationError.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,7 +39,7 @@ package javax.xml.transform;
/**
* An error occurred during configuration of the transformer factory.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class TransformerFactoryConfigurationError
extends Error
diff --git a/libjava/javax/xml/transform/URIResolver.java b/libjava/javax/xml/transform/URIResolver.java
index 7dca029e836..a859b7a9266 100644
--- a/libjava/javax/xml/transform/URIResolver.java
+++ b/libjava/javax/xml/transform/URIResolver.java
@@ -1,5 +1,5 @@
/* URIResolver.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.transform;
* Callback that can resolve a URI into source XML for transformation.
* Equivalent to the SAX EntityResolver.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface URIResolver
{
diff --git a/libjava/javax/xml/transform/dom/DOMLocator.java b/libjava/javax/xml/transform/dom/DOMLocator.java
index 7e0f8304eda..29953bed263 100644
--- a/libjava/javax/xml/transform/dom/DOMLocator.java
+++ b/libjava/javax/xml/transform/dom/DOMLocator.java
@@ -1,5 +1,5 @@
/* DOMLocator.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import org.w3c.dom.Node;
/**
* Locator for reporting a location in a W3C DOM object graph.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface DOMLocator
extends SourceLocator
diff --git a/libjava/javax/xml/transform/dom/DOMResult.java b/libjava/javax/xml/transform/dom/DOMResult.java
index e62e30bfca0..5a4ee3337e0 100644
--- a/libjava/javax/xml/transform/dom/DOMResult.java
+++ b/libjava/javax/xml/transform/dom/DOMResult.java
@@ -1,5 +1,5 @@
/* DOMResult.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,7 @@ import org.w3c.dom.Node;
* If no target node is specified, the result tree will be made available by
* the {@link #getNode} method after the transformation.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class DOMResult
implements Result
diff --git a/libjava/javax/xml/transform/dom/DOMSource.java b/libjava/javax/xml/transform/dom/DOMSource.java
index e002dbf06b9..d87c4fba7fa 100644
--- a/libjava/javax/xml/transform/dom/DOMSource.java
+++ b/libjava/javax/xml/transform/dom/DOMSource.java
@@ -1,5 +1,5 @@
/* DOMSource.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import org.w3c.dom.Node;
/**
* An XML source specified as a W3C DOM node context.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class DOMSource
implements Source
diff --git a/libjava/javax/xml/transform/sax/SAXResult.java b/libjava/javax/xml/transform/sax/SAXResult.java
index d9bf9a57ed3..94cbacdf478 100644
--- a/libjava/javax/xml/transform/sax/SAXResult.java
+++ b/libjava/javax/xml/transform/sax/SAXResult.java
@@ -1,5 +1,5 @@
/* SAXResult.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,7 +45,7 @@ import org.xml.sax.ext.LexicalHandler;
* Specifies SAX handlers to be used as a result sink during a
* transformation.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class SAXResult implements Result
{
diff --git a/libjava/javax/xml/transform/sax/SAXSource.java b/libjava/javax/xml/transform/sax/SAXSource.java
index 15df252c727..f26a433522f 100644
--- a/libjava/javax/xml/transform/sax/SAXSource.java
+++ b/libjava/javax/xml/transform/sax/SAXSource.java
@@ -1,5 +1,5 @@
/* SAXSource.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import org.xml.sax.XMLReader;
* Specifies a SAX XML source. This is a tuple of input source and SAX
* parser.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class SAXSource
implements Source
diff --git a/libjava/javax/xml/transform/sax/SAXTransformerFactory.java b/libjava/javax/xml/transform/sax/SAXTransformerFactory.java
index 66d51979b7e..e73b3169622 100644
--- a/libjava/javax/xml/transform/sax/SAXTransformerFactory.java
+++ b/libjava/javax/xml/transform/sax/SAXTransformerFactory.java
@@ -1,5 +1,5 @@
/* SAXTransformerFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -37,13 +37,10 @@ exception statement from your version. */
package javax.xml.transform.sax;
-import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Templates;
-import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
-import org.xml.sax.InputSource;
import org.xml.sax.XMLFilter;
/**
@@ -52,7 +49,7 @@ import org.xml.sax.XMLFilter;
* This factory provides SAX content handlers that can create transformation
* templates and transformers.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public abstract class SAXTransformerFactory extends TransformerFactory
{
diff --git a/libjava/javax/xml/transform/sax/TemplatesHandler.java b/libjava/javax/xml/transform/sax/TemplatesHandler.java
index 8ee840d70f2..f4d288b3215 100644
--- a/libjava/javax/xml/transform/sax/TemplatesHandler.java
+++ b/libjava/javax/xml/transform/sax/TemplatesHandler.java
@@ -1,5 +1,5 @@
/* TemplatesHandler.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,7 +44,7 @@ import org.xml.sax.ContentHandler;
* A content handler that processes SAX parse events into a compiled
* transformation template.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface TemplatesHandler
extends ContentHandler
diff --git a/libjava/javax/xml/transform/sax/TransformerHandler.java b/libjava/javax/xml/transform/sax/TransformerHandler.java
index 0b2b1bd24d7..3341f621c20 100644
--- a/libjava/javax/xml/transform/sax/TransformerHandler.java
+++ b/libjava/javax/xml/transform/sax/TransformerHandler.java
@@ -1,5 +1,5 @@
/* TransformerHandler.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,7 @@ import org.xml.sax.ext.LexicalHandler;
/**
* A content handler that transforms SAX events into a result tree.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public interface TransformerHandler
extends ContentHandler, LexicalHandler, DTDHandler
diff --git a/libjava/javax/xml/transform/stream/StreamResult.java b/libjava/javax/xml/transform/stream/StreamResult.java
index fe4462d920d..df7b0dd9987 100644
--- a/libjava/javax/xml/transform/stream/StreamResult.java
+++ b/libjava/javax/xml/transform/stream/StreamResult.java
@@ -1,5 +1,5 @@
/* StreamResult.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,7 @@ import javax.xml.transform.Result;
/**
* Specifies a stream to which to write the transformation result.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class StreamResult
implements Result
diff --git a/libjava/javax/xml/transform/stream/StreamSource.java b/libjava/javax/xml/transform/stream/StreamSource.java
index d65dcafed4f..f6499a4d989 100644
--- a/libjava/javax/xml/transform/stream/StreamSource.java
+++ b/libjava/javax/xml/transform/stream/StreamSource.java
@@ -1,5 +1,5 @@
/* StreamSource.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,7 @@ import javax.xml.transform.Source;
/**
* Specifies a stream from which to read the source XML data.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
*/
public class StreamSource
implements Source
diff --git a/libjava/javax/xml/validation/Schema.java b/libjava/javax/xml/validation/Schema.java
index 099a77e0b98..fc196e104c6 100644
--- a/libjava/javax/xml/validation/Schema.java
+++ b/libjava/javax/xml/validation/Schema.java
@@ -1,5 +1,5 @@
/* Schema.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.validation;
/**
* An immutable grammar.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class Schema
diff --git a/libjava/javax/xml/validation/SchemaFactory.java b/libjava/javax/xml/validation/SchemaFactory.java
index 4310cc5f543..3c5155d22b4 100644
--- a/libjava/javax/xml/validation/SchemaFactory.java
+++ b/libjava/javax/xml/validation/SchemaFactory.java
@@ -1,5 +1,5 @@
/* SchemaFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,7 +50,7 @@ import org.xml.sax.SAXNotSupportedException;
/**
* Factory for obtaining schemata.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class SchemaFactory
diff --git a/libjava/javax/xml/validation/TypeInfoProvider.java b/libjava/javax/xml/validation/TypeInfoProvider.java
index bec632ca64a..11da16c15f8 100644
--- a/libjava/javax/xml/validation/TypeInfoProvider.java
+++ b/libjava/javax/xml/validation/TypeInfoProvider.java
@@ -1,5 +1,5 @@
/* TypeInfoProvider.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import org.w3c.dom.TypeInfo;
* Provides access to the PSVI type info supplied by
* <code>ValidatorHandler</code>.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class TypeInfoProvider
diff --git a/libjava/javax/xml/validation/Validator.java b/libjava/javax/xml/validation/Validator.java
index 291bcbdafa9..48107ee1d2f 100644
--- a/libjava/javax/xml/validation/Validator.java
+++ b/libjava/javax/xml/validation/Validator.java
@@ -1,5 +1,5 @@
/* Validator.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -49,7 +49,7 @@ import org.xml.sax.SAXNotSupportedException;
/**
* A processor that validates a document against a schema.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class Validator
diff --git a/libjava/javax/xml/validation/ValidatorHandler.java b/libjava/javax/xml/validation/ValidatorHandler.java
index dc36909ecaa..c7427e68059 100644
--- a/libjava/javax/xml/validation/ValidatorHandler.java
+++ b/libjava/javax/xml/validation/ValidatorHandler.java
@@ -1,5 +1,5 @@
/* ValidatorHandler.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,7 @@ import org.xml.sax.SAXNotSupportedException;
/**
* A streaming validator that operates on a SAX event stream.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class ValidatorHandler
diff --git a/libjava/javax/xml/xpath/XPathConstants.java b/libjava/javax/xml/xpath/XPathConstants.java
index a4b0b163fdb..70b9d45518f 100644
--- a/libjava/javax/xml/xpath/XPathConstants.java
+++ b/libjava/javax/xml/xpath/XPathConstants.java
@@ -1,5 +1,5 @@
/* XPathConstants.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.xml.namespace.QName;
/**
* XPath constants.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathConstants
diff --git a/libjava/javax/xml/xpath/XPathException.java b/libjava/javax/xml/xpath/XPathException.java
index 4ca992bb015..a6e59ae2386 100644
--- a/libjava/javax/xml/xpath/XPathException.java
+++ b/libjava/javax/xml/xpath/XPathException.java
@@ -1,5 +1,5 @@
/* XPathException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import java.io.PrintWriter;
/**
* A generic XPath exception.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathException
diff --git a/libjava/javax/xml/xpath/XPathExpression.java b/libjava/javax/xml/xpath/XPathExpression.java
index b7af8f6bb3a..b87fbd2d5e3 100644
--- a/libjava/javax/xml/xpath/XPathExpression.java
+++ b/libjava/javax/xml/xpath/XPathExpression.java
@@ -1,5 +1,5 @@
/* XPathExpression.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -43,7 +43,7 @@ import org.xml.sax.InputSource;
/**
* An XPath expression.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public interface XPathExpression
diff --git a/libjava/javax/xml/xpath/XPathExpressionException.java b/libjava/javax/xml/xpath/XPathExpressionException.java
index 4ba19915428..ff10c3014cb 100644
--- a/libjava/javax/xml/xpath/XPathExpressionException.java
+++ b/libjava/javax/xml/xpath/XPathExpressionException.java
@@ -1,5 +1,5 @@
/* XPathExpressionException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.xpath;
/**
* An exception in an XPath expression.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathExpressionException
diff --git a/libjava/javax/xml/xpath/XPathFactory.java b/libjava/javax/xml/xpath/XPathFactory.java
index 64076f51ded..8aad6cf7a22 100644
--- a/libjava/javax/xml/xpath/XPathFactory.java
+++ b/libjava/javax/xml/xpath/XPathFactory.java
@@ -1,5 +1,5 @@
/* XPathFactory.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -48,7 +48,7 @@ import java.util.Properties;
/**
* Factory for creating XPath environments.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public abstract class XPathFactory
diff --git a/libjava/javax/xml/xpath/XPathFactoryConfigurationException.java b/libjava/javax/xml/xpath/XPathFactoryConfigurationException.java
index 56c45d12e22..64ffbbeec14 100644
--- a/libjava/javax/xml/xpath/XPathFactoryConfigurationException.java
+++ b/libjava/javax/xml/xpath/XPathFactoryConfigurationException.java
@@ -1,5 +1,5 @@
/* XPathFactoryConfigurationException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.xpath;
/**
* A configuration exception in an XPath factory environment.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathFactoryConfigurationException
diff --git a/libjava/javax/xml/xpath/XPathFunction.java b/libjava/javax/xml/xpath/XPathFunction.java
index a071eb59620..c9e450a216a 100644
--- a/libjava/javax/xml/xpath/XPathFunction.java
+++ b/libjava/javax/xml/xpath/XPathFunction.java
@@ -1,5 +1,5 @@
/* XPathFunction.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import java.util.List;
/**
* An XPath extension function.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public interface XPathFunction
diff --git a/libjava/javax/xml/xpath/XPathFunctionException.java b/libjava/javax/xml/xpath/XPathFunctionException.java
index 9a6751a2f32..fb784171a84 100644
--- a/libjava/javax/xml/xpath/XPathFunctionException.java
+++ b/libjava/javax/xml/xpath/XPathFunctionException.java
@@ -1,5 +1,5 @@
/* XPathFunctionException.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,7 +40,7 @@ package javax.xml.xpath;
/**
* An exception in an XPath function.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public class XPathFunctionException
diff --git a/libjava/javax/xml/xpath/XPathFunctionResolver.java b/libjava/javax/xml/xpath/XPathFunctionResolver.java
index 8fb0bd4234e..bf1cd82e1f6 100644
--- a/libjava/javax/xml/xpath/XPathFunctionResolver.java
+++ b/libjava/javax/xml/xpath/XPathFunctionResolver.java
@@ -1,5 +1,5 @@
/* XPathFunctionResolver.java --
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,7 +42,7 @@ import javax.xml.namespace.QName;
/**
* Interface providing the means to access XPath extension functions.
*
- * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @author (a href='mailto:dog@gnu.org'>Chris Burdess</a)
* @since 1.3
*/
public interface XPathFunctionResolver