--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=Look In:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=Save In:
FileChooser.fileNameLabelText=File Name:
-FileChooser.folderNameLabelText=Folder name:
+FileChooser.fileNameLabelMnemonic=78
+FileChooser.folderNameLabelText=Folder Name:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=Files of Type:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=Up One Level
FileChooser.upFolderAccessibleName=Up
FileChooser.homeFolderToolTipText=Home
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_de.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=Suchen in:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=Speichern in:
FileChooser.fileNameLabelText=Dateiname:
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=Ordnername:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=Dateityp:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=Eine Ebene h\u00F6her
FileChooser.upFolderAccessibleName=Nach oben
FileChooser.homeFolderToolTipText=Home
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_es.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_es.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=Buscar en:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=Guardar en:
FileChooser.fileNameLabelText=Nombre de Archivo:
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=Nombre de la Carpeta:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=Archivos de Tipo:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=Subir un Nivel
FileChooser.upFolderAccessibleName=Arriba
FileChooser.homeFolderToolTipText=Inicio
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=Rechercher dans :
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=Enregistrer dans :
FileChooser.fileNameLabelText=Nom du fichier :
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=Nom du dossier :
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=Fichiers de type :
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=Remonte d'un niveau.
FileChooser.upFolderAccessibleName=Monter
FileChooser.homeFolderToolTipText=R\u00E9pertoire d'origine
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_it.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_it.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=Cerca in:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=Salva in:
FileChooser.fileNameLabelText=Nome file:
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=Nome della cartella:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=Tipo file:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=Cartella superiore
FileChooser.upFolderAccessibleName=Superiore
FileChooser.homeFolderToolTipText=Home
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ja.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ja.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=\u53C2\u7167:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=\u4FDD\u5B58:
FileChooser.fileNameLabelText=\u30D5\u30A1\u30A4\u30EB\u540D:
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=\u30D5\u30A9\u30EB\u30C0\u540D:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=\u30D5\u30A1\u30A4\u30EB\u306E\u30BF\u30A4\u30D7:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=1\u30EC\u30D9\u30EB\u4E0A\u3078
FileChooser.upFolderAccessibleName=\u4E0A\u3078
FileChooser.homeFolderToolTipText=\u30DB\u30FC\u30E0
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_ko.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=\uAC80\uC0C9 \uC704\uCE58:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=\uC800\uC7A5 \uC704\uCE58:
FileChooser.fileNameLabelText=\uD30C\uC77C \uC774\uB984:
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=\uD3F4\uB354 \uC774\uB984:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=\uD30C\uC77C \uC720\uD615:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=\uD55C \uB808\uBCA8 \uC704\uB85C
FileChooser.upFolderAccessibleName=\uC704\uB85C
FileChooser.homeFolderToolTipText=\uD648
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_pt_BR.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=Consultar Em:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=Salvar Em:
FileChooser.fileNameLabelText=Nome do Arquivo:
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=Nome da pasta:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=Arquivos do Tipo:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=Um N\u00EDvel Acima
FileChooser.upFolderAccessibleName=Acima
FileChooser.homeFolderToolTipText=In\u00EDcio
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=Leta i:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=Spara i:
FileChooser.fileNameLabelText=Filnamn:
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=Mapp:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=Filformat:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=Upp en niv\u00E5
FileChooser.upFolderAccessibleName=Upp
FileChooser.homeFolderToolTipText=Hem
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_CN.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=\u67E5\u770B:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=\u4FDD\u5B58:
FileChooser.fileNameLabelText=\u6587\u4EF6\u540D:
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=\u6587\u4EF6\u5939\u540D:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=\u6587\u4EF6\u7C7B\u578B:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=\u5411\u4E0A\u4E00\u7EA7
FileChooser.upFolderAccessibleName=\u5411\u4E0A
FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u5F55
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.properties Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_zh_TW.properties Mon Aug 29 14:27:21 2011 -0700
@@ -19,10 +19,14 @@
############ FILE CHOOSER STRINGS #############
FileChooser.lookInLabelText=\u67E5\u8A62:
+FileChooser.lookInLabelMnemonic=73
FileChooser.saveInLabelText=\u5132\u5B58\u65BC:
FileChooser.fileNameLabelText=\u6A94\u6848\u540D\u7A31:
+FileChooser.fileNameLabelMnemonic=78
FileChooser.folderNameLabelText=\u8CC7\u6599\u593E\u540D\u7A31:
+FileChooser.folderNameLabelMnemonic=78
FileChooser.filesOfTypeLabelText=\u6A94\u6848\u985E\u578B:
+FileChooser.filesOfTypeLabelMnemonic=84
FileChooser.upFolderToolTipText=\u5F80\u4E0A\u4E00\u5C64
FileChooser.upFolderAccessibleName=\u5F80\u4E0A
FileChooser.homeFolderToolTipText=\u4E3B\u76EE\u9304
--- a/jdk/src/share/classes/javax/swing/SwingUtilities.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/SwingUtilities.java Mon Aug 29 14:27:21 2011 -0700
@@ -1274,8 +1274,7 @@
* <p>
* Additional documentation and examples for this method can be
* found in
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How to Use Threads</a>,
- * in <em>The Java Tutorial</em>.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency in Swing</a>.
* <p>
* As of 1.3 this method is just a cover for <code>java.awt.EventQueue.invokeLater()</code>.
* <p>
@@ -1326,8 +1325,7 @@
* <p>
* Additional documentation and examples for this method can be
* found in
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How to Use Threads</a>,
- * in <em>The Java Tutorial</em>.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency in Swing</a>.
* <p>
* As of 1.3 this method is just a cover for
* <code>java.awt.EventQueue.invokeAndWait()</code>.
--- a/jdk/src/share/classes/javax/swing/SwingWorker.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/SwingWorker.java Mon Aug 29 14:27:21 2011 -0700
@@ -50,8 +50,8 @@
* When writing a multi-threaded application using Swing, there are
* two constraints to keep in mind:
* (refer to
- * <a href="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">
- * How to Use Threads
+ * <a href="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">
+ * Concurrency in Swing
* </a> for more details):
* <ul>
* <li> Time-consuming tasks should not be run on the <i>Event
--- a/jdk/src/share/classes/javax/swing/package.html Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/package.html Mon Aug 29 14:27:21 2011 -0700
@@ -119,9 +119,9 @@
processing when working with Swing.
<p>
More information on this topic can be found in the
-<a href="http://java.sun.com/docs/books/tutorial/uiswing/">Swing tutorial</a>,
+<a href="http://download.oracle.com/javase/tutorial/uiswing/">Swing tutorial</a>,
in particular the section on
-<a href="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How to Use Threads</a>.
+<a href="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency in Swing</a>.
<H2>
--- a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java Mon Aug 29 14:27:21 2011 -0700
@@ -409,8 +409,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param r the renderer to execute
*/
@@ -570,8 +570,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param offs the starting offset >= 0
* @param len the number of characters to remove >= 0
@@ -683,8 +683,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param offs the starting offset >= 0
* @param str the string to insert; does nothing with null/empty strings
@@ -818,8 +818,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param offs the position in the model >= 0
* @return the position
--- a/jdk/src/share/classes/javax/swing/text/DefaultCaret.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/text/DefaultCaret.java Mon Aug 29 14:27:21 2011 -0700
@@ -237,8 +237,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*/
protected final synchronized void repaint() {
if (component != null) {
--- a/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java Mon Aug 29 14:27:21 2011 -0700
@@ -173,8 +173,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param offset the starting offset >= 0
* @param data the element data
@@ -426,8 +426,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param pos the offset from the start of the document >= 0
* @param s the logical style to assign to the paragraph, null if none
@@ -483,8 +483,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param offset the offset in the document >= 0
* @param length the length >= 0
@@ -536,8 +536,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param offset the offset into the paragraph >= 0
* @param length the number of characters affected >= 0
--- a/jdk/src/share/classes/javax/swing/text/JTextComponent.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/text/JTextComponent.java Mon Aug 29 14:27:21 2011 -0700
@@ -2213,8 +2213,8 @@
* <p>
* This method is thread-safe, although most Swing methods are not. Please
* see <A
- * HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">
- * How to Use Threads</A> for more information.
+ * HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">
+ * Concurrency in Swing</A> for more information.
*
* <p>
* <b>Sample Usage</b>. This code snippet shows a cross-platform print
@@ -2471,8 +2471,8 @@
* <p>
* This method is thread-safe, although most Swing methods are not. Please
* see <A
- * HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">
- * How to Use Threads</A> for more information.
+ * HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">
+ * Concurrency in Swing</A> for more information.
*
* <p>
* The returned {@code Printable} can be printed on any thread.
--- a/jdk/src/share/classes/javax/swing/text/PlainDocument.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/text/PlainDocument.java Mon Aug 29 14:27:21 2011 -0700
@@ -100,8 +100,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param offs the starting offset >= 0
* @param str the string to insert; does nothing with null/empty strings
--- a/jdk/src/share/classes/javax/swing/text/StyleContext.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/text/StyleContext.java Mon Aug 29 14:27:21 2011 -0700
@@ -292,8 +292,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param old the old attribute set
* @param name the non-null attribute name
@@ -321,8 +321,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param old the old attribute set
* @param attr the attributes to add
@@ -349,8 +349,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param old the old set of attributes
* @param name the non-null attribute name
@@ -377,8 +377,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param old the old attribute set
* @param names the attribute names
@@ -405,8 +405,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param old the old attribute set
* @param attrs the attributes
@@ -445,8 +445,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param a the set to reclaim
*/
--- a/jdk/src/share/classes/javax/swing/text/html/CSS.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/text/html/CSS.java Mon Aug 29 14:27:21 2011 -0700
@@ -806,15 +806,11 @@
// translate border width into the cells, if it has non-zero value.
AttributeSet tableAttr = elem.getParentElement().
getParentElement().getAttributes();
- int borderWidth;
- try {
- borderWidth = Integer.parseInt(
- (String) tableAttr.getAttribute(HTML.Attribute.BORDER));
- } catch (NumberFormatException e) {
- borderWidth = 0;
- }
+
+ int borderWidth = getTableBorder(tableAttr);
if (borderWidth > 0) {
- translateAttribute(HTML.Attribute.BORDER, tableAttr, cssAttrSet);
+ // If table contains the BORDER attribute cells should have border width equals 1
+ translateAttribute(HTML.Attribute.BORDER, "1", cssAttrSet);
}
String pad = (String)tableAttr.getAttribute(HTML.Attribute.CELLPADDING);
if (pad != null) {
@@ -850,6 +846,21 @@
return cssAttrSet;
}
+ private static int getTableBorder(AttributeSet tableAttr) {
+ String borderValue = (String) tableAttr.getAttribute(HTML.Attribute.BORDER);
+
+ if (borderValue == HTML.NULL_ATTRIBUTE_VALUE || "".equals(borderValue)) {
+ // Some browsers accept <TABLE BORDER> and <TABLE BORDER=""> with the same semantics as BORDER=1
+ return 1;
+ }
+
+ try {
+ return Integer.parseInt(borderValue);
+ } catch (NumberFormatException e) {
+ return 0;
+ }
+ }
+
private static final Hashtable<String, Attribute> attributeMap = new Hashtable<String, Attribute>();
private static final Hashtable<String, Value> valueMap = new Hashtable<String, Value>();
@@ -1400,17 +1411,20 @@
}
}
} else {
-
- /*
- * The html size attribute has a mapping in the CSS world only
- * if it is par of a font or base font tag.
- */
-
if (key == HTML.Attribute.SIZE && !isHTMLFontTag(tag)) {
- continue;
+ /*
+ * The html size attribute has a mapping in the CSS world only
+ * if it is par of a font or base font tag.
+ */
+ } else if (tag == HTML.Tag.TABLE && key == HTML.Attribute.BORDER) {
+ int borderWidth = getTableBorder(htmlAttrSet);
+
+ if (borderWidth > 0) {
+ translateAttribute(HTML.Attribute.BORDER, Integer.toString(borderWidth), cssAttrSet);
+ }
+ } else {
+ translateAttribute(key, (String) htmlAttrSet.getAttribute(key), cssAttrSet);
}
-
- translateAttribute(key, htmlAttrSet, cssAttrSet);
}
} else if (name instanceof CSS.Attribute) {
cssAttrSet.addAttribute(name, htmlAttrSet.getAttribute(name));
@@ -1419,7 +1433,7 @@
}
private void translateAttribute(HTML.Attribute key,
- AttributeSet htmlAttrSet,
+ String htmlAttrValue,
MutableAttributeSet cssAttrSet) {
/*
* In the case of all remaining HTML.Attribute's they
@@ -1427,8 +1441,6 @@
*/
CSS.Attribute[] cssAttrList = getCssAttribute(key);
- String htmlAttrValue = (String)htmlAttrSet.getAttribute(key);
-
if (cssAttrList == null || htmlAttrValue == null) {
return;
}
--- a/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java Mon Aug 29 14:27:21 2011 -0700
@@ -474,8 +474,8 @@
* <p>
* This method is thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @param offset the offset into the paragraph (must be at least 0)
* @param length the number of characters affected (must be at least 0)
--- a/jdk/src/share/classes/javax/swing/text/html/TableView.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/javax/swing/text/html/TableView.java Mon Aug 29 14:27:21 2011 -0700
@@ -242,7 +242,8 @@
if (lv != null) {
cellSpacing = (int) lv.getValue();
} else {
- cellSpacing = 0;
+ // Default cell spacing equals 2
+ cellSpacing = 2;
}
lv = (CSS.LengthValue)
attr.getAttribute(CSS.Attribute.BORDER_TOP_WIDTH);
@@ -251,8 +252,7 @@
} else {
borderWidth = 0;
}
-
- }
+ }
}
/**
--- a/jdk/src/share/classes/sun/swing/PrintingStatus.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/share/classes/sun/swing/PrintingStatus.java Mon Aug 29 14:27:21 2011 -0700
@@ -43,8 +43,8 @@
* <p/>
* Methods of these class are thread safe, although most Swing methods
* are not. Please see
- * <A HREF="http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html">How
- * to Use Threads</A> for more information.
+ * <A HREF="http://download.oracle.com/javase/tutorial/uiswing/concurrency/index.html">Concurrency
+ * in Swing</A> for more information.
*
* @author Alexander Potochkin
* @since 1.6
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java Mon Aug 29 14:27:21 2011 -0700
@@ -1532,6 +1532,10 @@
}
public synchronized void addPropertyChangeListener(String name, PropertyChangeListener pcl) {
+ if (name == null) {
+ // See JavaDoc for the Toolkit.addPropertyChangeListener() method
+ return;
+ }
initXSettingsIfNeeded(name);
super.addPropertyChangeListener(name, pcl);
}
--- a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java Mon Aug 29 14:27:21 2011 -0700
@@ -879,6 +879,10 @@
}
public synchronized void addPropertyChangeListener(String name, PropertyChangeListener pcl) {
+ if (name == null) {
+ // See JavaDoc for the Toolkit.addPropertyChangeListener() method
+ return;
+ }
if ( WDesktopProperties.isWindowsProperty(name)
|| name.startsWith(awtPrefix)
|| name.startsWith(dndPrefix))
--- a/jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java Mon Aug 29 14:26:11 2011 -0700
+++ b/jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java Mon Aug 29 14:27:21 2011 -0700
@@ -69,7 +69,12 @@
toolkit.realSync();
System.out.println("Test passed!");
- frame.dispose();
+
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ frame.dispose();
+ }
+ });
}
private static void createGui() {
@@ -88,30 +93,44 @@
frame.setSize(200, 200);
}
- private static void showPopup(final boolean shouldBeShifted) {
- SwingUtilities.invokeLater(new Runnable() {
+ private static void showPopup(final boolean shouldBeShifted) throws Exception {
+ SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
// Place frame just above the task bar
Dimension screenSize = toolkit.getScreenSize();
frame.setLocation(screenSize.width / 2,
screenSize.height - frame.getHeight() - screenInsets.bottom);
frame.setVisible(true);
+ }
+ });
+ // Ensure frame is visible
+ toolkit.realSync();
+
+ final Point point = new Point();
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
// Place popup over the task bar
+ point.x = 0;
+ point.y = frame.getHeight() - popup.getPreferredSize().height + screenInsets.bottom;
+ popup.show(frame, point.x, point.y);
+ }
+ });
+
+ // Ensure popup is visible
+ toolkit.realSync();
+
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
Point frameLoc = frame.getLocationOnScreen();
- int x = 0;
- int y = frame.getHeight()
- - popup.getPreferredSize().height + screenInsets.bottom;
- popup.show(frame, x, y);
-
if (shouldBeShifted) {
if (popup.getLocationOnScreen()
- .equals(new Point(frameLoc.x, frameLoc.y + y))) {
+ .equals(new Point(frameLoc.x, frameLoc.y + point.y))) {
throw new RuntimeException("Popup is not shifted");
}
} else {
if (!popup.getLocationOnScreen()
- .equals(new Point(frameLoc.x, frameLoc.y + y))) {
+ .equals(new Point(frameLoc.x, frameLoc.y + point.y))) {
throw new RuntimeException("Popup is unexpectedly shifted");
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/text/html/TableView/7030332/bug7030332.html Mon Aug 29 14:27:21 2011 -0700
@@ -0,0 +1,12 @@
+<html>
+<body>
+<applet code="bug7030332.class" width=600 height=400></applet>
+
+Compare Golden Images with rendered JEditorPane.
+They should looks simalar in each line. Pay attention to:
+
+1. Border width around tables
+2. Border width around cells
+
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/text/html/TableView/7030332/bug7030332.java Mon Aug 29 14:27:21 2011 -0700
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ @bug 7030332
+ @summary Default borders in tables looks incorrect JEditorPane
+ @author Pavel Porvatov
+ * @run applet/manual=yesno bug7030332.html
+*/
+
+import javax.swing.*;
+import java.awt.*;
+import java.net.URL;
+
+public class bug7030332 extends JApplet {
+ public static final String[] HTML_SAMPLES = new String[]{
+ "<table border><tr><th>Column1</th><th>Column2</th></tr></table>",
+ "<table border=\"\"><tr><th>Column1</th><th>Column2</th></tr></table>",
+ "<table border=\"1\"><tr><th>Column1</th><th>Column2</th></tr></table>",
+ "<table border=\"2\"><tr><th>Column1</th><th>Column2</th></tr></table>",
+ };
+
+ public static void main(String[] args) throws Exception {
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ JFrame frame = new JFrame();
+
+ frame.setContentPane(createContentPane());
+ frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ frame.setSize(600, 400);
+ frame.setLocationRelativeTo(null);
+
+ frame.setVisible(true);
+
+ }
+ });
+ }
+
+ public void init() {
+ try {
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ setContentPane(createContentPane());
+ }
+ });
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private static Container createContentPane() {
+ JPanel result = new JPanel(new GridLayout(HTML_SAMPLES.length + 1, 3, 10, 10));
+
+ result.add(new JLabel("Html code"));
+ result.add(new JLabel("Golden image"));
+ result.add(new JLabel("JEditorPane"));
+
+ for (int i = 0; i < HTML_SAMPLES.length; i++) {
+ String htmlSample = HTML_SAMPLES[i];
+
+ JTextArea textArea = new JTextArea(htmlSample);
+
+ textArea.setLineWrap(true);
+
+ result.add(textArea);
+
+ String imageName = "sample" + i + ".png";
+ URL resource = bug7030332.class.getResource(imageName);
+
+ result.add(resource == null ? new JLabel(imageName + " not found") :
+ new JLabel(new ImageIcon(resource), SwingConstants.LEFT));
+
+ result.add(new JEditorPane("text/html", htmlSample));
+ }
+
+ return result;
+ }
+}
Binary file jdk/test/javax/swing/text/html/TableView/7030332/sample0.png has changed
Binary file jdk/test/javax/swing/text/html/TableView/7030332/sample1.png has changed
Binary file jdk/test/javax/swing/text/html/TableView/7030332/sample2.png has changed
Binary file jdk/test/javax/swing/text/html/TableView/7030332/sample3.png has changed
Binary file jdk/test/javax/swing/text/html/TableView/7030332/sample4.png has changed