PatchSet 7121 Date: 2006/02/08 11:58:01 Author: riccardo Branch: HEAD Tag: (none) Log: implemented dtubs by adapting classpath code
Members: ChangeLog:1.4639->1.4640 libraries/javalib/awt-implementations/kaffe/java/awt/Component.java:1.6->1.7 libraries/javalib/awt-implementations/kaffe/java/awt/Container.java:1.2->1.3 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.4639 kaffe/ChangeLog:1.4640 --- kaffe/ChangeLog:1.4639 Wed Feb 8 02:05:52 2006 +++ kaffe/ChangeLog Wed Feb 8 11:58:01 2006 @@ -1,3 +1,8 @@ +2006-02-08 Riccardo Mottola <[EMAIL PROTECTED]> + + libraries/javalib/awt-implementations/kaffe/java/awt/Container.java: + Implemented stubs by adapting classpath methods. + 2006-02-08 Dalibor Topic <[EMAIL PROTECTED]> * THIRPARTY: Removed jzlib and jessie. No longer needed since Index: kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java diff -u kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java:1.6 kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java:1.7 --- kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java:1.6 Tue Feb 7 00:18:36 2006 +++ kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java Wed Feb 8 11:58:04 2006 @@ -1,3 +1,19 @@ +/** + * Component - abstract root of all widgets + * + * Copyright (c) 1998 + * Transvirtual Technologies, Inc. All rights reserved. + * Copyright (c) 2006 + * Kaffe.org developers. See ChangeLog for details. + * + * See the file "license.terms" for information on usage and redistribution + * of this file. + * + * original code P.C.Mehlitz + * some code taken or adapted from Classpath + */ + + package java.awt; import gnu.classpath.Pointer; @@ -30,17 +46,9 @@ import org.kaffe.awt.DoNothingPeer; -/** - * Component - abstract root of all widgets - * - * Copyright (c) 1998 - * Transvirtual Technologies, Inc. All rights reserved. - * - * See the file "license.terms" for information on usage and redistribution - * of this file. - * - * @author P.C.Mehlitz - */ + + + abstract public class Component extends Object implements ImageObserver, MenuContainer, Serializable Index: kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java diff -u kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java:1.2 kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java:1.3 --- kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java:1.2 Tue Feb 7 00:18:37 2006 +++ kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java Wed Feb 8 11:58:04 2006 @@ -1,22 +1,27 @@ -package java.awt; - -import java.awt.event.ContainerEvent; -import java.awt.event.ContainerListener; -import java.awt.event.PaintEvent; -import java.io.PrintStream; -import java.io.PrintWriter; - /** * Container - abstract base for all Components capable of having children * * Copyright (c) 1998 * Transvirtual Technologies, Inc. All rights reserved. + * Copyright (c) 2006 + * Kaffe.org developers. See ChangeLog for details. * * See the file "license.terms" for information on usage and redistribution * of this file. * - * @author P.C.Mehlitz + * original code P.C.Mehlitz + * some code taken or adapted from Classpath */ + +package java.awt; + +import java.awt.event.ContainerEvent; +import java.awt.event.ContainerListener; +import java.awt.event.PaintEvent; +import java.io.PrintStream; +import java.io.PrintWriter; + + abstract public class Container extends Component { @@ -761,12 +766,92 @@ children[i].validate(); } -/* TODO this is only a stub */ -public final void setComponentZOrder(Component comp, int index) { -} -/* TODO this is only a stub */ -public final int getComponentZOrder(Component comp) { - return 0; -} + + /** + * Sets the Z ordering for the component <code>comp</code> to + * <code>index</code>. Components with lower Z order paint above components + * with higher Z order. + * + * @param comp the component for which to change the Z ordering + * @param index the index to set + * + * @throws NullPointerException if <code>comp == null</code> + * @throws IllegalArgumentException if comp is an ancestor of this container + * @throws IllegalArgumentException if <code>index</code> is not in + * <code>[0, getComponentCount()]</code> for moving between + * containers or <code>[0, getComponentCount() - 1]</code> for moving + * inside this container + * @throws IllegalArgumentException if <code>comp == this</code> + * @throws IllegalArgumentException if <code>comp</code> is a + * <code>Window</code> + * + * @see #getComponentZOrder(Component) + * + * @since 1.5 + */ + public final void setComponentZOrder(Component comp, int index) + { + if (comp == null) + throw new NullPointerException("comp must not be null"); + if (comp instanceof Container && ((Container) comp).isAncestorOf(this)) + throw new IllegalArgumentException("comp must not be an ancestor of " + + "this"); + if (comp instanceof Window) + throw new IllegalArgumentException("comp must not be a Window"); + + if (comp == this) + throw new IllegalArgumentException("cannot add component to itself"); + + // FIXME: Implement reparenting. + if ( comp.getParent() != this) + throw new AssertionError("Reparenting is not implemented yet"); + else + { + // Find current component index. + int currentIndex = getComponentZOrder(comp); + if (currentIndex < index) + { + System.arraycopy(children, currentIndex + 1, children, + currentIndex, index - currentIndex); + } + else + { + System.arraycopy(children, index, children, index + 1, + currentIndex - index); + } + children[index] = comp; + } + } + + /** + * Returns the Z ordering index of <code>comp</code>. If <code>comp</code> + * is not a child component of this Container, this returns <code>-1</code>. + * + * @param comp the component for which to query the Z ordering + * + * @return the Z ordering index of <code>comp</code> or <code>-1</code> if + * <code>comp</code> is not a child of this Container + * + * @see #setComponentZOrder(Component, int) + * + * @since 1.5 + */ + public final int getComponentZOrder(Component comp) + { + int index = -1; + if (children != null) + { + for (int i = 0; i < children.length; i++) + { + if (children[i] == comp) + { + index = i; + break; + } + } + } + return index; + } + } _______________________________________________ kaffe mailing list kaffe@kaffe.org http://kaffe.org/cgi-bin/mailman/listinfo/kaffe