This is the mail archive of the java-patches@sources.redhat.com mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Patch: AWT tidbits


Here's tonight's round of AWT code. I've moved java/beans and
java/applet into awt_java_source_files in the Makefile because it makes
it easy to build a libgcj without awt classes and work on them
separately (there are no cross dependencies outside these packages). It
shouldn't make any difference for regular builds.

I'm goign to check these in.

regards

  [ bryce ]


2000-08-09  Bryce McKinlay  <bryce@albatross.co.nz>

	* Makefile.am: Move beans and applet classes to awt_java_source_files.
	* Makefile.in: Rebuilt.
	* java/awt/Color.java (getTransparency): New method.
	* java/awt/Component.java: Various updates.
	* java/awt/Container.java (removeNotify): Call super.removeNotify()
	after dealing with children.
	* java/awt/Toolkit.java (changeSupport): Renamed from pcsupport.
	* java/awt/Window.java: Various new methods and updates.
	* java/awt/color/ICC_Profile.java (getNumComponents): Cast profileID
	to int for switch.
	* java/awt/event/KeyEvent.java (paramString): Initialize `r'.
	* java/awt/event/WindowEvent.java (paramString): Ditto.
	* java/awt/geom/Dimension2D.java (clone): Wrap super call with
	try/catch block.
	* java/awt/geom/Point2D.java (clone): Ditto.
	* java/awt/geom/RectangularShape.java (clone): Ditto.
	* java/awt/image/ColorModel.java (bits, cspace, transparency, hasAlpha,
	isAlphaPremultiplied): Make package-private, not private.

Index: Makefile.am
===================================================================
RCS file: /cvs/java/libgcj/libjava/Makefile.am,v
retrieving revision 1.77
diff -u -r1.77 Makefile.am
--- Makefile.am	2000/08/03 17:56:02	1.77
+++ Makefile.am	2000/08/09 12:46:14
@@ -487,8 +487,27 @@
 special_java_source_files = java/lang/Class.java java/lang/Object.java
 
 awt_java_source_files =	\
+gnu/java/beans/editors/ColorEditor.java	\
+gnu/java/beans/editors/FontEditor.java \
+gnu/java/beans/editors/NativeBooleanEditor.java	\
+gnu/java/beans/editors/NativeByteEditor.java \
+gnu/java/beans/editors/NativeDoubleEditor.java \
+gnu/java/beans/editors/NativeFloatEditor.java \
+gnu/java/beans/editors/NativeIntEditor.java \
+gnu/java/beans/editors/NativeLongEditor.java \
+gnu/java/beans/editors/NativeShortEditor.java \
+gnu/java/beans/editors/StringEditor.java \
+gnu/java/beans/info/ComponentBeanInfo.java \
+gnu/java/beans/BeanInfoEmbryo.java \
+gnu/java/beans/EmptyBeanInfo.java \
+gnu/java/beans/ExplicitBeanInfo.java \
+gnu/java/beans/IntrospectionIncubator.java \
 gnu/gcj/awt/BitMaskExtent.java \
 gnu/gcj/awt/Buffers.java \
+java/applet/Applet.java \
+java/applet/AppletStub.java \
+java/applet/AppletContext.java \
+java/applet/AudioClip.java \
 java/awt/AWTError.java \
 java/awt/AWTEvent.java \
 java/awt/AWTEventMulticaster.java \
@@ -640,7 +659,47 @@
 java/awt/peer/TextAreaPeer.java	\
 java/awt/peer/TextComponentPeer.java \
 java/awt/peer/TextFieldPeer.java \
-java/awt/peer/WindowPeer.java
+java/awt/peer/WindowPeer.java \
+java/beans/beancontext/BeanContext.java	\
+java/beans/beancontext/BeanContextChild.java \
+java/beans/beancontext/BeanContextChildComponentProxy.java \
+java/beans/beancontext/BeanContextChildSupport.java \
+java/beans/beancontext/BeanContextContainerProxy.java \
+java/beans/beancontext/BeanContextEvent.java \
+java/beans/beancontext/BeanContextMembershipEvent.java \
+java/beans/beancontext/BeanContextMembershipListener.java \
+java/beans/beancontext/BeanContextProxy.java \
+java/beans/beancontext/BeanContextServiceAvailableEvent.java \
+java/beans/beancontext/BeanContextServiceProvider.java \
+java/beans/beancontext/BeanContextServiceProviderBeanInfo.java \
+java/beans/beancontext/BeanContextServiceRevokedEvent.java \
+java/beans/beancontext/BeanContextServiceRevokedListener.java \
+java/beans/beancontext/BeanContextServices.java	\
+java/beans/beancontext/BeanContextServicesListener.java	\
+java/beans/BeanDescriptor.java \
+java/beans/BeanInfo.java \
+java/beans/Beans.java \
+java/beans/Customizer.java \
+java/beans/DesignMode.java \
+java/beans/EventSetDescriptor.java \
+java/beans/FeatureDescriptor.java \
+java/beans/IndexedPropertyDescriptor.java \
+java/beans/IntrospectionException.java \
+java/beans/Introspector.java \
+java/beans/MethodDescriptor.java \
+java/beans/ParameterDescriptor.java \
+java/beans/PropertyChangeEvent.java \
+java/beans/PropertyChangeListener.java \
+java/beans/PropertyChangeSupport.java \
+java/beans/PropertyDescriptor.java \
+java/beans/PropertyEditor.java \
+java/beans/PropertyEditorManager.java \
+java/beans/PropertyEditorSupport.java \
+java/beans/PropertyVetoException.java \
+java/beans/SimpleBeanInfo.java \
+java/beans/VetoableChangeListener.java \
+java/beans/VetoableChangeSupport.java \
+java/beans/Visibility.java
 
 ## Java files which are created by configure and thus are in the build
 ## directory.
@@ -675,21 +734,6 @@
 gnu/gcj/io/DefaultMimeTypes.java \
 gnu/gcj/io/MimeTypes.java \
 gnu/gcj/io/SimpleSHSStream.java	\
-gnu/java/beans/editors/ColorEditor.java	\
-gnu/java/beans/editors/FontEditor.java \
-gnu/java/beans/editors/NativeBooleanEditor.java	\
-gnu/java/beans/editors/NativeByteEditor.java \
-gnu/java/beans/editors/NativeDoubleEditor.java \
-gnu/java/beans/editors/NativeFloatEditor.java \
-gnu/java/beans/editors/NativeIntEditor.java \
-gnu/java/beans/editors/NativeLongEditor.java \
-gnu/java/beans/editors/NativeShortEditor.java \
-gnu/java/beans/editors/StringEditor.java \
-gnu/java/beans/info/ComponentBeanInfo.java \
-gnu/java/beans/BeanInfoEmbryo.java \
-gnu/java/beans/EmptyBeanInfo.java \
-gnu/java/beans/ExplicitBeanInfo.java \
-gnu/java/beans/IntrospectionIncubator.java \
 gnu/java/io/ClassLoaderObjectInputStream.java \
 gnu/java/io/NullOutputStream.java \
 gnu/java/io/ObjectIdentityWrapper.java \
@@ -699,10 +743,6 @@
 gnu/java/security/provider/Gnu.java \
 gnu/java/security/provider/SHA.java \
 gnu/java/security/provider/SHA1PRNG.java \
-java/applet/Applet.java \
-java/applet/AppletStub.java \
-java/applet/AppletContext.java \
-java/applet/AudioClip.java \
 java/io/BufferedInputStream.java \
 java/io/BufferedOutputStream.java \
 java/io/BufferedReader.java \
@@ -1022,47 +1062,7 @@
 java/sql/Statement.java	\
 java/sql/Time.java \
 java/sql/Timestamp.java	\
-java/sql/Types.java \
-java/beans/beancontext/BeanContext.java	\
-java/beans/beancontext/BeanContextChild.java \
-java/beans/beancontext/BeanContextChildComponentProxy.java \
-java/beans/beancontext/BeanContextChildSupport.java \
-java/beans/beancontext/BeanContextContainerProxy.java \
-java/beans/beancontext/BeanContextEvent.java \
-java/beans/beancontext/BeanContextMembershipEvent.java \
-java/beans/beancontext/BeanContextMembershipListener.java \
-java/beans/beancontext/BeanContextProxy.java \
-java/beans/beancontext/BeanContextServiceAvailableEvent.java \
-java/beans/beancontext/BeanContextServiceProvider.java \
-java/beans/beancontext/BeanContextServiceProviderBeanInfo.java \
-java/beans/beancontext/BeanContextServiceRevokedEvent.java \
-java/beans/beancontext/BeanContextServiceRevokedListener.java \
-java/beans/beancontext/BeanContextServices.java	\
-java/beans/beancontext/BeanContextServicesListener.java	\
-java/beans/BeanDescriptor.java \
-java/beans/BeanInfo.java \
-java/beans/Beans.java \
-java/beans/Customizer.java \
-java/beans/DesignMode.java \
-java/beans/EventSetDescriptor.java \
-java/beans/FeatureDescriptor.java \
-java/beans/IndexedPropertyDescriptor.java \
-java/beans/IntrospectionException.java \
-java/beans/Introspector.java \
-java/beans/MethodDescriptor.java \
-java/beans/ParameterDescriptor.java \
-java/beans/PropertyChangeEvent.java \
-java/beans/PropertyChangeListener.java \
-java/beans/PropertyChangeSupport.java \
-java/beans/PropertyDescriptor.java \
-java/beans/PropertyEditor.java \
-java/beans/PropertyEditorManager.java \
-java/beans/PropertyEditorSupport.java \
-java/beans/PropertyVetoException.java \
-java/beans/SimpleBeanInfo.java \
-java/beans/VetoableChangeListener.java \
-java/beans/VetoableChangeSupport.java \
-java/beans/Visibility.java
+java/sql/Types.java
 
 java_source_files = $(ordinary_java_source_files) $(special_java_source_files)
 
Index: java/awt/Color.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/Color.java,v
retrieving revision 1.3
diff -u -r1.3 Color.java
--- Color.java	2000/03/19 12:20:12	1.3
+++ Color.java	2000/08/09 12:46:14
@@ -87,4 +87,12 @@
   {
     return rgba;
   }
+  
+  public int getTransparency()
+  {
+    if (getAlpha() == 0xFF)
+      return Transparency.OPAQUE;
+    else
+      return Transparency.TRANSLUCENT;
+  }
 }
Index: java/awt/Component.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/Component.java,v
retrieving revision 1.10
diff -u -r1.10 Component.java
--- Component.java	2000/08/03 12:09:38	1.10
+++ Component.java	2000/08/09 12:46:14
@@ -21,12 +21,15 @@
 import java.beans.PropertyChangeListener;
 // import javax.accessibility.AccessibleContext;
 
-/* Status: Incomplete. The event dispatch mechanism is implemented. All 
-   other methods defined in the J2SE 1.3 API javadoc exist, but are mostly 
-   incomplete or only stubs; except for methods relating to the Drag and Drop, 
-   Input Method, and Accessibility frameworks: These methods are present but 
-   commented out. */
-
+/**
+  * The root of all evil.
+  *
+  * Status: Incomplete. The event dispatch mechanism is implemented. All 
+  * other methods defined in the J2SE 1.3 API javadoc exist, but are mostly 
+  * incomplete or only stubs; except for methods relating to the Drag and Drop, 
+  * Input Method, and Accessibility frameworks: These methods are present but 
+  * commented out.
+  */
 public abstract class Component implements ImageObserver, MenuContainer, 
 					   java.io.Serializable
 {
@@ -38,11 +41,11 @@
 			    RIGHT_ALIGNMENT  = 1.0f,
 			    TOP_ALIGNMENT    = 0.0f;
 
-    /* Make the treelock a String so that it can easily be identified
-       in debug dumps. We clone the String in order to avoid a conflict in 
-       the unlikely event that some other package uses exactly the same string
-       as a lock object. */
-    static Object treeLock = new String("AWT_TREE_LOCK");
+  /* Make the treelock a String so that it can easily be identified
+     in debug dumps. We clone the String in order to avoid a conflict in 
+     the unlikely event that some other package uses exactly the same string
+     as a lock object. */
+  static Object treeLock = new String("AWT_TREE_LOCK");
 
   /* Serialized fields from the serialization spec. */
   // FIXME: Default values?
@@ -140,7 +143,8 @@
   /** @since 1.3 */
   public GraphicsConfiguration getGraphicsConfiguration()
   {
-    // FIXME
+    if (parent != null)
+      return parent.getGraphicsConfiguration();
     return null;
   }
 
@@ -166,8 +170,7 @@
   /** @since 1.2 */
   public boolean isDisplayable()
   {
-    // FIXME
-    return false;
+    return (peer != null);
   }
   
   public boolean isVisible()
@@ -225,28 +228,38 @@
     // FIXME
   }
   
+  /** @specnote  Inspection by subclassing shows that Sun's implementation
+                 calls show(boolean) which then calls show() or hide(). It is
+		 the show() method that is overriden in subclasses like Window.
+		 We do the same to preserve compatibility for subclasses. */
   public void setVisible(boolean b)
   {
-    visible = true;
-    // FIXME
+    show (b);
   }
   
   /** @deprecated */
   public void show()
   {
-    setVisible(true);
+    if (peer != null)
+      peer.setVisible(true);
+    this.visible = true;
   }
   
   /** @deprecated */
   public void show(boolean b)
   {
-    setVisible(b);
+    if (b)
+      show();
+    else
+      hide();
   }
   
   /** @deprecated */
   public void hide()
   {
-    setVisible(false);
+    if (peer != null)
+      peer.setVisible(false);
+    this.visible = false;
   }
   
   public Color getForeground()
@@ -256,6 +269,8 @@
   
   public void setForeground(Color c)
   {
+    if (peer != null)
+      peer.setForeground(c);
     this.foreground = c;
   }
   
@@ -266,6 +281,8 @@
   
   public void setBackground(Color c)
   {
+    if (peer != null)
+      peer.setBackground(c);
     this.background = c;
   }
   
@@ -276,6 +293,8 @@
   
   public void setFont(Font f)
   {
+    if (peer != null)
+      peer.setFont(f);
     this.font = f;
   }
 
@@ -633,7 +652,7 @@
   public int checkImage(Image image, ImageObserver observer)
   {
     // FIXME
-    return false;
+    return 0;
   }
   
   public int checkImage(Image image, int width, int height, ImageObserver observer)
@@ -699,41 +718,6 @@
   {
     dispatchEventImpl(e);
   }
-  /* This code needs to be split up and put in to dispatchEventImpl() in the
-     appropriate Component subclasses:
-   
-    else if ((e.id <= WindowEvent.WINDOW_LAST
-             && e.id >= WindowEvent.WINDOW_FIRST)
-	&& (windowListener != null
-	    || eventMask & AWTEvent.WINDOW_EVENT_MASK != 0))
-      processEvent(e);
-    else if ((e.id <= AdjustmentEvent.ADJUSTMENT_LAST
-             && e.id >= AdjustmentEvent.ADJUSTMENT_FIRST)
-	&& (adjustmentListener != null
-	    || eventMask & AWTEvent.ADJUSTMENT_EVENT_MASK != 0))
-      processEvent(e);
-    else if ((e.id <= ItemEvent.ITEM_LAST
-             && e.id >= ItemEvent.ITEM_FIRST)
-	&& (itemListener != null
-	    || eventMask & AWTEvent.ITEM_EVENT_MASK != 0))
-      processEvent(e);
-    else if ((e.id <= PaintEvent.PAINT_LAST
-             && e.id >= PaintEvent.PAINT_FIRST)
-	&& (paintListener != null
-	    || eventMask & AWTEvent.PAINT_EVENT_MASK != 0))
-      processEvent(e);
-    else if ((e.id <= TextEvent.TEXT_LAST
-             && e.id >= TextEvent.TEXT_FIRST)
-	&& (textListener != null
-	    || eventMask & AWTEvent.TEXT_EVENT_MASK != 0))
-      processEvent(e);
-    else if ((e.id <= InvocationEvent.INVOCATION_LAST
-             && e.id >= InvocationEvent.INVOCATION_FIRST)
-	&& (invocationListener != null
-	    || eventMask & AWTEvent.INVOCATION_EVENT_MASK != 0))
-      processEvent(e);
-  }
-  */      
   
   void dispatchEventImpl(AWTEvent e)
   {
@@ -1218,12 +1202,16 @@
 
   public void addNotify()
   {
-    // FIXME
+    if (peer == null)
+      peer = getToolkit().createComponent(this);
   }
   
   public void removeNotify()
-  {
-    // FIXME
+  {    
+    if (peer != null)
+      peer.dispose();
+    peer = null;
+    visible = false;
   }
   
   /** @deprecated */
@@ -1312,26 +1300,37 @@
   
   public void addPropertyChangeListener(PropertyChangeListener listener)
   {
-
+    if (changeSupport == null)
+      changeSupport = new PropertyChangeSupport(this);
+    changeSupport.addPropertyChangeListener(listener);
   }
   
   public void removePropertyChangeListener(PropertyChangeListener listener)
   {
+    if (changeSupport != null)
+      changeSupport.removePropertyChangeListener(listener);         
   }
   
   public void addPropertyChangeListener(String propertyName,
                                 	PropertyChangeListener listener)
   {
+    if (changeSupport == null)
+      changeSupport = new PropertyChangeSupport(this);
+    changeSupport.addPropertyChangeListener(propertyName, listener);  
   }
   
   public void removePropertyChangeListener(String propertyName,
                                            PropertyChangeListener listener)
   {
+    if (changeSupport != null)
+      changeSupport.removePropertyChangeListener(propertyName, listener);
   }
   
   protected void firePropertyChange(String propertyName, Object oldValue, 
                                     Object newValue)
   {
+    if (changeSupport != null)
+      changeSupport.firePropertyChange(propertyName, oldValue, newValue);    
   }
   
   public void setComponentOrientation(ComponentOrientation o)
Index: java/awt/ComponentOrientation.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/ComponentOrientation.java,v
retrieving revision 1.1
diff -u -r1.1 ComponentOrientation.java
--- ComponentOrientation.java	2000/07/12 03:32:06	1.1
+++ ComponentOrientation.java	2000/08/09 12:46:14
@@ -15,6 +15,10 @@
 
 public class ComponentOrientation implements java.io.Serializable
 {
+  // Here is a wild guess.
+  private static int HORIZONTAL_ID    = 1 << 0,
+                     LEFT_TO_RIGHT_ID = 1 << 1;
+
   public static final ComponentOrientation LEFT_TO_RIGHT
     = new ComponentOrientation(HORIZONTAL_ID & LEFT_TO_RIGHT_ID);
   public static final ComponentOrientation RIGHT_TO_LEFT
@@ -26,10 +30,6 @@
   // correct values?
   int orientation;
   
-  // Here is a wild guess.
-  private static int HORIZONTAL_ID    = 1 << 0,
-                     LEFT_TO_RIGHT_ID = 1 << 1;
-
   ComponentOrientation(int orientation)
   {
     this.orientation = orientation;
Index: java/awt/Container.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/Container.java,v
retrieving revision 1.7
diff -u -r1.7 Container.java
--- Container.java	2000/07/31 04:11:49	1.7
+++ Container.java	2000/08/09 12:46:14
@@ -433,7 +433,7 @@
   {
     for (int i = 0; i < ncomponents; ++i)
       component[i].removeNotify ();
-    // FIXME: remove our peer.
+    super.removeNotify();
   }
 
   public boolean isAncestorOf (Component comp)
Index: java/awt/Toolkit.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/Toolkit.java,v
retrieving revision 1.10
diff -u -r1.10 Toolkit.java
--- Toolkit.java	2000/08/03 12:09:38	1.10
+++ Toolkit.java	2000/08/09 12:46:14
@@ -21,7 +21,7 @@
 {
   static Toolkit defaultToolkit;
   static EventQueue systemEventQueue = new EventQueue();
-  PropertyChangeSupport pcsupport = new PropertyChangeSupport(this);
+  PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
   Hashtable desktopProperties = new Hashtable();
 
   public static Toolkit getDefaultToolkit()
@@ -216,7 +216,7 @@
   {
     Object oldValue = getDesktopProperty(name);
     desktopProperties.put(name, newValue);
-    pcsupport.firePropertyChange(name, oldValue, newValue);
+    changeSupport.firePropertyChange(name, oldValue, newValue);
   }
 
   protected Object lazilyLoadDesktopProperty(String name)
@@ -233,13 +233,13 @@
   public void addPropertyChangeListener(String name,
                                 	PropertyChangeListener pcl)
   {
-    pcsupport.addPropertyChangeListener(name, pcl);
+    changeSupport.addPropertyChangeListener(name, pcl);
   }
   
   public void removePropertyChangeListener(String name,
                                            PropertyChangeListener pcl)
   {
-    pcsupport.removePropertyChangeListener(name, pcl);
+    changeSupport.removePropertyChangeListener(name, pcl);
   }
 
   public void addAWTEventListener(AWTEventListener listener, long eventMask)
Index: java/awt/Window.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/Window.java,v
retrieving revision 1.4
diff -u -r1.4 Window.java
--- Window.java	2000/07/31 02:03:51	1.4
+++ Window.java	2000/08/09 12:46:15
@@ -1,9 +1,9 @@
 /* Copyright (C) 1999, 2000  Free Software Foundation
 
-   This file is part of libjava.
+   This file is part of libgcj.
 
 This software is copyrighted work licensed under the terms of the
-Libjava License.  Please consult the file "LIBJAVA_LICENSE" for
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
 details.  */
 
 package java.awt;
@@ -11,38 +11,167 @@
 import java.awt.event.WindowListener;
 import java.awt.peer.WindowPeer;
 import java.awt.peer.ComponentPeer;
+import java.util.EventListener;
 import java.util.Locale;
+import java.util.ResourceBundle;
 
-/* A very incomplete placeholder. */
+/* Status: partially implemented. */
 
 public class Window extends Container
 {
-  public Window (Frame parent)
+  // Serialized fields, from Sun's serialization spec.
+  // private FocusManager focusMgr;  // FIXME: what is this?  
+  private String warningString = null;
+  private int state = 0;
+  private int windowSerializedDataVersion = 0; // FIXME
+
+  private transient WindowListener windowListener;
+  private transient GraphicsConfiguration graphicsConfiguration;
+
+  public Window(Frame owner)
+  {
+    this (owner, null);
+  }
+
+  /** @since 1.2 */
+  public Window(Window owner)
   {
-    this.parent = parent;
+    this (owner, null);
+  }
+  
+  /** @since 1.3 */
+  public Window(Window owner, GraphicsConfiguration gc)
+  {
+    /*  FIXME: Security check
+    SecurityManager.checkTopLevelWindow(...)
+
+    if (gc != null
+        && gc.getDevice().getType() != GraphicsDevice.TYPE_RASTER_SCREEN)
+      throw new IllegalArgumentException ("gc must be from a screen device");
+
+    if (gc == null)
+      graphicsConfiguration = GraphicsEnvironment.getLocalGraphicsEnvironment()
+			     .getDefaultScreenDevice()
+			     .getDefaultConfiguration();
+    else
+    */    
+      graphicsConfiguration = gc;
+
     // FIXME: compiler bug
     // this.layoutMgr = new BorderLayout ();
+    
+    if (owner == null)
+      throw new IllegalArgumentException ("Owner can not be null");
+          
+    this.parent = owner;
+    
+    // FIXME: add to owner's "owned window" list
   }
 
-  public void addNotify ()
+  protected void finalize() throws Throwable
   {
+    // FIXME: remove from owner's "owned window" list (Weak References)
+  }
+
+  public void addNotify()
+  {
     if (peer == null)
+      // FIXME: This cast should NOT be required. ??? Compiler bug ???
       peer = (ComponentPeer) getToolkit ().createWindow (this);
-    super.addNotify ();
   }
 
-  public synchronized void addWindowListener (WindowListener listener)
+  /** @specnote pack() doesn't appear to be called internally by show(), so
+                we duplicate some of the functionality. */
+  public void pack()
+  {
+    if (parent != null
+        && !parent.isDisplayable())
+      parent.addNotify();
+        if (peer == null)
+      addNotify();
+    
+    // FIXME: do layout stuff here
+    
+    validate();
+  }
+
+  public void show ()
   {
-    windowListener = AWTEventMulticaster.add (windowListener, listener);
+    if (isVisible())
+      {
+	this.toFront();
+	return;
+      }
+  
+    if (parent != null
+        && !parent.isDisplayable())
+      parent.addNotify();
+    if (peer == null)
+      addNotify ();    
+
+    validate ();
+    
+    super.show ();
+
+    // FIXME: Is this call neccessary or do we assume the peer takes care of 
+    // it?
+    // this.toFront();
+  }
+
+  public void hide()
+  {
+    // FIXME: call hide() on amy "owned" children here.
+    super.hide();
+  }
+
+  public void dispose()
+  {
+    // FIXME: first call removeNotify() on owned children
+    for (int i = 0; i < ncomponents; ++i)
+      component[i].removeNotify();
+    this.removeNotify();
+  }
+
+  public void toBack ()
+  {
+    if (peer != null)
+      {
+	WindowPeer wp = (WindowPeer) peer;
+	wp.toBack ();
+      }
   }
 
-  public void dispose ()
+  public void toFront ()
   {
+    if (peer != null)
+      {
+	WindowPeer wp = (WindowPeer) peer;
+	wp.toFront ();
+      }
+  }
+
+  public Toolkit getToolkit()
+  {
+    // FIXME: why different from Component.getToolkit() ?
+    return super.getToolkit();
   }
 
-  public Component getFocusOwner ()
+  public final String getWarningString()
   {
-    return null;		// FIXME
+    boolean secure = true;
+    /* boolean secure = SecurityManager.checkTopLevelWindow(...) */
+
+    if (!secure)
+      {
+        if (warningString != null)
+	  return warningString;
+	else
+	  {
+	    String warning = System.getProperty("awt.appletWarning");
+	    return warning;
+	  }
+      }
+    return null;
   }
 
   public Locale getLocale ()
@@ -50,22 +179,66 @@
     return locale == null ? Locale.getDefault () : locale;
   }
 
-  public String getWarningString ()
+  /*
+  /** @since 1.2
+  public InputContext getInputContext()
   {
-    return warningString;
+    // FIXME
   }
+  */
 
-  public void pack ()
+  public void setCursor(Cursor cursor)
   {
-    addNotify ();
-    // FIXME
+    // FIXME: why different from Component.setCursor() ?
+    super.setCursor(cursor);
+  }
+
+  public Window getOwner()
+  {
+    if (parent != null)
+      return (Window) parent;
+    else 
+      return null;
+  }
+
+  /** @since 1.2 */
+  public Window[] getOwnedWindows()
+  {
+    // FIXME: return array containing all the windows this window currently 
+    // owns.
+    return null;
+  }
+
+  public synchronized void addWindowListener (WindowListener listener)
+  {
+    windowListener = AWTEventMulticaster.add (windowListener, listener);
   }
 
-  public boolean postEvent (Event evt)
+  public synchronized void removeWindowListener (WindowListener listener)
   {
-    return false;		// FIXME
+    windowListener = AWTEventMulticaster.remove (windowListener, listener);
   }
 
+  /** @since 1.3 */
+  public EventListener[] getListeners(Class listenerType)
+  {
+    if (listenerType == WindowListener.class)
+      return getListenersImpl(listenerType, windowListener);
+    else return super.getListeners(listenerType);
+  }
+
+  void dispatchEventImpl(AWTEvent e)
+  {
+    // Make use of event id's in order to avoid multiple instanceof tests.
+    if (e.id <= WindowEvent.WINDOW_LAST 
+        && e.id >= WindowEvent.WINDOW_FIRST
+        && (windowListener != null 
+	    || (eventMask & AWTEvent.WINDOW_EVENT_MASK) != 0))
+      processEvent(e);
+    else
+      super.dispatchEventImpl(e);
+  }
+
   protected void processEvent (AWTEvent evt)
   {
     if (evt instanceof WindowEvent)
@@ -105,41 +278,47 @@
       }
   }
 
-  public synchronized void removeWindowListener (WindowListener listener)
+  public Component getFocusOwner()
   {
-    windowListener = AWTEventMulticaster.remove (windowListener, listener);
+    // FIXME
+    return null;
   }
 
-  public void show ()
+  public boolean postEvent(Event e)
   {
-    addNotify ();
-    validate ();
-    setVisible (true);
-    // FIXME: is there more to it?
+    // FIXME
+    return false;
   }
 
-  public void toBack ()
+  public boolean isShowing()
   {
-    if (peer != null)
-      {
-	WindowPeer wp = (WindowPeer) peer;
-	wp.toBack ();
-      }
+    // FIXME: Also check if window is within the boundary of the screen?
+    return isVisible();
   }
 
-  public void toFront ()
+  /** @since 1.2 */
+  public void applyResourceBundle(ResourceBundle rb)
   {
-    if (peer != null)
-      {
-	WindowPeer wp = (WindowPeer) peer;
-	wp.toFront ();
-      }
+    // FIXME
   }
 
-  // Serialized fields, from Sun's serialization spec.
-  // private FocusManager focusMgr;  // FIXME: what is this?
-  private int state;
-  private String warningString;
+  /** @since 1.2 */
+  public void applyResourceBundle(String rbName)
+  {
+    ResourceBundle rb = ResourceBundle.getBundle(rbName);
+    if (rb != null)
+      applyResourceBundle(rb);    
+  }
 
-  private transient WindowListener windowListener;
+  /*
+  public AccessibleContext getAccessibleContext()
+  {
+    // FIXME
+  }
+  */
+
+  public GraphicsConfiguration getGraphicsConfiguration()
+  {
+    return graphicsConfiguration;
+  }
 }
Index: java/awt/color/ICC_Profile.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/color/ICC_Profile.java,v
retrieving revision 1.1
diff -u -r1.1 ICC_Profile.java
--- ICC_Profile.java	2000/07/25 17:53:29	1.1
+++ ICC_Profile.java	2000/08/09 12:46:15
@@ -24,7 +24,7 @@
 
   public int getNumComponents()
   {
-    switch (profileID)
+    switch ((int) profileID)
       {
       case ColorSpace.CS_sRGB:
       case ColorSpace.CS_LINEAR_RGB:
Index: java/awt/event/KeyEvent.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/event/KeyEvent.java,v
retrieving revision 1.5
diff -u -r1.5 KeyEvent.java
--- KeyEvent.java	2000/07/12 03:32:06	1.5
+++ KeyEvent.java	2000/08/09 12:46:15
@@ -251,7 +251,7 @@
 
   public String paramString ()
   {
-    String r;
+    String r = "";
     switch (id)
       {
         case KEY_PRESSED:
Index: java/awt/event/WindowEvent.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/event/WindowEvent.java,v
retrieving revision 1.5
diff -u -r1.5 WindowEvent.java
--- WindowEvent.java	2000/07/12 03:32:06	1.5
+++ WindowEvent.java	2000/08/09 12:46:15
@@ -35,7 +35,7 @@
 
   public String paramString ()
   {
-    String r;
+    String r = "";
     switch (id)
       {
         case WINDOW_ACTIVATED:
Index: java/awt/geom/Dimension2D.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/geom/Dimension2D.java,v
retrieving revision 1.3
diff -u -r1.3 Dimension2D.java
--- Dimension2D.java	2000/03/07 19:55:26	1.3
+++ Dimension2D.java	2000/08/09 12:46:15
@@ -31,6 +31,10 @@
 
   public Object clone ()
   {
-    return super.clone();
+    try
+    {
+      return super.clone ();
+    } 
+    catch (CloneNotSupportedException _) {return null;}
   }
 }
Index: java/awt/geom/Point2D.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/geom/Point2D.java,v
retrieving revision 1.4
diff -u -r1.4 Point2D.java
--- Point2D.java	2000/07/23 00:24:14	1.4
+++ Point2D.java	2000/08/09 12:46:15
@@ -64,7 +64,11 @@
 
   public Object clone()
   {
-    return super.clone();
+    try
+    {
+      return super.clone ();
+    } 
+    catch (CloneNotSupportedException _) {return null;}
   }
 
   public static class Double extends Point2D
Index: java/awt/geom/RectangularShape.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/geom/RectangularShape.java,v
retrieving revision 1.2
diff -u -r1.2 RectangularShape.java
--- RectangularShape.java	2000/07/27 16:27:42	1.2
+++ RectangularShape.java	2000/08/09 12:46:15
@@ -170,7 +170,11 @@
 
   public Object clone ()
   {
-    return super.clone ();
+    try
+    {
+      return super.clone ();
+    } 
+    catch (CloneNotSupportedException _) {return null;}
   }
 
   // This implements the PathIterator for all RectangularShape objects
Index: java/awt/image/ColorModel.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/awt/image/ColorModel.java,v
retrieving revision 1.1
diff -u -r1.1 ColorModel.java
--- ColorModel.java	2000/07/25 17:53:30	1.1
+++ ColorModel.java	2000/08/09 12:46:15
@@ -54,11 +54,11 @@
   protected int pixel_bits;
   protected int transferType;
 
-  private int[] bits;
-  private ColorSpace cspace;
-  private int transparency;
-  private boolean hasAlpha;
-  private boolean isAlphaPremultiplied;
+  int[] bits;
+  ColorSpace cspace;
+  int transparency;
+  boolean hasAlpha;
+  boolean isAlphaPremultiplied;
     
   static int[] nArray(int value, int times)
   {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]