RE: [cp-patches] RFC: ZipFile optimizations
[EMAIL PROTECTED] wrote: Jeroen == Jeroen Frijters [EMAIL PROTECTED] writes: Jeroen I noticed that ZipFile currently doesn't use any buffering Jeroen when reading the zip file directory, so I would like to Jeroen propose the attached patch to fix this. For me this Jeroen significantly increases performance of reading the zip Jeroen directory. Jeroen Please comment. I skimmed the patch and didn't see anything that looked bad. I think the idea is good, I would say that if it passes the mauve tests it should go in. Thanks. The tests pass. I'll check in the change. Regards, Jeroen
[cp-patches] FYI: JTable header values.
The program was showing incorrect (default rather than custom) table headers with Classpath. We found that this is because the header value is set once again in setColumnModel. If the column header value is set by calling setHeaderValue(..), the table must use that value and do not request the default value from the table model. 2006-02-15 Audrius Meskauskas [EMAIL PROTECTED] * examples/gnu/classpath/examples/swing/TableDemo.java (TModel, createContent): Explain which value appears in the header. * javax/swing/JTable.java (setColumnModel): Only set the column header value if the getHeaderValue() returns null. Index: examples/gnu/classpath/examples/swing/TableDemo.java === RCS file: /sources/classpath/classpath/examples/gnu/classpath/examples/swing/TableDemo.java,v retrieving revision 1.3 diff -u -r1.3 TableDemo.java --- examples/gnu/classpath/examples/swing/TableDemo.java 14 Feb 2006 22:27:54 - 1.3 +++ examples/gnu/classpath/examples/swing/TableDemo.java 15 Feb 2006 08:40:58 - @@ -48,7 +48,6 @@ import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; -import javax.swing.table.TableColumnModel; /** * Displays the editable table. The first column consists of check boxes. @@ -115,11 +114,13 @@ } /** - * The column name. + * The column name, as suggested by model. This header should not be + * visible, as it is overridden by setting the header name with + * [EMAIL PROTECTED] TableColumn#setHeaderValue} in [EMAIL PROTECTED] TableDemo#createContent}. */ public String getColumnName(int column) { - return Demo +column; + return Error +column; } /** @@ -191,10 +192,16 @@ DefaultTableColumnModel cm = new DefaultTableColumnModel(); for (int i = 0; i cols; i++) { -int w = 100+20*i; TableColumn column = new TableColumn(i); -column.setPreferredWidth(w); + +// Showing the variable width columns. +int width = 100+20*i; +column.setPreferredWidth(width); + +// If we do not set the header value here, the value, returned +// by model, is used. column.setHeaderValue(Width ++(20*i)); + cm.addColumn(column); } Index: javax/swing/JTable.java === RCS file: /sources/classpath/classpath/javax/swing/JTable.java,v retrieving revision 1.72 diff -u -r1.72 JTable.java --- javax/swing/JTable.java 14 Feb 2006 22:27:54 - 1.72 +++ javax/swing/JTable.java 15 Feb 2006 08:41:27 - @@ -2763,8 +2763,13 @@ if (dataModel != null columnModel != null) { int ncols = getColumnCount(); +TableColumn column; for (int i = 0; i ncols; ++i) - columnModel.getColumn(i).setHeaderValue(dataModel.getColumnName(i)); + { +column = columnModel.getColumn(i); +if (column.getHeaderValue()==null) + column.setHeaderValue(dataModel.getColumnName(i)); + } } // according to Sun's spec we also have to set the tableHeader's
[cp-patches] FYI: ZipFile optimizations
Hi, Committed. Regards, Jeroen 2006-02-15 Jeroen Frijters [EMAIL PROTECTED] * java/util/zip/ZipFile.java (checkZipFile): Inlined readLeInt and rewritten for robustness. (readLeShort(DataInput,byte[]), readLeInt(DataInput,byte[], readLeShort(byte[],int), readLeInt(byte[],int)): Removed. (readEntries): Rewritten to use PartialInputStream. (locBuf, checkLocalHeader): Removed. (getInputStream): Rewritten to use new PartialInputStream. (PartialInputStream): Rewritten to do buffering. Index: java/util/zip/ZipFile.java === RCS file: /cvsroot/classpath/classpath/java/util/zip/ZipFile.java,v retrieving revision 1.27 diff -u -r1.27 ZipFile.java --- java/util/zip/ZipFile.java 16 Sep 2005 01:07:21 - 1.27 +++ java/util/zip/ZipFile.java 13 Feb 2006 14:59:52 - @@ -1,5 +1,5 @@ /* ZipFile.java -- - Copyright (C) 2001, 2002, 2003, 2004, 2005 + Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,8 +41,6 @@ import gnu.java.util.EmptyEnumeration; -import java.io.BufferedInputStream; -import java.io.DataInput; import java.io.EOFException; import java.io.File; import java.io.IOException; @@ -141,23 +139,33 @@ checkZipFile(); } - private void checkZipFile() throws IOException, ZipException + private void checkZipFile() throws ZipException { -byte[] magicBuf = new byte[4]; -boolean validRead = true; +boolean valid = false; try { - raf.readFully(magicBuf); - } -catch (EOFException eof) +byte[] buf = new byte[4]; +raf.readFully(buf); +int sig = buf[0] 0xFF +| ((buf[1] 0xFF) 8) +| ((buf[2] 0xFF) 16) +| ((buf[3] 0xFF) 24); +valid = sig == LOCSIG; + } +catch (IOException _) { - validRead = false; } -if (validRead == false || readLeInt(magicBuf, 0) != LOCSIG) +if (!valid) { - raf.close(); +try + { + raf.close(); + } +catch (IOException _) + { + } throw new ZipException(Not a valid zip file); } } @@ -172,69 +180,6 @@ } /** - * Read an unsigned short in little endian byte order from the given - * DataInput stream using the given byte buffer. - * - * @param di DataInput stream to read from. - * @param b the byte buffer to read in (must be at least 2 bytes long). - * @return The value read. - * - * @exception IOException if a i/o error occured. - * @exception EOFException if the file ends prematurely - */ - private int readLeShort(DataInput di, byte[] b) throws IOException - { -di.readFully(b, 0, 2); -return (b[0] 0xff) | (b[1] 0xff) 8; - } - - /** - * Read an int in little endian byte order from the given - * DataInput stream using the given byte buffer. - * - * @param di DataInput stream to read from. - * @param b the byte buffer to read in (must be at least 4 bytes long). - * @return The value read. - * - * @exception IOException if a i/o error occured. - * @exception EOFException if the file ends prematurely - */ - private int readLeInt(DataInput di, byte[] b) throws IOException - { -di.readFully(b, 0, 4); -return ((b[0] 0xff) | (b[1] 0xff) 8) - | ((b[2] 0xff) | (b[3] 0xff) 8) 16; - } - - /** - * Read an unsigned short in little endian byte order from the given - * byte buffer at the given offset. - * - * @param b the byte array to read from. - * @param off the offset to read from. - * @return The value read. - */ - private int readLeShort(byte[] b, int off) - { -return (b[off] 0xff) | (b[off+1] 0xff) 8; - } - - /** - * Read an int in little endian byte order from the given - * byte buffer at the given offset. - * - * @param b the byte array to read from. - * @param off the offset to read from. - * @return The value read. - */ - private int readLeInt(byte[] b, int off) - { -return ((b[off] 0xff) | (b[off+1] 0xff) 8) - | ((b[off+2] 0xff) | (b[off+3] 0xff) 8) 16; - } - - - /** * Read the central directory of a zip file and fill the entries * array. This is called exactly once when first needed. It is called * while holding the lock on coderaf/code. @@ -246,63 +191,48 @@ { /* Search for the End Of Central Directory. When a zip comment is * present the directory may start earlier. - * FIXME: This searches the whole file in a very slow manner if the - * file isn't a zip file. + * Note that a comment has a maximum length of 64K, so that is the + * maximum we search backwards. */ +PartialInputStream inp = new PartialInputStream(raf, 4096); long pos = raf.length() - ENDHDR; -byte[] ebs = new byte[CENHDR]; - +
[cp-patches] FYI: BasicTableUI fix
We were painting the vertical and horizontal grid lines in JTable one pixel too far left/below on the first pixel row of the adjecent table cell, whereas they should really be painted on the last pixel row of the current cell. This patch fixes this. This makes the cells nicely aligned with the table header cells finally. 2006-02-15 Roman Kennke [EMAIL PROTECTED] * javax/swing/plaf/basic/BasicTableUI.java (paint): Paint vertical and horizontal lines one pixel shifted left/top. /Roman Index: javax/swing/plaf/basic/BasicTableUI.java === RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicTableUI.java,v retrieving revision 1.42 diff -u -r1.42 BasicTableUI.java --- javax/swing/plaf/basic/BasicTableUI.java 14 Feb 2006 22:03:06 - 1.42 +++ javax/swing/plaf/basic/BasicTableUI.java 15 Feb 2006 10:23:03 - @@ -1263,8 +1263,8 @@ for (int c = c0; c cn; ++c) { bounds = table.getCellRect(0, c, true); -gfx.drawLine(bounds.x + bounds.width, p1.y, - bounds.x + bounds.width, p2.y); +gfx.drawLine(bounds.x + bounds.width - 1, p1.y, + bounds.x + bounds.width - 1, p2.y); } gfx.setColor(save); } @@ -1277,8 +1277,8 @@ for (int r = r0; r rn; ++r) { bounds = table.getCellRect(r, 0, true); -gfx.drawLine(p1.x, bounds.y + bounds.height, - p2.x, bounds.y + bounds.height); +gfx.drawLine(p1.x, bounds.y + bounds.height - 1, + p2.x, bounds.y + bounds.height - 1); } gfx.setColor(save); }
[cp-patches] FYI: SpinnerNumberModel getNextValue()/getPreviousValue() fix
The getNextValue() and getPreviousValue() methods in the SpinnerNumberModel throw a NullPointerException if the maximum / minimum values are not set. This patch (committed) prevents that from happening: 2006-02-15 David Gilbert [EMAIL PROTECTED] * javax/swing/SpinnerNumberModel.java (getNextValue): Check for null maximum, (getPreviousValue): Check for null minimum. I've already committed Mauve tests to cover these cases, and will now go and check SpinnerDateModel to see if it has the same problem... Regards, Dave Index: javax/swing/SpinnerNumberModel.java === RCS file: /sources/classpath/classpath/javax/swing/SpinnerNumberModel.java,v retrieving revision 1.10 diff -u -r1.10 SpinnerNumberModel.java --- javax/swing/SpinnerNumberModel.java 9 Feb 2006 22:45:01 - 1.10 +++ javax/swing/SpinnerNumberModel.java 15 Feb 2006 10:53:25 - @@ -204,8 +204,12 @@ num = new Short((short) (value.shortValue() + stepSize.shortValue())); else num = new Byte((byte) (value.byteValue() + stepSize.byteValue())); - -return maximum.compareTo(num) = 0 ? num : null; + +// check upper bound if set +if ((maximum != null) maximum.compareTo(num) 0) + num = null; + +return num; } /** @@ -232,8 +236,12 @@ num = new Short((short) (value.shortValue() - stepSize.shortValue())); else num = new Byte((byte) (value.byteValue() - stepSize.byteValue())); + +// check lower bound if set +if ((minimum != null) minimum.compareTo(num) 0) + num = null; -return minimum.compareTo(num) = 0 ? num : null; +return num; } /**
Re: [cp-patches] FYI: SpinnerNumberModel getNextValue()/getPreviousValue() fix
I checked SpinnerDateModel and it doesn't have the same problem, but I committed Mauve test cases in any case. Regards, Dave David Gilbert wrote: The getNextValue() and getPreviousValue() methods in the SpinnerNumberModel throw a NullPointerException if the maximum / minimum values are not set. This patch (committed) prevents that from happening: 2006-02-15 David Gilbert [EMAIL PROTECTED] * javax/swing/SpinnerNumberModel.java (getNextValue): Check for null maximum, (getPreviousValue): Check for null minimum. I've already committed Mauve tests to cover these cases, and will now go and check SpinnerDateModel to see if it has the same problem... Regards, Dave Index: javax/swing/SpinnerNumberModel.java === RCS file: /sources/classpath/classpath/javax/swing/SpinnerNumberModel.java,v retrieving revision 1.10 diff -u -r1.10 SpinnerNumberModel.java --- javax/swing/SpinnerNumberModel.java 9 Feb 2006 22:45:01 - 1.10 +++ javax/swing/SpinnerNumberModel.java 15 Feb 2006 10:53:25 - @@ -204,8 +204,12 @@ num = new Short((short) (value.shortValue() + stepSize.shortValue())); else num = new Byte((byte) (value.byteValue() + stepSize.byteValue())); - -return maximum.compareTo(num) = 0 ? num : null; + +// check upper bound if set +if ((maximum != null) maximum.compareTo(num) 0) + num = null; + +return num; } /** @@ -232,8 +236,12 @@ num = new Short((short) (value.shortValue() - stepSize.shortValue())); else num = new Byte((byte) (value.byteValue() - stepSize.byteValue())); + +// check lower bound if set +if ((minimum != null) minimum.compareTo(num) 0) + num = null; -return minimum.compareTo(num) = 0 ? num : null; +return num; } /**
[cp-patches] RFC: up and down movement selection
Hi, with this patch JTextArea's caret learns to move and select up and down correctly. The patch mainly adds code that updates the so called magic caret position. In the respective actions this properties value is then used to determine the new location. The actions for up down selections are, the other ones have been tweaked only (to make use of the viewToModel related fix I committed a few days ago). Please comment. The ChangeLog: 2006-02-15 Robert Schuster [EMAIL PROTECTED] * javax/swing/text/JTextComponent.java: (replaceSelection): Added code to update the magic caret position. * javax/swing/text/DefaultEditorKit.java: Added code to update the magic caret position of the text component in all relevant movement actions, make use of the magic caret position in up and down movements and selections, simplified some actions (code-wise). cya Robert Index: javax/swing/text/DefaultEditorKit.java === RCS file: /cvsroot/classpath/classpath/javax/swing/text/DefaultEditorKit.java,v retrieving revision 1.28 diff -u -r1.28 DefaultEditorKit.java --- javax/swing/text/DefaultEditorKit.java 7 Feb 2006 15:38:51 - 1.28 +++ javax/swing/text/DefaultEditorKit.java 15 Feb 2006 11:30:19 - @@ -707,16 +707,14 @@ JTextComponent t = getTextComponent(event); try { - // TODO: There is a more efficent solution, but - // viewToModel doesn't work properly. - Point p = t.modelToView(t.getCaret().getDot()).getLocation(); - int cur = t.getCaretPosition(); - int y = p.y; - while (y == p.y cur 0) -y = t.modelToView(--cur).getLocation().y; - if (cur != 0) -cur++; - t.setCaretPosition(cur); + int offs = Utilities.getRowStart(t, t.getCaretPosition()); + + if (offs -1) +{ + Caret c = t.getCaret(); + c.setDot(offs); + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); +} } catch (BadLocationException ble) { @@ -729,17 +727,16 @@ public void actionPerformed(ActionEvent event) { JTextComponent t = getTextComponent(event); - try +try { - Point p = t.modelToView(t.getCaret().getDot()).getLocation(); - int cur = t.getCaretPosition(); - int y = p.y; - int length = t.getDocument().getLength(); - while (y == p.y cur length) - y = t.modelToView(++cur).getLocation().y; - if (cur != length) - cur--; - t.setCaretPosition(cur); + int offs = Utilities.getRowEnd(t, t.getCaretPosition()); + + if (offs -1) + { + Caret c = t.getCaret(); + c.setDot(offs); + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } } catch (BadLocationException ble) { @@ -764,7 +761,9 @@ else if (pos t.getDocument().getLength()) t.getDocument().remove(pos, 1); -t.setCaretPosition(pos); +Caret c = t.getCaret(); +c.setDot(pos); +c.setMagicCaretPosition(t.modelToView(pos).getLocation()); } catch (BadLocationException e) { @@ -786,12 +785,15 @@ int len = t.getSelectionEnd() - pos; if (len 0) - { t.getDocument().remove(pos, len); -t.setCaretPosition(pos); - } else if (pos 0) -t.getDocument().remove(pos - 1, 1); + { +pos--; +t.getDocument().remove(pos, 1); +Caret c = t.getCaret(); +c.setDot(pos); +c.setMagicCaretPosition(t.modelToView(pos).getLocation()); + } } catch (BadLocationException e) { @@ -807,8 +809,21 @@ JTextComponent t = getTextComponent(event); if (t != null) { -t.getCaret().setDot(Math.max(t.getCaret().getDot() - 1, - t.getDocument().getStartPosition().getOffset())); +int offs = t.getCaretPosition() - 1; +if (offs = 0) + { +Caret c = t.getCaret(); +c.setDot(offs); + +try + { +c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } +catch (BadLocationException ble) + { +// Should not happen. + } + } } } }, @@ -819,8 +834,68 @@
Re: [cp-patches] [Patch]
Hi, On Wed, 2006-02-15 at 00:12 +0100, Michael Koch wrote: 2006-02-15 Michael Koch [EMAIL PROTECTED] * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create): Make sure the embedded window gets no decorations. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (window_get_frame_extents): Return early of the window has no decorations. This introduced a small compile error with --enable-Werror. Please use this configure option always when hacking on any C code. It isn't the default since there are some systems where there are some warnings in system headers, but on most modern systems we really shouldn't have any C compiler warnings. And they almost always point out a possible (portability) issue. Fixed as follows: 2006-02-15 Mark Wielaard [EMAIL PROTECTED] * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create): gtk_plug_new() returns a GtkWindow. Committed, Mark Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c === RCS file: /cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c,v retrieving revision 1.8 diff -u -r1.8 gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c --- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c 15 Feb 2006 09:00:25 - 1.8 +++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c 15 Feb 2006 12:07:58 - @@ -44,14 +44,14 @@ Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create (JNIEnv *env, jobject obj, jlong socket_id) { - GtkWidget *window; + GtkWindow *window; GtkWidget *fixed; gdk_threads_enter (); NSA_SET_GLOBAL_REF (env, obj); - window = gtk_plug_new ((GdkNativeWindow) socket_id); + window = GTK_WINDOW (gtk_plug_new ((GdkNativeWindow) socket_id)); gtk_window_set_decorated (window, FALSE); signature.asc Description: This is a digitally signed message part
Re: [cp-patches] RFC: up and down movement selection
Hi Robert, Am Mittwoch, den 15.02.2006, 12:32 +0100 schrieb Robert Schuster: Hi, with this patch JTextArea's caret learns to move and select up and down correctly. The patch mainly adds code that updates the so called magic caret position. In the respective actions this properties value is then used to determine the new location. The actions for up down selections are, the other ones have been tweaked only (to make use of the viewToModel related fix I committed a few days ago). Please comment. Looks good to me. Please commit. /Roman The ChangeLog: 2006-02-15 Robert Schuster [EMAIL PROTECTED] * javax/swing/text/JTextComponent.java: (replaceSelection): Added code to update the magic caret position. * javax/swing/text/DefaultEditorKit.java: Added code to update the magic caret position of the text component in all relevant movement actions, make use of the magic caret position in up and down movements and selections, simplified some actions (code-wise). cya Robert signature.asc Description: Dies ist ein digital signierter Nachrichtenteil
[cp-patches] More datatype library implementation
I committed some more of the missing parts of the datatype library implementation. 2006-02-15 Chris Burdess [EMAIL PROTECTED] * gnu/xml/validation/datatype/BooleanType.java, gnu/xml/validation/datatype/ByteType.java, gnu/xml/validation/datatype/DateTimeType.java, gnu/xml/validation/datatype/DateType.java, gnu/xml/validation/datatype/DecimalType.java, gnu/xml/validation/datatype/DoubleType.java, gnu/xml/validation/datatype/DurationType.java, gnu/xml/validation/datatype/FloatType.java, gnu/xml/validation/datatype/GDayType.java, gnu/xml/validation/datatype/GMonthDayType.java, gnu/xml/validation/datatype/GMonthType.java, gnu/xml/validation/datatype/GYearMonthType.java, gnu/xml/validation/datatype/GYearType.java, gnu/xml/validation/datatype/IntType.java, gnu/xml/validation/datatype/IntegerType.java, gnu/xml/validation/datatype/LongType.java, gnu/xml/validation/datatype/MaxExclusiveFacet.java, gnu/xml/validation/datatype/MaxInclusiveFacet.java, gnu/xml/validation/datatype/MinExclusiveFacet.java, gnu/xml/validation/datatype/MinInclusiveFacet.java, gnu/xml/validation/datatype/NegativeIntegerType.java, gnu/xml/validation/datatype/NonNegativeIntegerType.java, gnu/xml/validation/datatype/NonPositiveIntegerType.java, gnu/xml/validation/datatype/PositiveIntegerType.java, gnu/xml/validation/datatype/ShortType.java, gnu/xml/validation/datatype/SimpleType.java, gnu/xml/validation/datatype/TimeType.java, gnu/xml/validation/datatype/TypeBuilder.java, gnu/xml/validation/datatype/UnsignedByteType.java, gnu/xml/validation/datatype/UnsignedIntType.java, gnu/xml/validation/datatype/UnsignedLongType.java, gnu/xml/validation/datatype/UnsignedShortType.java: Provide value objects for datatypes. Make maxExclusive,minExclusive,maxInclusive, minInclusive facets use the value space of the base type, and implement. -- 犬 Chris Burdess They that can give up essential liberty to obtain a little safety deserve neither liberty nor safety. - Benjamin Franklin patch Description: Binary data PGP.sig Description: This is a digitally signed message part
[cp-patches] FYI: JSpinner / BasicSpinnerUI fixes
Hi, This patch makes our JSpinner usable (it was broken) and more compatible with the reference implementation (I added a lot of Mauve tests to ensure this). I also added a small demo app that I used for basic testing: 2006-02-15 David Gilbert [EMAIL PROTECTED] * javax/swing/JSpinner.java (DefaultEditor.DefaultEditor(JSpinner)): Add self to text field as a PropertyChangeListener, (DefaultEditor.getSpinner): Updated API docs, (DefaultEditor.dismiss): Likewise, (DefaultEditor.getTextField): Likewise, (DefaultEditor.layoutContainer): Likewise, (DefaultEditor.minimumLayoutSize): Likewise, (DefaultEditor.preferredLayoutSize): Likewise, (DefaultEditor.propertyChange): Implemented, (DefaultEditor.stateChanged): Implemented, (DefaultEditor.removeLayoutComponent): Updated API docs, (DefaultEditor.addLayoutComponent): Likewise, (NumberEditor.NumberEditor(JSpinner)): Set formatter for text field, (NumberEditor.NumberEditor(JSpinner, String)): Likewise, (NumberEditor.getFormat): Implemented, (NumberEditor.getModel): Updated API docs, (NumberEditorFormatter): New static inner class, (ListEditor.getModel): Updated API docs, (DateEditor.dateFormat): Removed, (DateEditor.DateEditor(JSpinner)): Set formatter for text field, (DateEditor.DateEditor(JSpinner, String)): Likewise, (DateEditor.init): Removed, (DateEditor.getFormat): Reimplemented, (DateEditorFormatter): New static inner class, (ModelListener): New inner class, (model): Updated API docs, (editor): Likewise, (listener): Removed, (JSpinner()): Updated API docs, (JSpinner(SpinnerModel)): Set up ModelListener, (setEditor): Fire property change, (getModel): Updated API docs, (setModel): Removed check for null editor, (setValue): Updated API docs, (getUIClassID): Updated API docs, (createEditor): Handle SpinnerListModel case, * javax/swing/plaf/basic/BasicSpinnerUI.java (createUI): Updated API docs, (createPropertyChangeListener): Added FIXME, (installDefaults): Set text field border to null, (DefaultLayoutManager): Updated API docs, (DefaultLayoutManager.layoutContainer): Modified layout, (DefaultLayoutManager.minimumLayoutSize): Ignore button heights, (DefaultLayoutManager.preferredLayoutSize): Likewise, (DefaultLayoutManager.removeLayoutComponent): Removed tabs, (DefaultLayoutManager.addLayoutComponent): Likewise, (DefaultLayoutManager.minSize): Renamed prefSize, (DefaultLayoutManager.setBounds): Reformatted, (DefaultLayoutManager.editor): Added API docs, (DefaultLayoutManager.next): Likewise, (DefaultLayoutManager.previous): Likewise, * javax/swing/plaf/metal/MetalLookAndFeel.java (initComponentDefaults): Added entry for 'Spinner.border', * examples/gnu/classpath/examples/swing/SpinnerDemo.java: New file. There is still some work to do on this (e.g. font settings aren't reflected in the UI yet, setting the component to disabled doesn't work, etc.)... Regards, Dave Index: examples/gnu/classpath/examples/swing/SpinnerDemo.java === RCS file: examples/gnu/classpath/examples/swing/SpinnerDemo.java diff -N examples/gnu/classpath/examples/swing/SpinnerDemo.java --- /dev/null 1 Jan 1970 00:00:00 - +++ examples/gnu/classpath/examples/swing/SpinnerDemo.java 15 Feb 2006 15:57:19 - @@ -0,0 +1,230 @@ +/* SpinnerDemo.java -- An example showing various spinners in Swing. + Copyright (C) 2006, Free Software Foundation, Inc. + +This file is part of GNU Classpath examples. + +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., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. +*/ + + +package gnu.classpath.examples.swing; + +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Calendar; +import java.util.Date; + +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JFrame; +import
Re: [cp-patches] FYI: JSpinner / BasicSpinnerUI fixes
Am Mittwoch, den 15.02.2006, 16:32 + schrieb David Gilbert: Hi, This patch makes our JSpinner usable (it was broken) and more compatible with the reference implementation (I added a lot of Mauve tests to ensure this). I also added a small demo app that I used for basic testing: Wow! Good work you do. :-) The demo is quite impressive. Is it linked into the activity board (replace that old Spinner demo)? Thank you very much for this, this has long been broken. Cheers, Roman 2006-02-15 David Gilbert [EMAIL PROTECTED] * javax/swing/JSpinner.java (DefaultEditor.DefaultEditor(JSpinner)): Add self to text field as a PropertyChangeListener, (DefaultEditor.getSpinner): Updated API docs, (DefaultEditor.dismiss): Likewise, (DefaultEditor.getTextField): Likewise, (DefaultEditor.layoutContainer): Likewise, (DefaultEditor.minimumLayoutSize): Likewise, (DefaultEditor.preferredLayoutSize): Likewise, (DefaultEditor.propertyChange): Implemented, (DefaultEditor.stateChanged): Implemented, (DefaultEditor.removeLayoutComponent): Updated API docs, (DefaultEditor.addLayoutComponent): Likewise, (NumberEditor.NumberEditor(JSpinner)): Set formatter for text field, (NumberEditor.NumberEditor(JSpinner, String)): Likewise, (NumberEditor.getFormat): Implemented, (NumberEditor.getModel): Updated API docs, (NumberEditorFormatter): New static inner class, (ListEditor.getModel): Updated API docs, (DateEditor.dateFormat): Removed, (DateEditor.DateEditor(JSpinner)): Set formatter for text field, (DateEditor.DateEditor(JSpinner, String)): Likewise, (DateEditor.init): Removed, (DateEditor.getFormat): Reimplemented, (DateEditorFormatter): New static inner class, (ModelListener): New inner class, (model): Updated API docs, (editor): Likewise, (listener): Removed, (JSpinner()): Updated API docs, (JSpinner(SpinnerModel)): Set up ModelListener, (setEditor): Fire property change, (getModel): Updated API docs, (setModel): Removed check for null editor, (setValue): Updated API docs, (getUIClassID): Updated API docs, (createEditor): Handle SpinnerListModel case, * javax/swing/plaf/basic/BasicSpinnerUI.java (createUI): Updated API docs, (createPropertyChangeListener): Added FIXME, (installDefaults): Set text field border to null, (DefaultLayoutManager): Updated API docs, (DefaultLayoutManager.layoutContainer): Modified layout, (DefaultLayoutManager.minimumLayoutSize): Ignore button heights, (DefaultLayoutManager.preferredLayoutSize): Likewise, (DefaultLayoutManager.removeLayoutComponent): Removed tabs, (DefaultLayoutManager.addLayoutComponent): Likewise, (DefaultLayoutManager.minSize): Renamed prefSize, (DefaultLayoutManager.setBounds): Reformatted, (DefaultLayoutManager.editor): Added API docs, (DefaultLayoutManager.next): Likewise, (DefaultLayoutManager.previous): Likewise, * javax/swing/plaf/metal/MetalLookAndFeel.java (initComponentDefaults): Added entry for 'Spinner.border', * examples/gnu/classpath/examples/swing/SpinnerDemo.java: New file. There is still some work to do on this (e.g. font settings aren't reflected in the UI yet, setting the component to disabled doesn't work, etc.)... Regards, Dave einfaches Textdokument-Anlage (diff.txt) Index: examples/gnu/classpath/examples/swing/SpinnerDemo.java === RCS file: examples/gnu/classpath/examples/swing/SpinnerDemo.java diff -N examples/gnu/classpath/examples/swing/SpinnerDemo.java --- /dev/null 1 Jan 1970 00:00:00 - +++ examples/gnu/classpath/examples/swing/SpinnerDemo.java15 Feb 2006 15:57:19 - @@ -0,0 +1,230 @@ +/* SpinnerDemo.java -- An example showing various spinners in Swing. + Copyright (C) 2006, Free Software Foundation, Inc. + +This file is part of GNU Classpath examples. + +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., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. +*/ + + +package gnu.classpath.examples.swing; + +import java.awt.BorderLayout; +import
[cp-patches] FYI: JComponent fixes
This fixes a small but annoying painting issue that happens if some components are invisible. Also, I removed some useless 'optimization' from repaint() that caused unnecessary creation of Rectangle objects. 2006-02-15 Roman Kennke [EMAIL PROTECTED] * javax/swing/JComponent.java (paintChildren): Also check for the visibility of a child component to avoid artifacts. (repaint): Simply add this component to the RepaintManager rather than trying to do useless optimization here. /Roman Index: javax/swing/JComponent.java === RCS file: /cvsroot/classpath/classpath/javax/swing/JComponent.java,v retrieving revision 1.100 diff -u -r1.100 JComponent.java --- javax/swing/JComponent.java 14 Feb 2006 15:23:27 - 1.100 +++ javax/swing/JComponent.java 15 Feb 2006 17:17:13 - @@ -1619,11 +1619,10 @@ // optimizedDrawingEnabled (== it tiles its children). if (! isOptimizedDrawingEnabled()) { -Rectangle clip = g.getClipBounds(); for (int i = 0; i children.length; i++) { Rectangle childBounds = children[i].getBounds(); -if (children[i].isOpaque() +if (children[i].isOpaque() children[i].isVisible() SwingUtilities.isRectangleContainingRectangle(childBounds, g.getClipBounds())) { @@ -2206,12 +2205,8 @@ */ public void repaint(long tm, int x, int y, int width, int height) { -Rectangle dirty = new Rectangle(x, y, width, height); -Rectangle vis = getVisibleRect(); -dirty = dirty.intersection(vis); -RepaintManager.currentManager(this).addDirtyRegion(this, dirty.x, dirty.y, - dirty.width, - dirty.height); +RepaintManager.currentManager(this).addDirtyRegion(this, x, y, width, + height); } /** @@ -2223,8 +2218,7 @@ */ public void repaint(Rectangle r) { -repaint((long) 0, (int) r.getX(), (int) r.getY(), (int) r.getWidth(), -(int) r.getHeight()); +repaint(0, r.x, r.y, r.width, r.height); } /**
[cp-patches] FYI: JInternal frame fixlet
In JInternalFrame we should not call hide() but call setVisible(false) instead. The difference is that we override setVisible() in JComponent and queue a repaint request for the parent, so that the hiding actually becomes visible. 2006-02-15 Roman Kennke [EMAIL PROTECTED] * javax/swing/JInternalFrame.java (dispose): Call setVisible(false) instead of hide. (doDefaultCloseOperation): Likewise. /Roman Index: javax/swing/JInternalFrame.java === RCS file: /cvsroot/classpath/classpath/javax/swing/JInternalFrame.java,v retrieving revision 1.23 diff -u -r1.23 JInternalFrame.java --- javax/swing/JInternalFrame.java 22 Dec 2005 20:58:29 - 1.23 +++ javax/swing/JInternalFrame.java 15 Feb 2006 17:21:07 - @@ -616,7 +616,7 @@ */ public void dispose() { -hide(); +setVisible(false); JDesktopPane pane = getDesktopPane(); if (pane != null) pane.setSelectedFrame(null); @@ -647,11 +647,11 @@ switch (getDefaultCloseOperation()) { case HIDE_ON_CLOSE: - hide(); - break; + setVisible(false); + break; case DISPOSE_ON_CLOSE: - dispose(); - break; + dispose(); + break; } }
[cp-patches] FYI: JInternalFrame closing
This fixes the setClosed() method on JInternalFrame to actually close the frame. From what I read from the specs of this method, this should call dispose() to do so. 2006-02-15 Roman Kennke [EMAIL PROTECTED] * javax/swing/JInternalFrame.java (setClosed): Call dispose to actually make the frame invisible and unselected. /Roman Index: javax/swing/JInternalFrame.java === RCS file: /cvsroot/classpath/classpath/javax/swing/JInternalFrame.java,v retrieving revision 1.24 diff -u -r1.24 JInternalFrame.java --- javax/swing/JInternalFrame.java 15 Feb 2006 17:22:27 - 1.24 +++ javax/swing/JInternalFrame.java 15 Feb 2006 17:31:22 - @@ -1257,13 +1257,14 @@ { if (b ! isClosed()) { - fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_CLOSING); - fireVetoableChange(IS_CLOSED_PROPERTY, false, true); +fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_CLOSING); +fireVetoableChange(IS_CLOSED_PROPERTY, false, true); - isClosed = b; +isClosed = b; +dispose(); - firePropertyChange(IS_CLOSED_PROPERTY, false, true); - fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_CLOSED); +firePropertyChange(IS_CLOSED_PROPERTY, false, true); +fireInternalFrameEvent(InternalFrameEvent.INTERNAL_FRAME_CLOSED); } }
Re: [cp-patches] [Patch]
Mark == Mark Wielaard [EMAIL PROTECTED] writes: Mark This introduced a small compile error with --enable-Werror. Please use Mark this configure option always when hacking on any C code. Anybody have an objection to adding this option to the Eclipse configure launcher? Is anybody using Eclipse to develop Classpath on an OS with bad system headers? (I assume everybody using Eclipse is using Linux, but I really have no idea...) Tom
Re: [cp-patches] [Patch]
- GtkWidget *window; + GtkWindow *window; GtkWidget *fixed; gdk_threads_enter (); NSA_SET_GLOBAL_REF (env, obj); - window = gtk_plug_new ((GdkNativeWindow) socket_id); + window = GTK_WINDOW (gtk_plug_new ((GdkNativeWindow) socket_id)); gtk_window_set_decorated (window, FALSE); A simpler fix and one more in line with the rest of the peer code is to change the added line to: gtk_window_set_decorated (GTK_WINDOW (window), FALSE); Tom
Re: [cp-patches] Patch: GtkDialogPeer fix
On Tue, 2006-02-14 at 17:49 -0500, Lillian Angel wrote: On Tue, 2006-02-14 at 14:41 -0500, Lillian Angel wrote: When the location of a Dialog is changed before it is visible, it does not take any effect. The Dialog would appear at some arbitrary location. This is now fixed. 2006-02-14 Lillian Angel [EMAIL PROTECTED] * gnu/java/awt/peer/gtk/GtkDialogPeer.java (setVisible): New method to override super. Need to set the native bounds of the component, so it appears at the correct location. This patch caused some problems, because if the bounds is set before we make the Dialog visible, it could be resized to 0x0. We just want to make sure that the location is correct for all Windows. I made this patch, but I would like approval before I commit it. Can you run the gnu.testlet.java.awt tests from Mauve as well as the Window/Frame/Dialog related vte tests? I think we found that we needed to set the width and height, as well as the location (i.e. we needed to call setBounds) before showing the window. Tom Thanks Lillian 2006-02-14 Lillian Angel [EMAIL PROTECTED] * gnu/java/awt/peer/gtk/GtkDialogPeer.java (setVisible): Removed method. * gnu/java/awt/peer/gtk/GtkWindowPeer.java (setLocation): New method. (setLocationUnlocked): New method. (show): Changed to use setLocation instead of setBounds. * java/awt/Component.java (show): Should call peer.show(), not peer.setVisible(), so the location of the component is correctly set. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation): New function. (Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSet LocationUnlocked): New function. * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Added declarations for Java_gnu_java_awt_peer_gtk_ GtkWindowPeer_nativeSetLocation and Java_gnu_java_awt_peer_gtk_GtkWindowPeer _nativeSetLocationUnlocked.
Re: [cp-patches] [Patch]
Hi Tom, On Wed, 2006-02-15 at 12:49 -0500, Thomas Fitzsimmons wrote: - GtkWidget *window; + GtkWindow *window; [...] - window = gtk_plug_new ((GdkNativeWindow) socket_id); + window = GTK_WINDOW (gtk_plug_new ((GdkNativeWindow) socket_id)); A simpler fix and one more in line with the rest of the peer code is to change the added line to: gtk_window_set_decorated (GTK_WINDOW (window), FALSE); OK. I'll change it in a minute. What is precisely the rational/rule here? The reason I made the change this way was that we expect to get a GtkWindow for gtk_plug_new and always use it as GtkWindow. Cheers, Mark signature.asc Description: This is a digitally signed message part
[cp-patches] Request for approval in deserialization fix
Hi, as discussed on irc, I request the approval of this fix in the deserialization part with the following changelog : 2006-02-15 Olivier jolly [EMAIL PROTECTED] Fixed bug #14144 * java/io/ObjectInputStream.java (readClassDescriptor) Class doesn't have to be abstract for first_nonserial Thx in advance Olivier Index: ObjectInputStream.java === RCS file: /sources/classpath/classpath/java/io/ObjectInputStream.java,v retrieving revision 1.74 diff -u -r1.74 ObjectInputStream.java --- ObjectInputStream.java 6 Feb 2006 11:50:46 - 1.74 +++ ObjectInputStream.java 13 Feb 2006 18:57:08 - @@ -1,5 +1,5 @@ /* ObjectInputStream.java -- Class used to read serialized objects - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -555,8 +555,7 @@ classLookupTable.put(clazz, osc); setBlockDataMode(oldmode); -// find the first non-serializable, non-abstract -// class in clazz's inheritance hierarchy +// find the first non-serializable class in clazz's inheritance hierarchy Class first_nonserial = clazz.getSuperclass(); // Maybe it is a primitive class, those don't have a super class, // or Object itself. Otherwise we can keep getting the superclass @@ -565,9 +564,8 @@ if (first_nonserial == null) first_nonserial = clazz; else - while (Serializable.class.isAssignableFrom(first_nonserial) - || Modifier.isAbstract(first_nonserial.getModifiers())) - first_nonserial = first_nonserial.getSuperclass(); + while (Serializable.class.isAssignableFrom(first_nonserial)) +first_nonserial = first_nonserial.getSuperclass(); final Class local_constructor_class = first_nonserial;
[cp-patches] Request for approval in serialization fix
Hi, here is another individual fix proposition in the serialization area, but in the serialization process itself this time. I propose to commit it with the following changelog : 2006-02-15 Olivier Jolly [EMAIL PROTECTED] * java/io/ObjectOutputStream.java (writeClassDescriptor): Call assignNewHandle() after writing Proxy class. Thx for comments Olivier Index: ObjectOutputStream.java === RCS file: /sources/classpath/classpath/java/io/ObjectOutputStream.java,v retrieving revision 1.65 diff -u -r1.65 ObjectOutputStream.java --- ObjectOutputStream.java 17 Dec 2005 16:29:45 - 1.65 +++ ObjectOutputStream.java 13 Feb 2006 18:56:30 - @@ -1,5 +1,5 @@ /* ObjectOutputStream.java -- Class used to write serialized objects - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -421,6 +421,8 @@ for (int i = 0; i intfs.length; i++) realOutput.writeUTF(intfs[i].getName()); +assignNewHandle(osc); + boolean oldmode = setBlockDataMode(true); annotateProxyClass(osc.forClass()); setBlockDataMode(oldmode);
Re: [cp-patches] Request for approval in serialization fix
Hi Olivier, On Wed, 2006-02-15 at 19:23 +0100, Olivier Jolly wrote: 2006-02-15 Olivier Jolly [EMAIL PROTECTED] * java/io/ObjectOutputStream.java (writeClassDescriptor): Call assignNewHandle() after writing Proxy class. Look great. Please commit. Thanks, Mark signature.asc Description: This is a digitally signed message part
Re: [cp-patches] [Patch]
Hi Tom, On Wed, 2006-02-15 at 13:30 -0500, Thomas Fitzsimmons wrote: A simpler fix and one more in line with the rest of the peer code is to change the added line to: gtk_window_set_decorated (GTK_WINDOW (window), FALSE); OK. I'll change it in a minute. What is precisely the rational/rule here? The GTK coding convention is to always use GtkWidgets and downcast when necessary. Aha. OK, fixed as follows: 2006-02-15 Mark Wielaard [EMAIL PROTECTED] * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create): Downcast gtk_plug_new result when used. Committed, Mark Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c === RCS file: /cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c,v retrieving revision 1.9 diff -u -r1.9 gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c --- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c 15 Feb 2006 12:09:06 - 1.9 +++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c 15 Feb 2006 18:55:47 - @@ -44,16 +44,16 @@ Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create (JNIEnv *env, jobject obj, jlong socket_id) { - GtkWindow *window; + GtkWidget *window; GtkWidget *fixed; gdk_threads_enter (); NSA_SET_GLOBAL_REF (env, obj); - window = GTK_WINDOW (gtk_plug_new ((GdkNativeWindow) socket_id)); + window = gtk_plug_new ((GdkNativeWindow) socket_id); - gtk_window_set_decorated (window, FALSE); + gtk_window_set_decorated (GTK_WINDOW (window), FALSE); fixed = gtk_fixed_new (); gtk_container_add (GTK_CONTAINER (window), fixed); signature.asc Description: This is a digitally signed message part
Re: [cp-patches] FYI: GtkDialogPeer fix
Can you run the gnu.testlet.java.awt tests from Mauve as well as the Window/Frame/Dialog related vte tests? I think we found that we needed to set the width and height, as well as the location (i.e. we needed to call setBounds) before showing the window. These tests still pass. I also found a problem with preferredSize in Component, This is now fixed. 2006-02-15 Lillian Angel [EMAIL PROTECTED] * gnu/java/awt/peer/gtk/GtkDialogPeer.java (setVisible): Removed method. * gnu/java/awt/peer/gtk/GtkWindowPeer.java (setLocation): New method. (setLocationUnlocked): New method. (show): Changed to use setLocation instead of setBounds. * java/awt/Component.java (show): Should call peer.show(), not peer.setVisible(), so the location of the component is correctly set. (preferredSize): Added curly braces so else statements are properly associated with if's. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation): New function. (Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSet LocationUnlocked): New function. * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Added declarations for Java_gnu_java_awt_peer_gtk_ GtkWindowPeer_nativeSetLocation and Java_gnu_java_awt_peer_gtk_GtkWindowPeer _nativeSetLocationUnlocked. Committed. Thanks, Lillian Index: gnu/java/awt/peer/gtk/GtkDialogPeer.java === RCS file: /sources/classpath/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java,v retrieving revision 1.31 diff -u -r1.31 GtkDialogPeer.java --- gnu/java/awt/peer/gtk/GtkDialogPeer.java 14 Feb 2006 19:40:07 - 1.31 +++ gnu/java/awt/peer/gtk/GtkDialogPeer.java 15 Feb 2006 18:17:34 - @@ -62,16 +62,6 @@ g.translate (-insets.left, -insets.top); return g; } - - public void setVisible (boolean b) - { -// Prevent the window manager from automatically placing this -// window when it is shown. -setBounds(awtComponent.getX(), awtComponent.getY(), - awtComponent.getWidth(), awtComponent.getHeight()); - -super.setVisible(b); - } protected void postMouseEvent(int id, long when, int mods, int x, int y, int clickCount, boolean popupTrigger) Index: gnu/java/awt/peer/gtk/GtkWindowPeer.java === RCS file: /sources/classpath/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java,v retrieving revision 1.45 diff -u -r1.45 GtkWindowPeer.java --- gnu/java/awt/peer/gtk/GtkWindowPeer.java 13 Feb 2006 14:32:53 - 1.45 +++ gnu/java/awt/peer/gtk/GtkWindowPeer.java 15 Feb 2006 18:17:34 - @@ -126,7 +126,23 @@ native void nativeSetBounds (int x, int y, int width, int height); native void nativeSetBoundsUnlocked (int x, int y, int width, int height); + native void nativeSetLocation (int x, int y); + native void nativeSetLocationUnlocked (int x, int y); + public void setLocation (int x, int y) + { +// prevent window_configure_cb - awtComponent.setSize - +// peer.setBounds - nativeSetBounds self-deadlock on GDK lock. +if (Thread.currentThread() == GtkToolkit.mainThread) + return; +nativeSetLocation (x, y); + } + + public void setLocationUnlocked (int x, int y) + { +nativeSetLocationUnlocked (x, y); + } + public void setBounds (int x, int y, int width, int height) { // prevent window_configure_cb - awtComponent.setSize - @@ -195,12 +211,7 @@ public void show () { -// Prevent the window manager from automatically placing this -// window when it is shown. -setBounds (awtComponent.getX(), - awtComponent.getY(), - awtComponent.getWidth(), - awtComponent.getHeight()); +setLocation(awtComponent.getX(), awtComponent.getY()); setVisible (true); } Index: include/gnu_java_awt_peer_gtk_GtkWindowPeer.h === RCS file: /sources/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h,v retrieving revision 1.19 diff -u -r1.19 gnu_java_awt_peer_gtk_GtkWindowPeer.h --- include/gnu_java_awt_peer_gtk_GtkWindowPeer.h 26 Aug 2005 04:35:49 - 1.19 +++ include/gnu_java_awt_peer_gtk_GtkWindowPeer.h 15 Feb 2006 18:17:34 - @@ -22,6 +22,8 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toFront (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBounds (JNIEnv *env, jobject, jint, jint, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked (JNIEnv *env, jobject, jint, jint, jint, jint); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation (JNIEnv *env, jobject, jint, jint); +JNIEXPORT void JNICALL
[cp-patches] One of the recent patches breaks JTable editing
One of the recently (today) introduced patches completely breaks the JTable editing, as it is seen in the Swing activity board. This blocks our work on JTable, please do not leave in such condition for long. Audrius
Re: [cp-patches] FYI: JComponent fixes
This introduces regressions on the JTable editing that starts working again after reverting. Also, the painting seems slower and sometimes I observe the window parts painted larger than expected. Roman Kennke wrote: This fixes a small but annoying painting issue that happens if some components are invisible. Also, I removed some useless 'optimization' from repaint() that caused unnecessary creation of Rectangle objects. 2006-02-15 Roman Kennke [EMAIL PROTECTED] * javax/swing/JComponent.java (paintChildren): Also check for the visibility of a child component to avoid artifacts. (repaint): Simply add this component to the RepaintManager rather than trying to do useless optimization here. /Roman Index: javax/swing/JComponent.java === RCS file: /cvsroot/classpath/classpath/javax/swing/JComponent.java,v retrieving revision 1.100 diff -u -r1.100 JComponent.java --- javax/swing/JComponent.java 14 Feb 2006 15:23:27 - 1.100 +++ javax/swing/JComponent.java 15 Feb 2006 17:17:13 - @@ -1619,11 +1619,10 @@ // optimizedDrawingEnabled (== it tiles its children). if (! isOptimizedDrawingEnabled()) { -Rectangle clip = g.getClipBounds(); for (int i = 0; i children.length; i++) { Rectangle childBounds = children[i].getBounds(); -if (children[i].isOpaque() +if (children[i].isOpaque() children[i].isVisible() SwingUtilities.isRectangleContainingRectangle(childBounds, g.getClipBounds())) { @@ -2206,12 +2205,8 @@ */ public void repaint(long tm, int x, int y, int width, int height) { -Rectangle dirty = new Rectangle(x, y, width, height); -Rectangle vis = getVisibleRect(); -dirty = dirty.intersection(vis); -RepaintManager.currentManager(this).addDirtyRegion(this, dirty.x, dirty.y, - dirty.width, - dirty.height); +RepaintManager.currentManager(this).addDirtyRegion(this, x, y, width, + height); } /** @@ -2223,8 +2218,7 @@ */ public void repaint(Rectangle r) { -repaint((long) 0, (int) r.getX(), (int) r.getY(), (int) r.getWidth(), -(int) r.getHeight()); +repaint(0, r.x, r.y, r.width, r.height); } /**
[cp-patches] FYI: Implementing the column resizing with mouse for JTable
This patch adds the table column resizing possibility by dragging the column boundary in the header (same as in Sun's version). The existing column resizing algorithm was not suitable as the by resizing the column boundary was drifting away from the current position of the mouse cursor, and we needed to introduce another spill distribution method in JTable. The patch calls Component.setCursor where applicable to change the cursor in the resize shape when positioned over the column boundary. Unfortunatley this finally goes to GLightweightPeer.setCursor that returns without action. 2006-02-15 Audrius Meskauskas [EMAIL PROTECTED] * javax/swing/JTable.java (distributeSpillResizing): New method. (doLayout): Use distributeSpillResizing when resizing. * javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler): Rewritten. (installListeners): Add mouse motion listener. (uninstallListeners): Remove mouse motion listener. Index: javax/swing/JTable.java === RCS file: /sources/classpath/classpath/javax/swing/JTable.java,v retrieving revision 1.73 diff -u -r1.73 JTable.java --- javax/swing/JTable.java 15 Feb 2006 08:50:58 - 1.73 +++ javax/swing/JTable.java 15 Feb 2006 19:48:46 - @@ -3030,7 +3030,31 @@ cols[i].setWidth(cols[i].getPreferredWidth() + average); } } - + + /** + * This distributes the superfluous width in a table, setting the width of the + * column being resized strictly to its preferred width. + */ + private void distributeSpillResizing(TableColumn[] cols, int spill, + TableColumn resizeIt) + { +int average = spill / (cols.length-1); +for (int i = 0; i cols.length; i++) + { +if (cols[i] != null !cols[i].equals(resizeIt)) + cols[i].setWidth(cols[i].getPreferredWidth() + average); + } +resizeIt.setWidth(resizeIt.getPreferredWidth()); + } + + /** + * Set the widths of all columns, taking they preferred widths into + * consideration. The excess space, if any, will be distrubuted between + * all columns. This method also handles special cases when one of the + * collumns is currently being resized. + * + * @see TableColumn#setPreferredWidth(int) + */ public void doLayout() { TableColumn resizingColumn = null; @@ -3079,14 +3103,14 @@ cols = new TableColumn[ncols]; for (int i = 0; i ncols; ++i) cols[i] = columnModel.getColumn(i); -distributeSpill(cols, spill); +distributeSpillResizing(cols, spill, resizingColumn); break; case AUTO_RESIZE_SUBSEQUENT_COLUMNS: cols = new TableColumn[ncols]; for (int i = rCol; i ncols; ++i) cols[i] = columnModel.getColumn(i); -distributeSpill(cols, spill); +distributeSpillResizing(cols, spill, resizingColumn); break; case AUTO_RESIZE_OFF: Index: javax/swing/plaf/basic/BasicTableHeaderUI.java === RCS file: /sources/classpath/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java,v retrieving revision 1.12 diff -u -r1.12 BasicTableHeaderUI.java --- javax/swing/plaf/basic/BasicTableHeaderUI.java 18 Nov 2005 22:01:14 - 1.12 +++ javax/swing/plaf/basic/BasicTableHeaderUI.java 15 Feb 2006 19:48:48 - @@ -39,14 +39,18 @@ package javax.swing.plaf.basic; import java.awt.Component; +import java.awt.Cursor; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Rectangle; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import javax.swing.CellRendererPane; import javax.swing.JComponent; import javax.swing.LookAndFeel; +import javax.swing.Timer; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.event.MouseInputListener; @@ -59,7 +63,12 @@ public class BasicTableHeaderUI extends TableHeaderUI { - + /** + * The width of the space (in both direction) around the column boundary, + * where mouse cursor changes shape into resize + */ + static int COLUMN_BOUNDARY_TOLERANCE = 3; + public static ComponentUI createUI(JComponent h) { return new BasicTableHeaderUI(); @@ -70,41 +79,172 @@ protected CellRendererPane rendererPane; protected Border cellBorder; - public class MouseInputHandler implements MouseInputListener - { + /** + * Handles column movement and rearrangement by mouse. The same instance works + * both as mouse listener and the mouse motion listner. + */ + public class MouseInputHandler + implements MouseInputListener + { +/** + * If true, the cursor is being already shown in the alternative resize + * shape. + */ +boolean showingResizeCursor; + +/** + * The position, from where the cursor is
[cp-patches] Patch: gnu_java_awt_peer_gtk_GtkWindowPeer fix
For some odd reason there were so many definitions of the same methods in gnu_java_awt_peer_gtk_GtkWindowPeer.c. I removed them. This may have been my fault, I just cant recall how they would have got in there! 2006-02-15 Lillian Angel [EMAIL PROTECTED] * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c: Removed duplicate methods. Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c === RCS file: /sources/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,v retrieving revision 1.64 diff -u -r1.64 gnu_java_awt_peer_gtk_GtkWindowPeer.c --- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c 15 Feb 2006 19:29:25 - 1.64 +++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c 15 Feb 2006 20:53:18 - @@ -1394,44 +1394,6 @@ } JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation - (JNIEnv *env, jobject obj, jint x, jint y) -{ - gdk_threads_enter (); - - Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked -(env, obj, x, y); - - gdk_threads_leave (); -} - -JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked - (JNIEnv *env, jobject obj, jint x, jint y) -{ - void *ptr; - - ptr = NSA_GET_PTR (env, obj); - - gtk_window_move (GTK_WINDOW(ptr), x, y); - - if (GTK_WIDGET (ptr)-window != NULL) -gdk_window_move (GTK_WIDGET (ptr)-window, x, y); -} - -JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation - (JNIEnv *env, jobject obj, jint x, jint y) -{ - gdk_threads_enter (); - - Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked -(env, obj, x, y); - - gdk_threads_leave (); -} - -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked (JNIEnv *env, jobject obj, jint x, jint y) { @@ -1458,20 +1420,6 @@ } JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked - (JNIEnv *env, jobject obj, jint x, jint y) -{ - void *ptr; - - ptr = NSA_GET_PTR (env, obj); - - gtk_window_move (GTK_WINDOW(ptr), x, y); - - if (GTK_WIDGET (ptr)-window != NULL) -gdk_window_move (GTK_WIDGET (ptr)-window, x, y); -} - -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height) {
[cp-patches] FYI: Documenting some methods in javax.swing
2006-02-15 Audrius Meskauskas [EMAIL PROTECTED] * javax/swing/JTable.java, javax/swing/plaf/basic/BasicTableHeaderUI.java, javax/swing/table/DefaultTableModel.java: Documented. Index: javax/swing/JTable.java === RCS file: /sources/classpath/classpath/javax/swing/JTable.java,v retrieving revision 1.74 diff -u -r1.74 JTable.java --- javax/swing/JTable.java 15 Feb 2006 20:29:32 - 1.74 +++ javax/swing/JTable.java 15 Feb 2006 21:43:25 - @@ -1702,8 +1702,11 @@ /** * Add the new table column. The table column class allows to specify column - * features more precisely. You do not need the add columns to the table if - * the default column handling is sufficient. + * features more precisely, setting the preferred width, column data type + * (column class) and table headers. + * + * There is no need the add columns to the table if the default column + * handling is sufficient. * * @param column * the new column to add. @@ -3183,48 +3186,109 @@ revalidate(); repaint(); } - + + /** + * Get the class (datatype) of the column. The cells are rendered and edited + * differently, depending from they data type. + * + * @param column the column + * + * @return the class, defining data type of that column (String.class for + * String, Boolean.class for boolean and so on). + */ public Class getColumnClass(int column) { return getModel().getColumnClass(column); } + /** + * Get the name of the column. If the column has the column identifier set, + * the return value is the result of the .toString() method call on that + * identifier. If the identifier is not explicitly set, the returned value + * is calculated by + * [EMAIL PROTECTED] javax.swing.table.AbstractTableModel#getColumnName(int)}. + * + * @param column the column + * + * @return the name of that column. + */ public String getColumnName(int column) { int modelColumn = columnModel.getColumn(column).getModelIndex(); return dataModel.getColumnName(modelColumn); } - + + /** + * Get the column, currently being edited + * + * @return the column, currently being edited. + */ public int getEditingColumn() { return editingColumn; } - + + /** + * Set the column, currently being edited + * + * @param column the column, currently being edited. + */ public void setEditingColumn(int column) { editingColumn = column; } + /** + * Get the row currently being edited. + * + * @return the row, currently being edited. + */ public int getEditingRow() { return editingRow; } - - public void setEditingRow(int column) + + /** + * Set the row currently being edited. + * + * @param row the row, that will be edited + */ + public void setEditingRow(int row) { -editingRow = column; +editingRow = row; } + /** + * Get the editor component that is currently editing one of the cells + * + * @return the editor component or null, if none of the cells is being + * edited. + */ public Component getEditorComponent() { return editorComp; } + /** + * Check if one of the table cells is currently being edited. + * + * @return true if there is a cell being edited. + */ public boolean isEditing() { return editorComp != null; } - + + /** + * Set the default editor for the given column class (column data type). + * By default, String is handled by text field and Boolean is handled by + * the check box. + * + * @param columnClass the column data type + * @param editor the editor that will edit this data type + * + * @see TableModel#getColumnClass(int) + */ public void setDefaultEditor(Class columnClass, TableCellEditor editor) { if (editor != null) @@ -3232,7 +3296,7 @@ else defaultEditorsByColumnClass.remove(columnClass); } - + public void addColumnSelectionInterval(int index0, int index1) { if ((index0 0 || index0 (getColumnCount()-1) @@ -3287,21 +3351,49 @@ getSelectionModel().removeSelectionInterval(index0, index1); } + /** + * Checks if the given column is selected. + * + * @param column the column + * + * @return true if the column is selected (as reported by the selection + * model, associated with the column model), false otherwise. + */ public boolean isColumnSelected(int column) { return getColumnModel().getSelectionModel().isSelectedIndex(column); } - + + /** + * Checks if the given row is selected. + * + * @param row the row + * + * @return true if the row is selected (as reported by the selection model), + * false otherwise. + */ public boolean isRowSelected(int row) { return getSelectionModel().isSelectedIndex(row); } - + + /** + * Checks if the given cell is selected.
Re: [cp-patches] FYI: JComponent fixes
Roman Kennke wrote: Index: javax/swing/JComponent.java @@ -2206,12 +2205,8 @@ */ public void repaint(long tm, int x, int y, int width, int height) { -Rectangle dirty = new Rectangle(x, y, width, height); -Rectangle vis = getVisibleRect(); -dirty = dirty.intersection(vis); -RepaintManager.currentManager(this).addDirtyRegion(this, dirty.x, dirty.y, - dirty.width, - dirty.height); +RepaintManager.currentManager(this).addDirtyRegion(this, x, y, width, + height); } This change causes the following exception message to appear: (.:6021): Gdk-CRITICAL **: gdk_draw_pixbuf: assertion `GDK_IS_PIXBUF (pixbuf)' failed java.lang.InternalError: Gdk: gdk_draw_pixbuf: assertion `GDK_IS_PIXBUF (pixbuf)' failed at gnu.java.awt.peer.gtk.GtkImage.drawPixelsScaledFlipped (Native Method) at gnu.java.awt.peer.gtk.GtkImage.drawImage (GtkImage.java:545) at gnu.java.awt.peer.gtk.GdkGraphics.drawImage (GdkGraphics.java:253) at gnu.java.awt.peer.gtk.GdkGraphics.drawImage (GdkGraphics.java:266) at javax.swing.RepaintManager.commitBuffer (RepaintManager.java:623) at javax.swing.RepaintManager.commitRemainingBuffers (RepaintManager.java:657) at javax.swing.RepaintManager.paintDirtyRegions (RepaintManager.java:565) at javax.swing.RepaintManager$RepaintWorker.run (RepaintManager.java:120) at java.awt.event.InvocationEvent.dispatch (InvocationEvent.java:200) at java.awt.EventQueue.dispatchEvent (EventQueue.java:465) at java.awt.EventDispatchThread.run (EventDispatchThread.java:75)
[cp-patches] RFC: Menu(Peer) related cleanups
Hi, The following patch cleans up the last awt Menu related bits. It is mainly a documentation of the gtk+ peer infrastructure and a few tweaks to make the parent MenuContainer always responsible for the MenuItems it contains. This finally makes my MenuMenu testcase and the hsqldb DatabaseManager recent commands menu work without any warnings or errors. 2006-02-15 Mark Wielaard [EMAIL PROTECTED] * java/awt/Menu.java (add(MenuItem)): Use item.getParent() to get parent field. (insert): Likewise. (addNotify): Add the item after addNotifying it. * java/awt/MenuBar.java (setHelpMenu): Only call removeNotify() when there is a peer. Use getParent() and setParent() to manipulate parent field. (add(Menu)): Use getParent() and setParent() to manipulate parent field. Call addNotify() and addMenu() when there is a peer. (remove(int)): Call removeNotify() and delMenu() when there is a peer. (addNotify): Use getPeer()/setPeer(). Call addMenu() and addHelpMenu() when there is a peer. * gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java (create): Document. (GtkMenuComponentPeer): Document. Take MenuComponent as argument. (setFont): Call setFont(Font). (setFont(Font)): Document. Only set font when not null. * gnu/java/awt/peer/gtk/GtkMenuItemPeer.java (create): Document. Made protected. (connectSignals): Likewise. (GtkMenuItemPeer): Document. Don't try to add item. Always call connectSignals(). * gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java (create): Make protected. (postMenuActionEvent): Document. * gnu/java/awt/peer/gtk/GtkMenuPeer.java (create): Document. Made protected. (addItem): Document. Made private. (addTearOff): Made private. (connectSignals): New protected overridden method. (GtkMenuPeer): Correctly cast setupAccelGroup() arguments. * gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (hasHelpMenu): New field. (create): Document. (addMenu): Made private, take GtkMenuPeer as argument and document. (GtkMenuBarPeer): Document. (nativeSetHelpMenu): Removed. (addHelpMenu): Implement. (delMenu): Document. (addMenu): Implement. * gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java (setParent): Removed. * include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: Regenerated. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c (Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_nativeSetHelpMenu): Removed. Does this look good? Also tested with the vte (although that doesn't contain many menu related tests. It could probably need another cleanup round. Especially for the PopupMenu stuff. I have to admit that I don't completely get how Popups are supposed to work. But the vte test still works as expected. Cheers, Mark Index: gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java === RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java,v retrieving revision 1.9 diff -u -r1.9 GtkCheckboxMenuItemPeer.java --- gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java 2 Jul 2005 20:32:12 - 1.9 +++ gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java 15 Feb 2006 23:55:17 - @@ -1,5 +1,5 @@ /* GtkCheckboxMenuItemPeer.java -- Implements CheckboxMenuItemPeer with GTK+ - Copyright (C) 1999, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,7 @@ public class GtkCheckboxMenuItemPeer extends GtkMenuItemPeer implements CheckboxMenuItemPeer { - native void create (String label); + protected native void create (String label); public GtkCheckboxMenuItemPeer (CheckboxMenuItem menu) { @@ -56,6 +56,11 @@ public native void setState(boolean t); + /** + * Called from the signal handler of the gtk widget. Posts a + * ItemEvent to indicate a state changed, then calls super to post + * an ActionEvent. + */ protected void postMenuActionEvent () { CheckboxMenuItem item = (CheckboxMenuItem)awtWidget; Index: gnu/java/awt/peer/gtk/GtkMenuBarPeer.java === RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java,v retrieving revision 1.12 diff -u -r1.12 GtkMenuBarPeer.java --- gnu/java/awt/peer/gtk/GtkMenuBarPeer.java 13 Feb 2006 18:57:03 - 1.12 +++ gnu/java/awt/peer/gtk/GtkMenuBarPeer.java 15 Feb 2006 23:55:17 - @@ -48,29 +48,69 @@ public class GtkMenuBarPeer extends GtkMenuComponentPeer implements MenuBarPeer { + /** Whether we already have an help menu set on this peer. */ + private boolean hasHelpMenu; - protected native void create (); - native void addMenu (MenuPeer menu); - - public GtkMenuBarPeer (MenuBar target) + /** + * Creates the gtk+ widget for this peer and puts it in the nsa + * table. Called from the (super class) constructor.
[cp-testresults] FAIL: classpath build with gcj (4.0) on Wed Feb 15 10:55:58 UTC 2006
then mv -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.Tpo .deps/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.Plo; else rm -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.Tpo; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Werror -DXTHREADS -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.lo -MD -MP -MF .deps/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.Tpo -c ../../../../classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c -fPIC -DPIC -o .libs/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.o if /bin/sh ../../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Werror -DXTHREADS -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo -MD -MP -MF .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Tpo -c -o gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo ../../../../classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c; \ then mv -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Tpo .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Plo; else rm -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Tpo; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Werror -DXTHREADS -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo -MD -MP -MF .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Tpo -c ../../../../classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c -fPIC -DPIC -o .libs/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.o if /bin/sh ../../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Werror -DXTHREADS -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo -MD -MP -MF .deps/gnu_java_awt_peer_gtk_GtkCheckboxPeer.Tpo -c -o gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo ../../../../classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c; \ then mv -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxPeer.Tpo .deps/gnu_java_awt_peer_gtk_GtkCheckboxPeer.Plo; else rm -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxPeer.Tpo; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Werror -DXTHREADS -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include
[cp-testresults] FAIL: classpath build with jikes on Wed Feb 15 11:11:46 UTC 2006
then mv -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.Tpo .deps/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.Plo; else rm -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.Tpo; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Werror -DXTHREADS -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/local/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.lo -MD -MP -MF .deps/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.Tpo -c ../../../../classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c -fPIC -DPIC -o .libs/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.o if /bin/sh ../../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Werror -DXTHREADS -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/local/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo -MD -MP -MF .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Tpo -c -o gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo ../../../../classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c; \ then mv -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Tpo .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Plo; else rm -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Tpo; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Werror -DXTHREADS -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/local/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo -MD -MP -MF .deps/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Tpo -c ../../../../classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c -fPIC -DPIC -o .libs/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.o if /bin/sh ../../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Werror -DXTHREADS -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/local/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo -MD -MP -MF .deps/gnu_java_awt_peer_gtk_GtkCheckboxPeer.Tpo -c -o gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo ../../../../classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c; \ then mv -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxPeer.Tpo .deps/gnu_java_awt_peer_gtk_GtkCheckboxPeer.Plo; else rm -f .deps/gnu_java_awt_peer_gtk_GtkCheckboxPeer.Tpo; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I../../../../classpath/native/jni/gtk-peer -I../../../include -I../../../../classpath/include -I../../../../classpath/native/jni/classpath -I../../../../classpath/native/target/Linux -I../../../../classpath/native/target/generic -pedantic -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes
[cp-testresults] FAIL: regressions for libgcj on Wed Feb 15 16:02:35 UTC 2006
Baseline from: Wed Feb 15 11:48:17 UTC 2006 Regressions: FAIL: Thread_Sleep -O3 output - bytecode-native test FAIL: Thread_Sleep -O3 output - source compiled test Totals: PASS: 3391 XPASS: 0 FAIL: 2 XFAIL: 10 ___ Classpath-testresults mailing list Classpath-testresults@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-testresults
[cp-testresults] FAIL: regressions for libgcj on Thu Feb 16 00:53:13 UTC 2006
Baseline from: Wed Feb 15 11:48:17 UTC 2006 Regressions: FAIL: Thread_Sleep -O3 output - bytecode-native test Totals: PASS: 3392 XPASS: 0 FAIL: 1 XFAIL: 10 ___ Classpath-testresults mailing list Classpath-testresults@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-testresults
Re: Ldap support in classpath
Hi. Erwin Rol wrote: Hey all, I am trying to get Open Xchange working with gcj, and so far things are going OK. Now i ran into a problem with LDAP. OX uses InitialLdapContext(...) to create a initial context. Later it uses javax.naming.InitialContext.getNameInNamespace(...) and that always seem to throw a javax.naming.OperationNotSupportedException. After looking into the classpath source code it seems most methodes in .naming.* just throw a not supported error. Ouch. You found what we call a silent stub. A method that will not show up in the JAPI scores. They are a legacy of the time when classpath was much less complete and the easiest way to get a Java app to compile was by providing empty methods. Is this simply because nobody had time yet to implement the real code, Yes. or is this a real design decision ? Of course, not. GNU Classpath is about being compatible with Java in every aspect. I think what is missing here is someone with good knowledge on the details of javax.naming. Naturally volunteers are more than welcome. :) Also OX needs LdapName which i found in the apache directory sources, are there any plans to add a LdapName implementation to classpath ? Is this a publc class of the java or javax namespace? If so we should provide it. cya Robert signature.asc Description: OpenPGP digital signature
Re: Ldap support in classpath
Erwin Rol wrote: I am trying to get Open Xchange working with gcj, and so far things are going OK. Now i ran into a problem with LDAP. OX uses InitialLdapContext(...) to create a initial context. Later it uses javax.naming.InitialContext.getNameInNamespace(...) and that always seem to throw a javax.naming.OperationNotSupportedException. After looking into the classpath source code it seems most methodes in .naming.* just throw a not supported error. Is this simply because nobody had time yet to implement the real code, or is this a real design decision ? The former. There is the basis of an LDAP client in inetlib. This was developed with the intention of becoming the protocol handler for an LDAP JNDI implementation. There isn't any DirContext implementation yet, it would be great if someone found the time to do it. Our only current JNDI implementation is a filesystem-based one which is still in the ether somewhere; Mark was going to review it but I guess hasn't had the time yet. Also OX needs LdapName which i found in the apache directory sources, are there any plans to add a LdapName implementation to classpath ? I don't know what you're referring to. -- 犬 Chris Burdess They that can give up essential liberty to obtain a little safety deserve neither liberty nor safety. - Benjamin Franklin PGP.sig Description: This is a digitally signed message part
Re: Ldap support in classpath
On Wed, 2006-02-15 at 09:36 +0100, Robert Schuster wrote: I think what is missing here is someone with good knowledge on the details of javax.naming. Well that isn't me, I am just trying to get OX working, and stumbled over the naming thing. Naturally volunteers are more than welcome. :) Well i will see if i can implement as much as is needed to get OX working. Of course as soon as i start i will get a shit load of other work to do and it will take for ever. Also OX needs LdapName which i found in the apache directory sources, are there any plans to add a LdapName implementation to classpath ? Is this a publc class of the java or javax namespace? If so we should provide it. It is new in 1.5 : http://java.sun.com/j2se/1.5.0/docs/api/javax/naming/ldap/LdapName.html - Erwin
how do you run classpath?
while browsing, trying to solve a problem, came across classpath, but when i tried it i found a bug in the bit i wanted to use,( URL class ) which appeared easy to fix, wrote what i thought was a fix but now can't seem to find a nice way to run it. i am trying NOT to set up another development environment and really just want to replace the existing class and run it. here's what i've tried so far; used IKVM, but the -xbootclasspath option doesn't override the existing classes. (this seems like a bug which i've posted.). tried to compile classpath using jikes to run under sun JVM but get this; Found 1 semantic error compiling C:/Program Files/classpath/java/lang/ClassLoader.java: 1097. new URLClassLoader(urls, parent) . . . 1112. }; *** Error: A constructor associated with this anonymous type does not throw the exception java/lang/SecurityException thrown by its super type, java/net/URLClassLoader. and i'm only doing that because i can't find a runtime anywhere. ( is this because runtime's are somehow VM dependent, and it's too difficult to maintain a runtime for this VM? ) please help, getting a bit frustrated, a simple bit of hit and run contribution, has turned into a week of annoyance. simon.
Re: Ldap support in classpath
On Wed, 2006-02-15 at 14:37 +0100, Mark Wielaard wrote: Hi Erwin, On Wed, 2006-02-15 at 14:08 +0100, Erwin Rol wrote: I am just trying to get OX working, and stumbled over the naming thing. This might be a new issue. I know that in the past some people did try to get it working already. There were a couple of small issues though. Upstream was aware of them, but might not have solved them all yet. See the following threads. Martin Kauss from OpenExchange was aware of the issues and might know a bit more about the current status and whether upstream has cleaned up some of these already: http://www.redhat.com/archives/fedora-devel-java-list/2005-July/thread.html#00095 http://www.redhat.com/archives/fedora-devel-java-list/2005-July/thread.html#00076 There is no effort at all to remove com.sun. stuff from OX, at least all the issues from those mails are still in the sourcecode, including the BASE64, JNDI, javamail and ldap stuff. The BASE64 seems to have enough replacements, and was easy to fix. Not a 1:1 drop in but with a small OX patch. The javamail should be doable with the latest class path if the methodes that are used by OX are actually correctly implemented and are not dummy exception throwing ones. the JNDI and ldap stuff seems the be a bit harder to fix. maybe the jldap from Novell (now at openldap.org) could be used as a replacement, but that will need some serious OX hacking. Or the missing naming stuff should be implemented in classpath. The netscape jndi stuff might be good enough also. - Erwin
Re: Ldap support in classpath
Hi Erwin, On Wed, 2006-02-15 at 14:08 +0100, Erwin Rol wrote: I am just trying to get OX working, and stumbled over the naming thing. This might be a new issue. I know that in the past some people did try to get it working already. There were a couple of small issues though. Upstream was aware of them, but might not have solved them all yet. See the following threads. Martin Kauss from OpenExchange was aware of the issues and might know a bit more about the current status and whether upstream has cleaned up some of these already: http://www.redhat.com/archives/fedora-devel-java-list/2005-July/thread.html#00095 http://www.redhat.com/archives/fedora-devel-java-list/2005-July/thread.html#00076 Cheers, Mark signature.asc Description: This is a digitally signed message part
Re: Ldap support in classpath
Hi Erwin, On Wed, 2006-02-15 at 14:58 +0100, Erwin Rol wrote: There is no effort at all to remove com.sun. stuff from OX, at least all the issues from those mails are still in the sourcecode, including the BASE64, JNDI, javamail and ldap stuff. :( that is a pity. That makes it a lot harder to support OX on free systems out of the box. the JNDI and ldap stuff seems the be a bit harder to fix. maybe the jldap from Novell (now at openldap.org) could be used as a replacement, but that will need some serious OX hacking. Or the missing naming stuff should be implemented in classpath. The netscape jndi stuff might be good enough also. There is also the Fedora Directory Server Project http://directory.fedora.redhat.com/ (this is actually the old netscape stuff cleaned up and updated). And they seem very interested in gcj compatibility. Although last time I looked they also still had some proprietary dependencies left. Cheers, Mark signature.asc Description: This is a digitally signed message part
RE: how do you run classpath?
simon place wrote: while browsing, trying to solve a problem, came across classpath, but when i tried it i found a bug in the bit i wanted to use,( URL class ) which appeared easy to fix, wrote what i thought was a fix but now can't seem to find a nice way to run it. i am trying NOT to set up another development environment and really just want to replace the existing class and run it. I know how frustrating this is. Building an open source project can be a real pain (especially on Windows). However, if you had asked on the ikvm-developers list, I would have been happy to help you set up an ikvm (including GNU Classpath) build environment. here's what i've tried so far; used IKVM, but the -xbootclasspath option doesn't override the existing classes. (this seems like a bug which i've posted.). This is not a bug, but a design decision. please help, getting a bit frustrated, a simple bit of hit and run contribution, has turned into a week of annoyance. I recommend you post your bug report (possibly including your suggested fix) either here or to the ikvm-developers list, and if you ask me and if it's a small issue, I'm usually fairly quick to include the fix in my working tree and post a new ikvm snapshot that includes the fix. Regards, Jeroen
Re: Ldap support in classpath
On Wed, 2006-02-15 at 09:36 +0100, Robert Schuster wrote: Hi. Erwin Rol wrote: Hey all, I am trying to get Open Xchange working with gcj, and so far things are going OK. Now i ran into a problem with LDAP. OX uses InitialLdapContext(...) to create a initial context. Later it uses javax.naming.InitialContext.getNameInNamespace(...) and that always seem to throw a javax.naming.OperationNotSupportedException. After looking into the classpath source code it seems most methodes in .naming.* just throw a not supported error. Ouch. You found what we call a silent stub. A method that will not show up in the JAPI scores. It seems the getNameInNamespace() correctly throws and OperationNotSupportedException because the javax.nameing.InitialContext does not know how about things to preform the action. The LdapInitialContext is the one that knows this, but LdapInitialContext does not have a getNameInNamespace() method, so the one of the base class is used. How could it be made that those methods that LdapInitialContext should overload show up as missing in the JAPI scores ? - Erwin
[Bug swing/26301] JTableHeader needs possibility to change the cursor shape, but GLightweightPeer.setCursor is a silent stub.
--- Comment #1 from audriusa at bluewin dot ch 2006-02-15 11:49 --- I am not sure, probably JTableHeader just needs another, more functional peer. -- audriusa at bluewin dot ch changed: What|Removed |Added Summary|GLightweightPeer.setCursor |JTableHeader needs |is a silent stub. |possibility to change the ||cursor shape, but ||GLightweightPeer.setCursor ||is a silent stub. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26301 ___ Bug-classpath mailing list Bug-classpath@gnu.org http://lists.gnu.org/mailman/listinfo/bug-classpath
Re: Ldap support in classpath
It can't and it shouldn't, it's a deliberate design decision of japi. There's absolutely no possible conceivable way for japi to know that a particular method *needs* to be overridden, because overriding a method or not is purely an implementation decision. For example, at first glance it's obvious that String needs to override the equals method of Object. However, it could be that for some bizarre optimization reason a particular implementation of the Java API might want to do something like this: public class Object { ... public boolean equals(Object o) { if (this instanceof String) { // something special } else { return o == this; } } } in which case String wouldn't need an override at all. This is a silly example because nobody would ever do it that way, but there are a lot of methods in the API which might or might not need to be overridden. Sometimes the behavior is identical so overriding isn't strictly necessary but the subclass can provide a faster implementation. Sometimes instead of an override the implementation might merely defer some *parts* of the body of that method to internal virtual methods. Japi's business is to check the API and not make any assumptions about the implementation. Otherwise we get into tricky legal territory as to whether we're actually creating a clean-room implementation or a derived work of Sun's copyrighted one. In this case, obviously we do need to override to get the behavior right, but japi isn't about testing behavior. Instead, we should add a Mauve test that confirms that LdapInitialContext actually does what it's supposed to do. Stuart. PS In case you can't tell, I write variations this email often ;) On 2/15/06, Erwin Rol [EMAIL PROTECTED] wrote: On Wed, 2006-02-15 at 09:36 +0100, Robert Schuster wrote: Hi. Erwin Rol wrote: Hey all, I am trying to get Open Xchange working with gcj, and so far things are going OK. Now i ran into a problem with LDAP. OX uses InitialLdapContext(...) to create a initial context. Later it uses javax.naming.InitialContext.getNameInNamespace(...) and that always seem to throw a javax.naming.OperationNotSupportedException. After looking into the classpath source code it seems most methodes in .naming.* just throw a not supported error. Ouch. You found what we call a silent stub. A method that will not show up in the JAPI scores. It seems the getNameInNamespace() correctly throws and OperationNotSupportedException because the javax.nameing.InitialContext does not know how about things to preform the action. The LdapInitialContext is the one that knows this, but LdapInitialContext does not have a getNameInNamespace() method, so the one of the base class is used. How could it be made that those methods that LdapInitialContext should overload show up as missing in the JAPI scores ? - Erwin -- http://sab39.dev.netreach.com/
Another minor japi change
I just found and partially fixed a longstanding bug in japi - it was ignoring members declared in non-public superclasses. Apparently these members *are* accessible. I noticed this because the comparison between jdk14 and jdk15 was reporting a bunch of methods in StringBuffer as missing, because in jdk15 these were moved to a non-public superclass shared between StringBuffer and StringBuilder. I'm rerunning now with this bug fixed; if it causes any changes to the results for Classpath, there'll be a diff email shortly. There is one remaining problem that isn't quite so trivial to fix: a field that's declared in a non-public superclass should be treated as if it were declared in the first public subclass of that class (in the cases where the declaring class matters). Theoretically, this could produce erroneous results. If the new runs introduce any errors claiming that fields ought to be declared in non-public classes, please ignore those errors until I can fix the japi bug, at which point they'll either go away or give a correct location where the fields should be declared. There's actually a really really obscure corner case where the fact that it's declared in a non-public superclass might actually matter: class Super { public static int value; } public class Sub1 extends Super { } public class Sub2 extends Super { } public void test() { Sub1.value = 1; System.out.println(Sub2.value); } However, since Super isn't part of the public API at all, I can't think of any way for Japi to represent the fact that Sub1.value and Sub2.value are actually the same field without ever mentioning (or knowing about) the nonpublic class. Especially since it's only actually an issue if more than one public subclass exists. Any suggestions? Stuart. -- http://sab39.dev.netreach.com/
[Bug swing/26301] New: GLightweightPeer.setCursor is a silent stub.
It is not possible to set the alternative cursor shape with Component.setCursor(..). The functionality is delegated to GLightweightPeer.setCursor that returns without action. The possibility to change the cursor is needed for the proper implementation of the JTable column resizing. -- Summary: GLightweightPeer.setCursor is a silent stub. Product: classpath Version: 0.21 Status: UNCONFIRMED Severity: normal Priority: P3 Component: swing AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: audriusa at bluewin dot ch OtherBugsDependingO 25774 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26301 ___ Bug-classpath mailing list Bug-classpath@gnu.org http://lists.gnu.org/mailman/listinfo/bug-classpath
Re: Another minor japi change
False alarm (temporarily), this change doesn't seem to have actually worked. I'll look into it later when I have more time. Stuart. On 2/15/06, Stuart Ballard [EMAIL PROTECTED] wrote: I just found and partially fixed a longstanding bug in japi - it was ignoring members declared in non-public superclasses. Apparently these members *are* accessible. I noticed this because the comparison between jdk14 and jdk15 was reporting a bunch of methods in StringBuffer as missing, because in jdk15 these were moved to a non-public superclass shared between StringBuffer and StringBuilder. I'm rerunning now with this bug fixed; if it causes any changes to the results for Classpath, there'll be a diff email shortly. There is one remaining problem that isn't quite so trivial to fix: a field that's declared in a non-public superclass should be treated as if it were declared in the first public subclass of that class (in the cases where the declaring class matters). Theoretically, this could produce erroneous results. If the new runs introduce any errors claiming that fields ought to be declared in non-public classes, please ignore those errors until I can fix the japi bug, at which point they'll either go away or give a correct location where the fields should be declared. There's actually a really really obscure corner case where the fact that it's declared in a non-public superclass might actually matter: class Super { public static int value; } public class Sub1 extends Super { } public class Sub2 extends Super { } public void test() { Sub1.value = 1; System.out.println(Sub2.value); } However, since Super isn't part of the public API at all, I can't think of any way for Japi to represent the fact that Sub1.value and Sub2.value are actually the same field without ever mentioning (or knowing about) the nonpublic class. Especially since it's only actually an issue if more than one public subclass exists. Any suggestions? Stuart. -- http://sab39.dev.netreach.com/ -- http://sab39.dev.netreach.com/
Re: Japi diffs for classpath
On 2/15/06, Stuart Ballard [EMAIL PROTECTED] wrote: ... +Total: 98.7% good, 1.06% missing +Fields: 160 missing. Well, that's an interesting result I suppose. Still having problems in this department; sorry for the spam. While that change certainly made a difference there are still at least two problems: 1) The classpath japis were created with a japitools version that didn't have this change. D'oh. The changes are checked into japitools CVS so they should be picked up by tonight's run. Until then the results should be treated as suspect; sorry. Didn't think of that until too late. 2) The problem that I was actually trying to target with this change doesn't seem to be solved yet: http://www.kaffe.org/~stuart/japi/htmlout/h-jdk14-jdk15.html#err_missing_java_lang Still shows a whole bunch of methods missing from 1.5 that should be present. Why that's happening requires further investigation. Stuart. -- http://sab39.dev.netreach.com/
[FOSDEM] Friday meeting?
Hello all, The Classpath FOSDEM page mentions a Friday night gathering of attendees, requesting that anyone who knows Brussels suggest a place to meet. Well, I don't know Brussels, but I do have a book or two on Brussels, and I know a beer/wine importer or two. :-) So, I would like to propose two places that we might meet on Friday night. Both are near Gare Centrale: A La Mort Subite - 7 rue Montagne aux Herbes Potageres http://www.alamortsubite.com Strongly recommended by importers, but also recommended in Fodor's 25 Best for Brussels. They brew several of their own beers and have several trappist, abbey, and other Belgian beers on tap and in the bottle. Their website mentions that they serve sandwiches and omelets, but does not list a menu. Almost equidistant from Gare Centrale and DeBrouckere metro stops. Le Bier Circus - 57 rue de l’Enseignement http://www.biercircus.be Recommended by beer snobs around the globe. Their web page has a large list of the beers they sell (including vintage beers). They also carry wine and have a decent looking menu (all on their website). Down the road from the Cirque Royale (which is at #81). Any other ideas/opinions? Keith
Re: [FOSDEM] Friday meeting?
Keith == Keith Seitz [EMAIL PROTECTED] writes: Keith A La Mort Subite - 7 rue Montagne aux Herbes Potageres I like the name, I vote for here. Tom
[Bug classpath/26312] New: ChunkedInputStream..read() returns incorrect values.
Look at the code below, if the high bit in the byte is set read returns a negitive number. The is clearly in violation of the specification which says the value must be between 0 - 255. 85 : public int read() 86 : throws IOException 87 : { 88 : byte[] buf = new byte[1]; 89 : int len = read(buf, 0, 1); 90 : if (len == -1) 91 : { 92 : return -1; 93 : } 94 : int ret = (int) buf[0]; 95 : if (ret 0) 96 : { 97 : ret += 0x100; 98 : } 99 : return ret; 100 : } Lines 94-99 should be replaced with: return 0xff buf[0]; -- Summary: ChunkedInputStream..read() returns incorrect values. Product: classpath Version: unspecified Status: UNCONFIRMED Severity: normal Priority: P3 Component: classpath AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: daney at gcc dot gnu dot org GCC build triplet: *-*-* GCC host triplet: *-*-* GCC target triplet: *-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26312 ___ Bug-classpath mailing list Bug-classpath@gnu.org http://lists.gnu.org/mailman/listinfo/bug-classpath
Re: [FOSDEM] Friday meeting?
Tom Tromey writes: Keith == Keith Seitz [EMAIL PROTECTED] writes: Keith A La Mort Subite - 7 rue Montagne aux Herbes Potageres I like the name, I vote for here. A La Mort Subite is a great place. It also has the advantage of being pretty big. If it doesn't work out there we can always make our way to the cafe next to T'Kelderke on the Grand Place -- it has lots of room upstairs. Andrew.
[commit-cp] classpath ./ChangeLog native/jni/gtk-peer/gnu_j...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Roman Kennke [EMAIL PROTECTED]06/02/15 09:00:25 Modified files: . : ChangeLog native/jni/gtk-peer: gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c gnu_java_awt_peer_gtk_GtkWindowPeer.c Log message: 2006-02-15 Michael Koch [EMAIL PROTECTED] * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create): Make sure the embedded window gets no decorations. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (window_get_frame_extents): Return early of the window has no decorations. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6395tr2=1.6396r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c.diff?tr1=1.7tr2=1.8r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c.diff?tr1=1.62tr2=1.63r1=textr2=text
[commit-cp] classpath ./ChangeLog java/util/zip/ZipFile.java
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Jeroen Frijters [EMAIL PROTECTED] 06/02/15 09:25:40 Modified files: . : ChangeLog java/util/zip : ZipFile.java Log message: 2006-02-15 Jeroen Frijters [EMAIL PROTECTED] * java/util/zip/ZipFile.java (checkZipFile): Inlined readLeInt and rewritten for robustness. (readLeShort(DataInput,byte[]), readLeInt(DataInput,byte[], readLeShort(byte[],int), readLeInt(byte[],int)): Removed. (readEntries): Rewritten to use PartialInputStream. (locBuf, checkLocalHeader): Removed. (getInputStream): Rewritten to use new PartialInputStream. (PartialInputStream): Rewritten to do buffering. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6396tr2=1.6397r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/java/util/zip/ZipFile.java.diff?tr1=1.27tr2=1.28r1=textr2=text
[commit-cp] classpath javax/swing/plaf/basic/BasicTableUI.j...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Roman Kennke [EMAIL PROTECTED]06/02/15 10:27:02 Modified files: javax/swing/plaf/basic: BasicTableUI.java . : ChangeLog Log message: 2006-02-15 Roman Kennke [EMAIL PROTECTED] * javax/swing/plaf/basic/BasicTableUI.java (paint): Paint vertical and horizontal lines one pixel shifted left/top. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/plaf/basic/BasicTableUI.java.diff?tr1=1.42tr2=1.43r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6397tr2=1.6398r1=textr2=text
[commit-cp] classpath ./ChangeLog javax/swing/SpinnerNumber...
CVSROOT:/sources/classpath Module name:classpath Branch: Changes by: David Gilbert [EMAIL PROTECTED] 06/02/15 10:55:44 Modified files: . : ChangeLog javax/swing: SpinnerNumberModel.java Log message: 2006-02-15 David Gilbert [EMAIL PROTECTED] * javax/swing/SpinnerNumberModel.java (getNextValue): Check for null maximum, (getPreviousValue): Check for null minimum. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6398tr2=1.6399r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/SpinnerNumberModel.java.diff?tr1=1.10tr2=1.11r1=textr2=text
[commit-cp] classpath ./ChangeLog native/jni/gtk-peer/gnu_j...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Mark Wielaard [EMAIL PROTECTED] 06/02/15 12:09:06 Modified files: . : ChangeLog native/jni/gtk-peer: gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c Log message: * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create): gtk_plug_new() returns a GtkWindow. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6399tr2=1.6400r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c.diff?tr1=1.8tr2=1.9r1=textr2=text
[commit-cp] classpath ./ChangeLog gnu/xml/validation/dataty...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Chris Burdess [EMAIL PROTECTED] 06/02/15 14:37:10 Modified files: . : ChangeLog gnu/xml/validation/datatype: BooleanType.java ByteType.java DateTimeType.java DateType.java DecimalType.java DoubleType.java DurationType.java FloatType.java GDayType.java GMonthDayType.java GMonthType.java GYearMonthType.java GYearType.java IntType.java IntegerType.java LongType.java MaxExclusiveFacet.java MaxInclusiveFacet.java MinExclusiveFacet.java MinInclusiveFacet.java NegativeIntegerType.java NonNegativeIntegerType.java NonPositiveIntegerType.java PositiveIntegerType.java ShortType.java SimpleType.java TimeType.java TypeBuilder.java UnsignedByteType.java UnsignedIntType.java UnsignedLongType.java UnsignedShortType.java Log message: 2006-02-15 Chris Burdess [EMAIL PROTECTED] * gnu/xml/validation/datatype/BooleanType.java, gnu/xml/validation/datatype/ByteType.java, gnu/xml/validation/datatype/DateTimeType.java, gnu/xml/validation/datatype/DateType.java, gnu/xml/validation/datatype/DecimalType.java, gnu/xml/validation/datatype/DoubleType.java, gnu/xml/validation/datatype/DurationType.java, gnu/xml/validation/datatype/FloatType.java, gnu/xml/validation/datatype/GDayType.java, gnu/xml/validation/datatype/GMonthDayType.java, gnu/xml/validation/datatype/GMonthType.java, gnu/xml/validation/datatype/GYearMonthType.java, gnu/xml/validation/datatype/GYearType.java, gnu/xml/validation/datatype/IntType.java, gnu/xml/validation/datatype/IntegerType.java, gnu/xml/validation/datatype/LongType.java, gnu/xml/validation/datatype/MaxExclusiveFacet.java, gnu/xml/validation/datatype/MaxInclusiveFacet.java, gnu/xml/validation/datatype/MinExclusiveFacet.java, gnu/xml/validation/datatype/MinInclusiveFacet.java, gnu/xml/validation/datatype/NegativeIntegerType.java, gnu/xml/validation/datatype/NonNegativeIntegerType.java, gnu/xml/validation/datatype/NonPositiveIntegerType.java, gnu/xml/validation/datatype/PositiveIntegerType.java, gnu/xml/validation/datatype/ShortType.java, gnu/xml/validation/datatype/SimpleType.java, gnu/xml/validation/datatype/TimeType.java, gnu/xml/validation/datatype/TypeBuilder.java, gnu/xml/validation/datatype/UnsignedByteType.java, gnu/xml/validation/datatype/UnsignedIntType.java, gnu/xml/validation/datatype/UnsignedLongType.java, gnu/xml/validation/datatype/UnsignedShortType.java: Provide value objects for datatypes. Make maxExclusive,minExclusive,maxInclusive, minInclusive facets use the value space of the base type, and implement. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6400tr2=1.6401r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/xml/validation/datatype/BooleanType.java.diff?tr1=1.1tr2=1.2r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/xml/validation/datatype/ByteType.java.diff?tr1=1.1tr2=1.2r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/xml/validation/datatype/DateTimeType.java.diff?tr1=1.1tr2=1.2r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/xml/validation/datatype/DateType.java.diff?tr1=1.1tr2=1.2r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/xml/validation/datatype/DecimalType.java.diff?tr1=1.1tr2=1.2r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/xml/validation/datatype/DoubleType.java.diff?tr1=1.1tr2=1.2r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/xml/validation/datatype/DurationType.java.diff?tr1=1.1tr2=1.2r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/xml/validation/datatype/FloatType.java.diff?tr1=1.1tr2=1.2r1=textr2=text
[commit-cp] classpath ./ChangeLog javax/swing/JSpinner.java...
CVSROOT:/sources/classpath Module name:classpath Branch: Changes by: David Gilbert [EMAIL PROTECTED] 06/02/15 16:20:13 Modified files: . : ChangeLog javax/swing: JSpinner.java javax/swing/plaf/basic: BasicSpinnerUI.java javax/swing/plaf/metal: MetalLookAndFeel.java Added files: examples/gnu/classpath/examples/swing: SpinnerDemo.java Log message: 2006-02-15 David Gilbert [EMAIL PROTECTED] * javax/swing/JSpinner.java (DefaultEditor.DefaultEditor(JSpinner)): Add self to text field as a PropertyChangeListener, (DefaultEditor.getSpinner): Updated API docs, (DefaultEditor.dismiss): Likewise, (DefaultEditor.getTextField): Likewise, (DefaultEditor.layoutContainer): Likewise, (DefaultEditor.minimumLayoutSize): Likewise, (DefaultEditor.preferredLayoutSize): Likewise, (DefaultEditor.propertyChange): Implemented, (DefaultEditor.stateChanged): Implemented, (DefaultEditor.removeLayoutComponent): Updated API docs, (DefaultEditor.addLayoutComponent): Likewise, (NumberEditor.NumberEditor(JSpinner)): Set formatter for text field, (NumberEditor.NumberEditor(JSpinner, String)): Likewise, (NumberEditor.getFormat): Implemented, (NumberEditor.getModel): Updated API docs, (NumberEditorFormatter): New static inner class, (ListEditor.getModel): Updated API docs, (DateEditor.dateFormat): Removed, (DateEditor.DateEditor(JSpinner)): Set formatter for text field, (DateEditor.DateEditor(JSpinner, String)): Likewise, (DateEditor.init): Removed, (DateEditor.getFormat): Reimplemented, (DateEditorFormatter): New static inner class, (ModelListener): New inner class, (model): Updated API docs, (editor): Likewise, (listener): Removed, (JSpinner()): Updated API docs, (JSpinner(SpinnerModel)): Set up ModelListener, (setEditor): Fire property change, (getModel): Updated API docs, (setModel): Removed check for null editor, (setValue): Updated API docs, (getUIClassID): Updated API docs, (createEditor): Handle SpinnerListModel case, * javax/swing/plaf/basic/BasicSpinnerUI.java (createUI): Updated API docs, (createPropertyChangeListener): Added FIXME, (installDefaults): Set text field border to null, (DefaultLayoutManager): Updated API docs, (DefaultLayoutManager.layoutContainer): Modified layout, (DefaultLayoutManager.minimumLayoutSize): Ignore button heights, (DefaultLayoutManager.preferredLayoutSize): Likewise, (DefaultLayoutManager.removeLayoutComponent): Removed tabs, (DefaultLayoutManager.addLayoutComponent): Likewise, (DefaultLayoutManager.minSize): Renamed prefSize, (DefaultLayoutManager.setBounds): Reformatted, (DefaultLayoutManager.editor): Added API docs, (DefaultLayoutManager.next): Likewise, (DefaultLayoutManager.previous): Likewise, * javax/swing/plaf/metal/MetalLookAndFeel.java (initComponentDefaults): Added entry for 'Spinner.border', * examples/gnu/classpath/examples/swing/SpinnerDemo.java: New file. -- CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6401tr2=1.6402r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/examples/gnu/classpath/examples/swing/SpinnerDemo.java?rev=1.1 http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/JSpinner.java.diff?tr1=1.14tr2=1.15r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/plaf/basic/BasicSpinnerUI.java.diff?tr1=1.7tr2=1.8r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java.diff?tr1=1.77tr2=1.78r1=textr2=text
[commit-cp] classpath javax/swing/JInternalFrame.java ./Cha...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Roman Kennke [EMAIL PROTECTED]06/02/15 17:22:27 Modified files: javax/swing: JInternalFrame.java . : ChangeLog Log message: 2006-02-15 Roman Kennke [EMAIL PROTECTED] * javax/swing/JInternalFrame.java (dispose): Call setVisible(false) instead of hide. (doDefaultCloseOperation): Likewise. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/JInternalFrame.java.diff?tr1=1.23tr2=1.24r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6403tr2=1.6404r1=textr2=text
[commit-cp] classpath javax/swing/JInternalFrame.java ./Cha...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Roman Kennke [EMAIL PROTECTED]06/02/15 17:32:31 Modified files: javax/swing: JInternalFrame.java . : ChangeLog Log message: 2006-02-15 Roman Kennke [EMAIL PROTECTED] * javax/swing/JInternalFrame.java (setClosed): Call dispose to actually make the frame invisible and unselected. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/JInternalFrame.java.diff?tr1=1.24tr2=1.25r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6404tr2=1.6405r1=textr2=text
[commit-cp] classpath ./ChangeLog native/jni/gtk-peer/gnu_j...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Mark Wielaard [EMAIL PROTECTED] 06/02/15 18:56:17 Modified files: . : ChangeLog native/jni/gtk-peer: gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c Log message: * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create): Downcast gtk_plug_new result when used. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6407tr2=1.6408r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c.diff?tr1=1.9tr2=1.10r1=textr2=text
[commit-cp] classpath ./ChangeLog java/io/ObjectInputStream...
CVSROOT:/sources/classpath Module name:classpath Branch: Changes by: Olivier Jolly [EMAIL PROTECTED] 06/02/15 18:40:34 Modified files: . : ChangeLog java/io: ObjectInputStream.java Log message: 2006-02-15 Olivier jolly [EMAIL PROTECTED] Fixes bug #14144 * java/io/ObjectInputStream.java (readClassDescriptor): Class doesn't have to be abstract for first_nonserial. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6405tr2=1.6406r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/java/io/ObjectInputStream.java.diff?tr1=1.74tr2=1.75r1=textr2=text
[commit-cp] classpath ./ChangeLog java/io/ObjectOutputStrea...
CVSROOT:/sources/classpath Module name:classpath Branch: Changes by: Olivier Jolly [EMAIL PROTECTED] 06/02/15 18:43:04 Modified files: . : ChangeLog java/io: ObjectOutputStream.java Log message: 2006-02-15 Olivier Jolly [EMAIL PROTECTED] * java/io/ObjectOutputStream.java (writeClassDescriptor): Call assignNewHandle() after writing Proxy class. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6406tr2=1.6407r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/java/io/ObjectOutputStream.java.diff?tr1=1.65tr2=1.66r1=textr2=text
[commit-cp] classpath ./ChangeLog gnu/java/awt/peer/gtk/Gtk...
CVSROOT:/sources/classpath Module name:classpath Branch: Changes by: Lillian Angel [EMAIL PROTECTED] 06/02/15 19:29:25 Modified files: . : ChangeLog gnu/java/awt/peer/gtk: GtkDialogPeer.java GtkWindowPeer.java include: gnu_java_awt_peer_gtk_GtkWindowPeer.h java/awt : Component.java native/jni/gtk-peer: gnu_java_awt_peer_gtk_GtkWindowPeer.c Log message: 2006-02-15 Lillian Angel [EMAIL PROTECTED] * gnu/java/awt/peer/gtk/GtkDialogPeer.java (setVisible): Removed method. * gnu/java/awt/peer/gtk/GtkWindowPeer.java (setLocation): New method. (setLocationUnlocked): New method. (show): Changed to use setLocation instead of setBounds. * java/awt/Component.java (show): Should call peer.show(), not peer.setVisible(), so the location of the component is correctly set. (preferredSize): Added curly braces so else statements are properly associated with if's. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation): New function. (Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSet LocationUnlocked): New function. * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Added declarations for Java_gnu_java_awt_peer_gtk_ GtkWindowPeer_nativeSetLocation and Java_gnu_java_awt_peer_gtk_GtkWindowPeer _nativeSetLocationUnlocked. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6408tr2=1.6409r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/java/awt/peer/gtk/GtkDialogPeer.java.diff?tr1=1.31tr2=1.32r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java.diff?tr1=1.45tr2=1.46r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h.diff?tr1=1.19tr2=1.20r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/java/awt/Component.java.diff?tr1=1.98tr2=1.99r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c.diff?tr1=1.63tr2=1.64r1=textr2=text
[commit-cp] classpath javax/swing/JComponent.java javax/swi...
CVSROOT:/sources/classpath Module name:classpath Branch: Changes by: Audrius Meskauskas [EMAIL PROTECTED] 06/02/15 20:29:33 Modified files: javax/swing: JComponent.java JTable.java javax/swing/plaf/basic: BasicTableHeaderUI.java . : ChangeLog Log message: 2006-02-15 Audrius Meskauskas [EMAIL PROTECTED] * javax/swing/JTable.java (distributeSpillResizing): New method. (doLayout): Use distributeSpillResizing when resizing. * javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler): Rewritten. (installListeners): Add mouse motion listener. (uninstallListeners): Remove mouse motion listener. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/JComponent.java.diff?tr1=1.101tr2=1.102r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/JTable.java.diff?tr1=1.73tr2=1.74r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java.diff?tr1=1.12tr2=1.13r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6409tr2=1.6410r1=textr2=text
[commit-cp] classpath/javax/swing JComponent.java
CVSROOT:/sources/classpath Module name:classpath Branch: Changes by: Audrius Meskauskas [EMAIL PROTECTED] 06/02/15 21:58:28 Modified files: javax/swing: JComponent.java Log message: Returning to the version 1.101. The revert to the 1.100 was introduced by chance. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/JComponent.java.diff?tr1=1.102tr2=1.103r1=textr2=text
[commit-cp] classpath javax/swing/plaf/basic/BasicTableHead...
CVSROOT:/sources/classpath Module name:classpath Branch: Changes by: Audrius Meskauskas [EMAIL PROTECTED] 06/02/15 21:48:32 Modified files: javax/swing/plaf/basic: BasicTableHeaderUI.java . : ChangeLog javax/swing: JTable.java javax/swing/table: DefaultTableModel.java Log message: 2006-02-15 Audrius Meskauskas [EMAIL PROTECTED] * javax/swing/JTable.java, javax/swing/plaf/basic/BasicTableHeaderUI.java, javax/swing/table/DefaultTableModel.java: Documented. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/plaf/basic/BasicTableHeaderUI.java.diff?tr1=1.13tr2=1.14r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6411tr2=1.6412r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/JTable.java.diff?tr1=1.74tr2=1.75r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/table/DefaultTableModel.java.diff?tr1=1.13tr2=1.14r1=textr2=text
[commit-cp] classpath ./ChangeLog gnu/java/lang/CharData.ja...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Anthony Balkissoon [EMAIL PROTECTED] 06/02/15 23:00:38 Modified files: . : ChangeLog gnu/java/lang : CharData.java java/lang : Character.java String.java scripts: unicode-muncher.pl Log message: 2006-02-15 Anthony Balkissoon [EMAIL PROTECTED] * gnu/java/lang/CharData.java: Regenerated from doc/unicode/UnicodeData-4.0.0.txt, doc/unicode/SpecialCasing-4.0.0.txt and scripts/unicode-muncher.pl. * java/lang/Character.java: (PrivateUseCharacters): New private static class. (UnassignedCharacters): Likewise. (blocks): Changed from char[] to char[][] to reflect the changes in gnu/java/lang/CharData. There is now one char[] per Unicode code plane. (data): Likewise. (numValue): Likewise. (upper): Likewise. (lower): Likewise. (direction): Likewise. (readChar): Replaced this method with new method readCodePoint. (readCodePoint): New method. (isLowerCase(char)): Redirected to new isLowerCase(int). (isLowerCase(int)): New method. (isUpperCase(char)): Redirected to new isUpperCase(int). (isUpperCase(int)): New method. (isTitleCase(char)): Redirected to new isTitleCase(int). (isTitleCase(int)): New method. (isDigit(char)): Redirected to new isDigit(int). (isDigit(int)): New method. (isDefined(char)): Redirected to new isDefined(int). (isDefined(int)): New method. (isLetter(char)): Redirected to new isLetter(int). (isLetter(int)): New method. (isLetterOrDigit(char)): Redirected to new isLetterOrDigit(int). (isLetterOrDigit(int)): New method. (isJavaIdentifierStart(char)): Redirected to new isJavaIdentifierStart(int). (isJavaIdentifierStart(int)): New method. (isJavaIdentifierPart(char)): Redirected to new isJavaIdentifierPart(int). (isJavaIdentifierPart(int)): New method. (isUnicodeIdentifierStart(char)): Redirected to new isUnicodeIdentifierStart(int). (isUnicodeIdentifierStart(int)): New method. (isUnicodeIdentifierPart(char)): Redirected to new isUnicodeIdentifierPart(int). (isUnicodeIdentifierPart(int)): New method. (isIdentifierIgnorable(char)): Redirected to new isIdentifierIgnorable(int). (isIdentifierIgnorable(int)): New method. (toLowerCase(char)): Changed access to lower to correspond with new char[][] type of lower. (toLowerCase(int)) New method. (toUpperCase(char)): Changed access to upper to correspond with new char[][] type of upper. (toUpperCase(int)): New method. (toTitleCase(int)): New method. (digit(char, int)): Replaced call to readChar with call to readCodePoint and changed access to numValue to reflect new char[][] type of numValue. (digit(int, int)): New method. (getNumericValue(char)): Changed access to numValue to reflect new char[][] type of numValue. (getNumericValue(int)): New method. (isSpaceChar(char)): Redirected to new isSpaceChar(int). (isSpaceChar(int)): New method. (isWhitespace(char)): Redirected to new isWhitespace(int). (isWhitespace(int)): New method. (isISOControl(char)): Redirected to new isISOControl(int). (isISOControl(int)): New method. (getType(char)): Redirected to new getType(int). (getType(int)): New method. (getDirectionality(char)): Redirected to new getDirectionality(int). (getDirectionality(int)): New method. (isMirrored(char)): Changed call to readChar to readCodePoint. (isMirrored(int)): New method. * java/lang/String.java: (upperCaseExpansion): Changed access to Character.direction to reflect new char[][] type of direction. (offsetByCodePoints): New method. * scripts/unicode-muncher.pl: Adapted this script to handle Unicode 4.0.0 which introduced supplementary character assignments. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6412tr2=1.6413r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/gnu/java/lang/CharData.java.diff?tr1=1.7tr2=1.8r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/java/lang/Character.java.diff?tr1=1.44tr2=1.45r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/java/lang/String.java.diff?tr1=1.80tr2=1.81r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/scripts/unicode-muncher.pl.diff?tr1=1.5tr2=1.6r1=textr2=text