You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ap...@apache.org on 2007/02/13 16:24:59 UTC

svn commit: r507046 - in /harmony/enhanced/classlib/trunk/modules/awt: make/ src/main/java/common/java/awt/ src/test/api/java/common/java/awt/

Author: apetrenko
Date: Tue Feb 13 07:24:57 2007
New Revision: 507046

URL: http://svn.apache.org/viewvc?view=rev&rev=507046
Log:
Patch for HARMONY-1605 "[classlib][awt]Compatibility: java.awt.Window has null default Font on RI while it hasn't on Harmony"
ComponentTest removed from exclude list.

Modified:
    harmony/enhanced/classlib/trunk/modules/awt/make/exclude.common
    harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Button.java
    harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Component.java
    harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java
    harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Label.java
    harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Window.java
    harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ComponentTest.java

Modified: harmony/enhanced/classlib/trunk/modules/awt/make/exclude.common
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/make/exclude.common?view=diff&rev=507046&r1=507045&r2=507046
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/make/exclude.common (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/make/exclude.common Tue Feb 13 07:24:57 2007
@@ -19,7 +19,6 @@
 java/awt/ButtonRTest.java
 java/awt/CardLayoutTest.java
 java/awt/ChoiceTest.java
-java/awt/ComponentTest.java
 java/awt/ContainerOrderFocusTraversalPolicyTest.java
 java/awt/DialogRTest.java
 java/awt/ListTest.java

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Button.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Button.java?view=diff&rev=507046&r1=507045&r2=507046
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Button.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Button.java Tue Feb 13 07:24:57 2007
@@ -186,11 +186,6 @@
         }
     }
 
-    @Override
-    boolean hasDefaultFont() {
-        return true;
-    }
-
     public String getLabel() {
         toolkit.lockAWT();
         try {

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Component.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Component.java?view=diff&rev=507046&r1=507045&r2=507046
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Component.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Component.java Tue Feb 13 07:24:57 2007
@@ -2960,17 +2960,12 @@
     public Font getFont() {
         toolkit.lockAWT();
         try {
-            if (font == null && hasDefaultFont()) {
-                return toolkit.getDefaultFont();
-            }
-            if (font == null && parent != null) {
-                return parent.getFont();
-            }
-            return font;
+            return (font == null) && (parent != null) ? parent.getFont() : font;
         } finally {
             toolkit.unlockAWT();
         }
     }
+    
 
     public void setFont(Font f) {
         Font oldFont;
@@ -2992,9 +2987,6 @@
         }
     }
 
-    boolean hasDefaultFont() {
-        return false;
-    }
 
     /**
      * Invalidate the component if it inherits the font from the parent. This

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java?view=diff&rev=507046&r1=507045&r2=507046
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Font.java Tue Feb 13 07:24:57 2007
@@ -75,6 +75,8 @@
     public static final int LAYOUT_NO_START_CONTEXT = 2;
 
     public static final int LAYOUT_NO_LIMIT_CONTEXT = 4;
+    
+    static final Font DEFAULT_FONT = new Font("Dialog", Font.PLAIN, 12); //$NON-NLS-1$
 
     protected String name;
 
@@ -353,17 +355,17 @@
         // as the delimiter to avoid unexpected parse results of font face names 
         // with spaces.
         
+        if (str == null) {
+            return DEFAULT_FONT;
+        }
+        
         StringTokenizer strTokens;
         String delim = "-"; //$NON-NLS-1$
         String substr;
 
-        int fontSize = 12;
-        int fontStyle = Font.PLAIN;
-        String fontName = "dialog"; //$NON-NLS-1$
-
-        if (str == null) {
-            return new Font(fontName, fontStyle, fontSize);
-        }
+        int fontSize = DEFAULT_FONT.size;
+        int fontStyle = DEFAULT_FONT.style;
+        String fontName = DEFAULT_FONT.name;
 
         strTokens = new StringTokenizer(str.trim(), delim);
 

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Label.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Label.java?view=diff&rev=507046&r1=507045&r2=507046
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Label.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Label.java Tue Feb 13 07:24:57 2007
@@ -273,11 +273,6 @@
     }
 
     @Override
-    boolean hasDefaultFont() {
-        return true;
-    }
-
-    @Override
     AccessibleContext createAccessibleContext() {
         return new AccessibleAWTLabel();
     }

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Window.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Window.java?view=diff&rev=507046&r1=507045&r2=507046
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Window.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/java/awt/Window.java Tue Feb 13 07:24:57 2007
@@ -539,6 +539,11 @@
             } else {
                 disposed = false;
             }
+            
+            if (getFont() == null) {
+                setFont(Font.DEFAULT_FONT);
+            }
+            
             super.show();
             toFront();
             if (!opened) {

Modified: harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ComponentTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ComponentTest.java?view=diff&rev=507046&r1=507045&r2=507046
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ComponentTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ComponentTest.java Tue Feb 13 07:24:57 2007
@@ -338,6 +338,37 @@
         assertTrue(tc.areFocusTraversalKeysSet(id));
 
     }
+    
+    public void testGetFont() {
+        // Regression for HARMONY-1605
+        final Font defaultFont = new Font("Dialog", Font.PLAIN, 12); //$NON-NLS-1$
+        final Window w = new Window(new Frame());
+        final Component c = tc;
+        final Button b = new Button();
+
+        assertNull(w.getFont());
+        assertNull(c.getFont());
+        w.add(c);
+        assertNull(c.getFont());
+        w.setVisible(true);
+        assertEquals(defaultFont, w.getFont());
+        assertEquals(defaultFont, c.getFont());
+
+        assertNull(b.getFont());
+        b.setVisible(true);
+        assertNull(b.getFont());
+        b.setVisible(false);
+        b.setVisible(true);
+        assertNull(b.getFont());
+        new Frame().add(b);
+        assertNull(b.getFont());
+        w.add(b);
+        assertEquals(defaultFont, b.getFont());
+
+        w.setVisible(false);
+        w.dispose();
+        // End of regression for HARMONY-1605
+    }
 
     private void createRobot() {
         try {