From 055bf0ac1ab7d9eddd813db2c52b6daef392bd61 Mon Sep 17 00:00:00 2001 From: tromey Date: Sun, 30 Jul 2000 23:19:57 +0000 Subject: * java/awt/Container.java (remove(int)): Wrote. (remove(Component)): Wrote. (add(Component)): Wrote. (add(Component,int)): Wrote. (removeAll): Wrote. (addNotify): Set our own peer. * java/awt/Scrollbar.java (listeners): Changed type. (Scrollbar): Don't initialize listeners. (addNotify): Wrote. (setValue): Call setValues. (setMinimum): Likewise. (setMaxPriority): Likewise. (setVisibleAmount): Likewise. (setValues): Wrote. (setUnitIncrement): Forward to peer. (setLineIncrement): Call setUnitIncrement. (setPageIncrement): Call setBlockIncrement. (setBlockIncrement): Forward to peer. (addAdjustmentListener): Rewrote. (removeAdjustmentListener): Rewrote. (processAdjustmentEvent): Rewrote. (paramString): Wrote. * Makefile.in: Rebuilt. * Makefile.am (awt_java_source_files): Added Button.java. * java/awt/Button.java: New file. * java/awt/Toolkit.java (createLabel): Declare. (createButton): Likewise. (createScrollbar): Likewise. (createContainer): Likewise. * java/awt/Label.java (addNotify): Wrote. (setAlignment): Call setAlignment in the peer. (setText): Call setText in the peer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35354 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/awt/Container.java | 51 ++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 11 deletions(-) (limited to 'libjava/java/awt/Container.java') diff --git a/libjava/java/awt/Container.java b/libjava/java/awt/Container.java index 84840246b75..81a367b4199 100644 --- a/libjava/java/awt/Container.java +++ b/libjava/java/awt/Container.java @@ -12,6 +12,8 @@ import java.awt.event.*; import java.io.PrintStream; import java.io.PrintWriter; import java.util.EventListener; +import java.awt.peer.ComponentPeer; +import java.awt.peer.ContainerPeer; /* A very incomplete placeholder. */ @@ -70,10 +72,9 @@ public abstract class Container extends Component return getInsets(); } - public Component add(Component comp) + public Component add (Component comp) { - // FIXME - return null; + return add (comp, -1); } public Component add(String name, Component comp) @@ -84,8 +85,27 @@ public abstract class Container extends Component public Component add(Component comp, int index) { - // FIXME - return null; + // This isn't the most efficient implementation. We could do less + // copying when growing the array. It probably doesn't matter. + if (ncomponents >= component.length) + { + int nl = component.length * 2; + Component[] c = new Component[nl]; + System.arraycopy (component, 0, c, 0, ncomponents); + component = c; + } + + if (index == -1) + component[ncomponents++] = comp; + else + { + System.arraycopy (component, index, component, index + 1, + ncomponents - index); + component[index] = comp; + ++ncomponents; + } + + return comp; } public void add(Component comp, Object constraints) @@ -103,19 +123,27 @@ public abstract class Container extends Component // FIXME } - public void remove(int index) + public void remove (int index) { - // FIXME + System.arraycopy (component, index + 1, component, index, + ncomponents - index - 1); + component[--ncomponents] = null; } - public void remove(Component comp) + public void remove (Component comp) { - // FIXME + for (int i = 0; i < ncomponents; ++i) + if (component[i] == comp) + { + remove (i); + break; + } } public void removeAll() { - // FIXME + while (ncomponents >= 0) + component[--ncomponents] = null; } public LayoutManager getLayout() @@ -317,7 +345,8 @@ public abstract class Container extends Component { for (int i = ncomponents; --i >= 0; ) component[i].addNotify(); - } + peer = (ComponentPeer) getToolkit ().createContainer (this); + } public void removeNotify() { -- cgit v1.2.3