PatchSet 7278 
Date: 2006/05/02 14:32:28
Author: riccardo
Branch: HEAD
Tag: (none) 
Log:
fixed Containder add() methods

Members: 
        ChangeLog:1.4782->1.4783 
        
libraries/javalib/awt-implementations/kaffe/java/awt/Component.java:1.8->1.9 
        
libraries/javalib/awt-implementations/kaffe/java/awt/Container.java:1.5->1.6 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4782 kaffe/ChangeLog:1.4783
--- kaffe/ChangeLog:1.4782      Wed Apr 26 19:22:04 2006
+++ kaffe/ChangeLog     Tue May  2 14:32:28 2006
@@ -1,3 +1,9 @@
+2006-05-02  Riccardo Mottola <[EMAIL PROTECTED]>
+
+       * libraries/javalib/awt-implementations/kaffe/java/awt/Component.java,
+       libraries/javalib/awt-implementations/kaffe/java/awt/Container.java:
+       fixed Containder add() methods.
+
 2006-04-26  Riccardo Mottola <[EMAIL PROTECTED]>
 
        * 
libraries/javalib/awt-implementations/kaffe/java/awt/LayoutManager.java,
Index: kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java
diff -u 
kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java:1.8 
kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java:1.9
--- 
kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java:1.8   
    Thu Apr 13 21:15:53 2006
+++ kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Component.java   
Tue May  2 14:32:32 2006
@@ -38,6 +38,7 @@
 import java.awt.image.ImageObserver;
 import java.awt.image.ImageProducer;
 import java.awt.peer.ComponentPeer;
+import java.awt.peer.LightweightPeer;
 import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.io.Serializable;
@@ -113,6 +114,9 @@
        final static int IS_TEMP_HIDDEN = 0x20000;
        final static int IS_SHOWING = IS_ADD_NOTIFIED | IS_PARENT_SHOWING | 
IS_VISIBLE;
        
