[kaffe] CVS kaffe (robilad): Resynced with GNU Classpath: awt, swing and text fixes
Kaffe CVS
cvs-commits at kaffe.org
Sun Jul 3 07:19:50 PDT 2005
PatchSet 6684
Date: 2005/07/03 14:14:53
Author: robilad
Branch: HEAD
Tag: (none)
Log:
Resynced with GNU Classpath: awt, swing and text fixes
Members:
ChangeLog:1.4209->1.4210
libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics2D.java:1.20->1.21
libraries/javalib/gnu/java/net/protocol/jar/Handler.java:INITIAL->1.9
libraries/javalib/java/text/DecimalFormat.java:1.35->1.36
libraries/javalib/javax/swing/JComponent.java:1.21->1.22
libraries/javalib/javax/swing/JScrollPane.java:1.10->1.11
libraries/javalib/javax/swing/text/InternationalFormatter.java:1.1->1.2
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4209 kaffe/ChangeLog:1.4210
--- kaffe/ChangeLog:1.4209 Sun Jul 3 13:58:06 2005
+++ kaffe/ChangeLog Sun Jul 3 14:14:53 2005
@@ -2,6 +2,40 @@
Resynced with GNU Classpath.
+ 2005-06-14 Mark Wielaard <mark at klomp.org>
+
+ * javax/swing/JComponent.java (setMinimumSize): Only adjust
+ prefferedSize or maximumSize when they are set.
+ * javax/swing/JScrollPane.java (JScrollPane(Component,int,int)):
+ Set viewport and view manually.
+
+ 2005-06-14 Ziga Mahkovec <ziga.mahkovec at klika.si>
+
+ * gnu/java/awt/peer/gtk/GdkGraphics2D.java (updateBufferedImage):
+ Fixed pixelBuffer array index.
+
+ 2005-06-14 Ziga Mahkovec <ziga.mahkovec at klika.si>
+
+ Classpath bug #13353:
+ * gnu/java/net/protocol/jar/Handler.java (parseURL, toExternalForm):
+ Append fragments (#ref) to URLs.
+
+ 2005-06-14 Mark Wielaard <mark at klomp.org>
+
+ * javax/swing/text/InternationalFormatter.java (clone): Disabled.
+
+ 2005-06-14 David Gilbert <david.gilbert at object-refinery.com>
+
+ * java/text/DecimalFormat.java
+ (DecimalFormat(String, DecimalFormatSymbols)): store clone of symbols;
+ (equals): add missing checks;
+ (getDecimalFormatSymbols): return clone of symbols;
+ (setDecimalFormatSymbols): store clone of symbols.
+
+2005-07-03 Dalibor Topic <robilad at kaffe.org>
+
+ Resynced with GNU Classpath.
+
2005-06-13 Ziga Mahkovec <ziga.mahkovec at klika.si>
* java/awt/image/SampleModel.java (getPixels): Fixed array
Index: kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics2D.java
diff -u kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics2D.java:1.20 kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics2D.java:1.21
--- kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics2D.java:1.20 Sat Jun 11 22:04:54 2005
+++ kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics2D.java Sun Jul 3 14:14:55 2005
@@ -498,9 +498,10 @@
{
int height = bimage.getHeight();
int width = bimage.getWidth();
+ int index = 0;
for (int y = 0; y < height; ++y)
for (int x = 0; x < width; ++x)
- bimage.setRGB(x, y, pixelBuffer[y*width+height]);
+ bimage.setRGB(x, y, pixelBuffer[index++]);
}
}
===================================================================
Checking out kaffe/libraries/javalib/gnu/java/net/protocol/jar/Handler.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/gnu/java/net/protocol/jar/Handler.java,v
VERS: 1.9
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/gnu/java/net/protocol/jar/Handler.java Sun Jul 3 14:19:50 2005
@@ -0,0 +1,173 @@
+/* gnu.java.net.protocol.jar.Handler - jar protocol handler for java.net
+ Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.net.protocol.jar;
+
+import gnu.java.net.URLParseError;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+/**
+ * @author Kresten Krab Thorup (krab at gnu.org)
+ */
+public class Handler extends URLStreamHandler
+{
+ /**
+ * A do nothing constructor
+ */
+ public Handler()
+ {
+ }
+
+ /**
+ * This method returs a new JarURLConnection for the specified URL
+ *
+ * @param url The URL to return a connection for
+ *
+ * @return The URLConnection
+ *
+ * @exception IOException If an error occurs
+ */
+ protected URLConnection openConnection(URL url) throws IOException
+ {
+ return new Connection(url);
+ }
+
+ /**
+ * This method overrides URLStreamHandler's for parsing url of protocol "jar"
+ *
+ * @param url The URL object in which to store the results
+ * @param url_string The String-ized URL to parse
+ * @param start The position in the string to start scanning from
+ * @param end The position in the string to stop scanning
+ */
+ protected void parseURL (URL url, String url_string, int start, int end)
+ {
+ // This method does not throw an exception or return a value. Thus our
+ // strategy when we encounter an error in parsing is to return without
+ // doing anything.
+ String file = url.getFile();
+
+ if (!file.equals(""))
+ { //has context url
+ url_string = url_string.substring (start, end);
+ if (url_string.startsWith("/"))
+ { //url string is an absolute path
+ int idx = file.lastIndexOf ("!/");
+
+ if (idx < 0)
+ throw new URLParseError("no !/ in spec");
+
+ file = file.substring (0, idx + 1) + url_string;
+ }
+ else if (url_string.length() > 0)
+ {
+ int idx = file.lastIndexOf ("/");
+ if (idx == -1) //context path is weird
+ file = "/" + url_string;
+ else if (idx == (file.length() - 1))
+ //just concatenate two parts
+ file = file + url_string;
+ else
+ // according to Java API Documentation, here is a little different
+ // with URLStreamHandler.parseURL
+ // but JDK seems doesn't handle it well
+ file = file.substring(0, idx + 1) + url_string;
+ }
+
+ setURL (url, "jar", url.getHost(), url.getPort(), file, null);
+ return;
+ }
+
+ // Bunches of things should be true. Make sure.
+ if (end < start)
+ return;
+ if (end - start < 2)
+ return;
+ if (start > url_string.length())
+ return;
+
+ // Skip remains of protocol
+ url_string = url_string.substring (start, end);
+
+ int jar_stop;
+ if ((jar_stop = url_string.indexOf("!/")) < 0)
+ throw new URLParseError("no !/ in spec");
+
+ try
+ {
+ new URL(url_string.substring (0, jar_stop));
+ }
+ catch (MalformedURLException e)
+ {
+ throw new URLParseError("invalid inner URL: " + e.getMessage());
+ }
+
+ if (!url.getProtocol().equals ("jar") )
+ throw new URLParseError("unexpected protocol " + url.getProtocol());
+
+ setURL (url, "jar", url.getHost(), url.getPort(), url_string, null);
+ }
+
+ /**
+ * This method converts a Jar URL object into a String.
+ *
+ * @param url The URL object to convert
+ */
+ protected String toExternalForm (URL url)
+ {
+ String file = url.getFile();
+ String ref = url.getRef();
+
+ // return "jar:" + file;
+ // Performance!!:
+ // Do the concatenation manually to avoid resize StringBuffer's
+ // internal buffer. The length of ref is not taken into consideration
+ // as it's a rare path.
+ StringBuffer sb = new StringBuffer (file.length() + 5);
+ sb.append ("jar:");
+ sb.append (file);
+ if (ref != null)
+ sb.append('#').append(ref);
+ return sb.toString();
+ }
+}
Index: kaffe/libraries/javalib/java/text/DecimalFormat.java
diff -u kaffe/libraries/javalib/java/text/DecimalFormat.java:1.35 kaffe/libraries/javalib/java/text/DecimalFormat.java:1.36
--- kaffe/libraries/javalib/java/text/DecimalFormat.java:1.35 Sun May 15 17:05:23 2005
+++ kaffe/libraries/javalib/java/text/DecimalFormat.java Sun Jul 3 14:14:56 2005
@@ -437,13 +437,9 @@
* @throws NullPointerException if any argument is null.
* @throws IllegalArgumentException if the pattern is invalid.
*/
- public DecimalFormat (String pattern, DecimalFormatSymbols symbols)
+ public DecimalFormat(String pattern, DecimalFormatSymbols symbols)
{
- if (symbols == null)
- {
- throw new NullPointerException("Supplied set of symbols is null.");
- }
- this.symbols = symbols;
+ this.symbols = (DecimalFormatSymbols) symbols.clone();
applyPattern(pattern);
}
@@ -454,21 +450,39 @@
return s1.equals(s2);
}
- public boolean equals (Object obj)
+ /**
+ * Tests this instance for equality with an arbitrary object. This method
+ * returns <code>true</code> if:
+ * <ul>
+ * <li><code>obj</code> is not <code>null</code>;</li>
+ * <li><code>obj</code> is an instance of <code>DecimalFormat</code>;</li>
+ * <li>this instance and <code>obj</code> have the same attributes;</li>
+ * </ul>
+ *
+ * @param obj the object (<code>null</code> permitted).
+ *
+ * @return A boolean.
+ */
+ public boolean equals(Object obj)
{
if (! (obj instanceof DecimalFormat))
return false;
DecimalFormat dup = (DecimalFormat) obj;
- return (decimalSeparatorAlwaysShown == dup.decimalSeparatorAlwaysShown
- && groupingSize == dup.groupingSize
- && minExponentDigits == dup.minExponentDigits
- && multiplier == dup.multiplier
- && equals(negativePrefix, dup.negativePrefix)
- && equals(negativeSuffix, dup.negativeSuffix)
- && equals(positivePrefix, dup.positivePrefix)
- && equals(positiveSuffix, dup.positiveSuffix)
- && symbols.equals(dup.symbols)
- && useExponentialNotation == dup.useExponentialNotation);
+ return (decimalSeparatorAlwaysShown == dup.decimalSeparatorAlwaysShown
+ && groupingUsed == dup.groupingUsed
+ && groupingSize == dup.groupingSize
+ && multiplier == dup.multiplier
+ && useExponentialNotation == dup.useExponentialNotation
+ && minExponentDigits == dup.minExponentDigits
+ && minimumIntegerDigits == dup.minimumIntegerDigits
+ && maximumIntegerDigits == dup.maximumIntegerDigits
+ && minimumFractionDigits == dup.minimumFractionDigits
+ && maximumFractionDigits == dup.maximumFractionDigits
+ && equals(negativePrefix, dup.negativePrefix)
+ && equals(negativeSuffix, dup.negativeSuffix)
+ && equals(positivePrefix, dup.positivePrefix)
+ && equals(positiveSuffix, dup.positiveSuffix)
+ && symbols.equals(dup.symbols));
}
private void formatInternal (double number, FormatBuffer dest,
@@ -784,9 +798,14 @@
return symbols.getCurrency();
}
- public DecimalFormatSymbols getDecimalFormatSymbols ()
+ /**
+ * Returns a copy of the symbols used by this instance.
+ *
+ * @return A copy of the symbols.
+ */
+ public DecimalFormatSymbols getDecimalFormatSymbols()
{
- return symbols;
+ return (DecimalFormatSymbols) symbols.clone();
}
public int getGroupingSize ()
@@ -1133,9 +1152,15 @@
symbols.setCurrency(currency);
}
- public void setDecimalFormatSymbols (DecimalFormatSymbols newSymbols)
+ /**
+ * Sets the symbols used by this instance. This method makes a copy of
+ * the supplied symbols.
+ *
+ * @param newSymbols the symbols (<code>null</code> not permitted).
+ */
+ public void setDecimalFormatSymbols(DecimalFormatSymbols newSymbols)
{
- symbols = newSymbols;
+ symbols = (DecimalFormatSymbols) newSymbols.clone();
}
public void setDecimalSeparatorAlwaysShown (boolean newValue)
Index: kaffe/libraries/javalib/javax/swing/JComponent.java
diff -u kaffe/libraries/javalib/javax/swing/JComponent.java:1.21 kaffe/libraries/javalib/javax/swing/JComponent.java:1.22
--- kaffe/libraries/javalib/javax/swing/JComponent.java:1.21 Sat Jun 11 21:43:17 2005
+++ kaffe/libraries/javalib/javax/swing/JComponent.java Sun Jul 3 14:14:56 2005
@@ -2065,14 +2065,20 @@
repaint();
// adjust preferred and maximum size accordingly
- Dimension prefSize = getPreferredSize();
- prefSize.width = Math.max(prefSize.width, minimumSize.width);
- prefSize.height = Math.max(prefSize.height, minimumSize.height);
- setPreferredSize(prefSize);
- Dimension maxSize = getMaximumSize();
- maxSize.width = Math.max(maxSize.width, minimumSize.width);
- maxSize.height = Math.max(maxSize.height, minimumSize.height);
- setMaximumSize(maxSize);
+ if (preferredSize != null)
+ {
+ Dimension prefSize = getPreferredSize();
+ prefSize.width = Math.max(prefSize.width, minimumSize.width);
+ prefSize.height = Math.max(prefSize.height, minimumSize.height);
+ setPreferredSize(prefSize);
+ }
+ if (maximumSize != null)
+ {
+ Dimension maxSize = getMaximumSize();
+ maxSize.width = Math.max(maxSize.width, minimumSize.width);
+ maxSize.height = Math.max(maxSize.height, minimumSize.height);
+ setMaximumSize(maxSize);
+ }
}
/**
Index: kaffe/libraries/javalib/javax/swing/JScrollPane.java
diff -u kaffe/libraries/javalib/javax/swing/JScrollPane.java:1.10 kaffe/libraries/javalib/javax/swing/JScrollPane.java:1.11
--- kaffe/libraries/javalib/javax/swing/JScrollPane.java:1.10 Mon May 30 01:27:47 2005
+++ kaffe/libraries/javalib/javax/swing/JScrollPane.java Sun Jul 3 14:14:56 2005
@@ -588,7 +588,9 @@
setVerticalScrollBar(createVerticalScrollBar());
setHorizontalScrollBarPolicy(hsbPolicy);
setHorizontalScrollBar(createHorizontalScrollBar());
- setViewportView(view);
+ viewport = createViewport();
+ if (view != null)
+ viewport.setView(view);
setLayout(new ScrollPaneLayout());
setOpaque(false);
updateUI();
Index: kaffe/libraries/javalib/javax/swing/text/InternationalFormatter.java
diff -u kaffe/libraries/javalib/javax/swing/text/InternationalFormatter.java:1.1 kaffe/libraries/javalib/javax/swing/text/InternationalFormatter.java:1.2
--- kaffe/libraries/javalib/javax/swing/text/InternationalFormatter.java:1.1 Sat Jun 11 22:56:07 2005
+++ kaffe/libraries/javalib/javax/swing/text/InternationalFormatter.java Sun Jul 3 14:14:58 2005
@@ -326,7 +326,7 @@
*
* @throws CloneNotSupportedException not thrown here, since cloning is
* supported
- */
+ * XXX - FIXME - Whole method disabled as workaround for gcj bug #22060.
public Object clone()
throws CloneNotSupportedException
{
@@ -335,6 +335,7 @@
Object clone = super.clone();
return clone;
}
+ */
/**
* Returns the Actions that are supported by this Formatter.
More information about the kaffe
mailing list