OSDN Git Service

Imported GNU Classpath 0.90
[pf3gnuchains/gcc-fork.git] / libjava / classpath / java / awt / Window.java
index 71a8d38..d9e90c0 100644 (file)
@@ -1,5 +1,5 @@
 /* Window.java --
-   Copyright (C) 1999, 2000, 2002, 2003, 2004  Free Software Foundation
+   Copyright (C) 1999, 2000, 2002, 2003, 2004, 2006  Free Software Foundation
 
 This file is part of GNU Classpath.
 
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt;
 
+import gnu.classpath.NotImplementedException;
+
 import java.awt.event.ComponentEvent;
 import java.awt.event.FocusEvent;
 import java.awt.event.WindowAdapter;
@@ -620,10 +622,25 @@ public class Window extends Container implements Accessible
            || windowStateListener != null
            || (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0))
       processEvent(e);
-    else if (e.id == ComponentEvent.COMPONENT_RESIZED)
-      validate ();
-    else
-      super.dispatchEventImpl(e);
+    else 
+      {
+       if (peer != null && (e.id == ComponentEvent.COMPONENT_RESIZED
+           || e.id == ComponentEvent.COMPONENT_MOVED))
+            {
+           Rectangle bounds = peer.getBounds();
+           x = bounds.x;
+           y = bounds.y;
+           height = bounds.height;
+           width = bounds.width;
+           
+           if (e.id == ComponentEvent.COMPONENT_RESIZED)
+             {
+               invalidate();
+               validate();
+             }
+         }
+       super.dispatchEventImpl(e);
+      }
   }
 
   /**
@@ -1032,6 +1049,7 @@ public class Window extends Container implements Accessible
    * @deprecated
    */
   public void applyResourceBundle(ResourceBundle rb)
+    throws NotImplementedException
   {
     throw new Error ("Not implemented");
   }
@@ -1143,6 +1161,47 @@ public class Window extends Container implements Accessible
   {
     this.focusableWindowState = focusableWindowState;
   }
+  
+  /**
+   * Check whether this Container is a focus cycle root.
+   * Returns always <code>true</code> as Windows are the 
+   * root of the focus cycle.
+   *
+   * @return Always <code>true</code>.
+   *
+   * @since 1.4
+   */
+  public final boolean isFocusCycleRoot()
+  {
+    return true;
+  }
+
+  /**
+   * Set whether or not this Container is the root of a focus
+   * traversal cycle. Windows are the root of the focus cycle
+   * and therefore this method does nothing.
+   * 
+   * @param focusCycleRoot ignored.
+   *
+   * @since 1.4
+   */
+  public final void setFocusCycleRoot(boolean focusCycleRoot)
+  {
+    // calls to the method are ignored
+  }
+
+  /**
+   * Returns the root container that owns the focus cycle where this
+   * component resides. Windows have no ancestors and this method
+   * returns always <code>null</code>.
+   *
+   * @return Always <code>null</code>.
+   * @since 1.4
+   */
+  public final Container getFocusCycleRootAncestor()
+  {
+    return null;
+  }
 
   /**
    * Generate a unique name for this window.