+  /** The associated native peer. */
+  transient ComponentPeer peer;
+
  /**
    * Describes all registered PropertyChangeListeners.
    *
@@ -547,10 +551,35 @@
        return Toolkit.singleton.getScreenSize();
 }
 
-// Subclasses that guarantee to always completely paint their contents should 
override this method and return true. All of the "heavyweight" AWT components 
are opaque.
-public boolean isOpaque() {
-       return false;
-}
+  /**
+   * Tests if this component is opaque. All "heavyweight" (natively-drawn)
+   * components are opaque. A component is opaque if it draws all pixels in
+   * the bounds; a lightweight component is partially transparent if it lets
+   * pixels underneath show through. Subclasses that guarantee that all pixels
+   * will be drawn should override this.
+   *
+   * @return true if this is opaque
+   * @see #isLightweight()
+   * @since 1.2
+   */
+  public boolean isOpaque()
+  {
+    return ! isLightweight();
+  }
+
+  /**
+   * Return whether the component is lightweight. That means the component has
+   * no native peer, but is displayable. This applies to subclasses of
+   * Component not in this package, such as javax.swing.
+   *
+   * @return true if the component has a lightweight peer
+   * @see #isDisplayable()
+   * @since 1.2
+   */
+  public boolean isLightweight()
+  {
+    return peer instanceof LightweightPeer;
+  }
 
 public Dimension getMinimumSize() {
        return minimumSize();
Index: kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java
diff -u 
kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java:1.5 
kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java:1.6
--- 
kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java:1.5   
    Tue Apr 25 22:33:30 2006
+++ kaffe/libraries/javalib/awt-implementations/kaffe/java/awt/Container.java   
Tue May  2 14:32:32 2006
@@ -35,41 +35,113 @@
   Component[] component;
   LayoutManager layoutMgr;
   
-       ContainerListener cntrListener;
-       Insets insets = Insets.noInsets;
+  /* Anything else is non-serializable, and should be declared "transient". */
+  transient ContainerListener containerListener;
+  
+  // ContainerListener cntrListener;
+  Insets insets = Insets.noInsets;
 
 protected Container () {
 }
 
-public Component add (Component child) {
-       add(child, null, -1);
-       return (child);
-}
+  /**
+   * Adds the specified component to this container at the end of the
+   * component list.
+   *
+   * @param comp The component to add to the container.
+   *
+   * @return The same component that was added.
+   */
+  public Component add(Component comp)
+  {
+    addImpl(comp, null, -1);
+    return comp;
+  }
+  
+    /**
+   * Adds the specified component to the container at the end of the
+   * component list.  This method should not be used. Instead, use
+   * <code>add(Component, Object)</code>.
+   *
+   * @param name The name of the component to be added.
+   * @param comp The component to be added.
+   *
+   * @return The same component that was added.
+   *
+   * @see #add(Component,Object)
+   */
+  public Component add(String name, Component comp)
+  {
+    addImpl(comp, name, -1);
+    return comp;
+  }
 
-public void add(Component child, Object constraints) {
-       // seems to be mapped to add(Component,Object,int) - since this is 
public
-       // (and can be redefined) we have to do the same <sigh>
-       add(child, constraints, -1);
-}
 
-public void add(Component child, Object constraints, int index) {
-       addImpl(child, constraints, index);
-}
+  /**
+   * Adds the specified component to this container at the end of the
+   * component list.  The layout manager will use the specified constraints
+   * when laying out this component.
+   *
+   * @param comp The component to be added to this container.
+   * @param constraints The layout constraints for this component.
+   */
+  public void add(Component comp, Object constraints)
+  {
+    addImpl(comp, constraints, -1);
+  }
+  
+  /**
+   * Adds the specified component to this container at the specified index
+   * in the component list.  The layout manager will use the specified
+   * constraints when layout out this component.
+   *
+   * @param comp The component to be added.
+   * @param constraints The layout constraints for this component.
+   * @param index The index in the component list to insert this child
+   * at, or -1 to add at the end of the list.
+   *
+   * @throws ArrayIndexOutOfBoundsException If the specified index is invalid.
+   */
+  public void add(Component comp, Object constraints, int index)
+  {
+    addImpl(comp, constraints, index);
+  }
+
+  /**
+   * Adds the specified component to this container at the specified index
+   * in the component list.
+   *
+   * @param comp The component to be added.
+   * @param index The index in the component list to insert this child
+   * at, or -1 to add at the end of the list.
+   *
+   * @return The same component that was added.
+   *
+   * @throws ArrayIndexOutOfBoundsException If the specified index is invalid.
+   */
+  public Component add(Component comp, int index)
+  {
+    addImpl(comp, null, index);
+    return comp;
+  }
 
-public Component add(Component child, int index) {
-       add(child, null, index);
-       return (child);
-}
 
-public Component add(String name, Component child) {
-       add(child, name, -1);
-       return (child);
-}
 
 public void addContainerListener ( ContainerListener newListener ) {
-       cntrListener = AWTEventMulticaster.add( cntrListener, newListener);
+       containerListener = AWTEventMulticaster.add( containerListener, 
newListener);
 }
 
+  /**
+   * @since 1.4
+   */
+  public synchronized ContainerListener[] getContainerListeners()
+  {
+    return (ContainerListener[])
+      AWTEventMulticaster.getListeners(containerListener,
+                                       ContainerListener.class);
+  }
+
+
 protected void addImpl(Component child, Object constraints, int index ) {
 
        synchronized ( treeLock ) {
@@ -149,7 +221,7 @@
                        }
                }
        
-               if ( (cntrListener != null) || (eventMask & 
AWTEvent.CONTAINER_EVENT_MASK) != 0 ){
+               if ( (containerListener != null) || (eventMask & 
AWTEvent.CONTAINER_EVENT_MASK) != 0 ){
                        AWTEvent.sendEvent( ContainerEvt.getEvent( this,
                                               ContainerEvent.COMPONENT_ADDED, 
child), false);
                }
@@ -612,18 +684,18 @@
 }
 
 void process ( ContainerEvent e ) {
-       if ( (cntrListener != null) || (eventMask & 
AWTEvent.CONTAINER_EVENT_MASK) != 0)
+       if ( (containerListener != null) || (eventMask & 
AWTEvent.CONTAINER_EVENT_MASK) != 0)
                processEvent( e);
 }
 
 public void processContainerEvent ( ContainerEvent event ) {
-       if ( cntrListener != null ) {
+       if ( containerListener != null ) {
                switch ( event.getID() ) {
                case ContainerEvent.COMPONENT_ADDED:
-                       cntrListener.componentAdded( event);
+                       containerListener.componentAdded( event);
                        break;
                case ContainerEvent.COMPONENT_REMOVED:
-                       cntrListener.componentRemoved( event);
+                       containerListener.componentRemoved( event);
                        break;
                }
        }
@@ -760,7 +832,7 @@
                component[n] = null;
                ncomponents--;
 
-               if ( (cntrListener != null) || (eventMask & 
AWTEvent.CONTAINER_EVENT_MASK) != 0 ){
+               if ( (containerListener != null) || (eventMask & 
AWTEvent.CONTAINER_EVENT_MASK) != 0 ){
                        AWTEvent.sendEvent( ContainerEvt.getEvent( this,
                                               
ContainerEvent.COMPONENT_REMOVED, c), false);
                }
@@ -800,7 +872,7 @@
 }
 
 public void removeContainerListener ( ContainerListener listener ) {
-       cntrListener = AWTEventMulticaster.remove( cntrListener, listener);
+       containerListener = AWTEventMulticaster.remove( containerListener, 
listener);
 }
 
 public void removeNotify() {

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to