You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2010/04/29 16:23:39 UTC

svn commit: r939319 - in /myfaces/tobago/trunk/core/src: main/java/org/apache/myfaces/tobago/layout/Measure.java test/java/org/apache/myfaces/tobago/layout/MeasureUnitTest.java

Author: lofwyr
Date: Thu Apr 29 14:23:39 2010
New Revision: 939319

URL: http://svn.apache.org/viewvc?rev=939319&view=rev
Log:
TOBAGO-606: layout manager
 - Measure min/max should support defined values for "null" parameters

Added:
    myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/MeasureUnitTest.java
Modified:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java?rev=939319&r1=939318&r2=939319&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/layout/Measure.java Thu Apr 29 14:23:39 2010
@@ -139,39 +139,51 @@ public abstract class Measure implements
 
   public abstract int getPixel();
 
+  /**
+   * Returns the maximum. If all parameters are null, than the result is {@value #ZERO}.
+   */
   public static Measure max(List<Measure> list) {
     Measure max = ZERO;
     for (Measure measure : list) {
-      if (measure.greaterThan(max)) {
+      if (max.lessThan(measure)) {
         max = measure;
       }
     }
     return max;
   }
 
+  /**
+   * Returns the minimum. If all parameters are null, than the result is {@value #MAX}.
+   */
   public static Measure min(List<Measure> list) {
     Measure min = MAX;
     for (Measure measure : list) {
-      if (measure.lessThan(min)) {
+      if (min.greaterThan(measure)) {
         min = measure;
       }
     }
     return min;
   }
 
+  /**
+   * Returns the maximum. If all parameters are null, than the result is {@value #ZERO}.
+   */
   public static Measure max(Measure m1, Measure m2) {
-    if (m1.greaterThan(m2)) {
-      return m1;
+    if (m1 != null) {
+      return m1.lessThan(m2) ? m2 : m1;
     } else {
-      return m2;
+      return m2 != null ? m2 : ZERO;
     }
   }
 
+  /**
+   * Returns the minimum. If all parameters are null, than the result is {@value #MAX}.
+   */
   public static Measure min(Measure m1, Measure m2) {
-    if (m1.lessThan(m2)) {
-      return m1;
+    if (m1 != null) {
+      return m1.greaterThan(m2) ? m2 : m1;
     } else {
-      return m2;
+      return m2 != null ? m2 : MAX;
     }
   }
 }

Added: myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/MeasureUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/MeasureUnitTest.java?rev=939319&view=auto
==============================================================================
--- myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/MeasureUnitTest.java (added)
+++ myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/MeasureUnitTest.java Thu Apr 29 14:23:39 2010
@@ -0,0 +1,62 @@
+package org.apache.myfaces.tobago.layout;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.Arrays;
+
+public class MeasureUnitTest {
+
+  private static Measure px(int pixel) {
+    return Measure.valueOf(pixel);
+  }
+
+  @Test
+  public void testMinList() {
+    Assert.assertEquals(px(5), Measure.min(Arrays.asList(px(5), px(10), px(20))));
+    Assert.assertEquals(px(5), Measure.min(Arrays.asList(px(5), null, px(20))));
+    Assert.assertEquals(Measure.MAX, Measure.min(Arrays.asList((Measure)null, null, null)));
+    Assert.assertEquals(Measure.MAX, Measure.min(Arrays.<Measure>asList()));
+  }
+
+  @Test
+  public void testMaxList() {
+    Assert.assertEquals(px(20), Measure.max(Arrays.asList(px(5), px(10), px(20))));
+    Assert.assertEquals(px(20), Measure.max(Arrays.asList(px(5), null, px(20))));
+    Assert.assertEquals(Measure.ZERO, Measure.max(Arrays.asList((Measure)null, null, null)));
+    Assert.assertEquals(Measure.ZERO, Measure.max(Arrays.<Measure>asList()));
+  }
+
+  @Test
+  public void testMin2() {
+    Assert.assertEquals(px(5), Measure.min(px(5), px(10)));
+    Assert.assertEquals(px(10), Measure.min(null, px(10)));
+    Assert.assertEquals(px(5), Measure.min(px(5), null));
+    Assert.assertEquals(Measure.MAX, Measure.min(null, null));
+  }
+
+  @Test
+  public void testMax2() {
+    Assert.assertEquals(px(10), Measure.max(px(5), px(10)));
+    Assert.assertEquals(px(10), Measure.max(null, px(10)));
+    Assert.assertEquals(px(5), Measure.max(px(5), null));
+    Assert.assertEquals(Measure.ZERO, Measure.max(null, null));
+  }
+}