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 2009/06/26 14:13:47 UTC

svn commit: r788668 [4/6] - in /myfaces/tobago/trunk: core/ core/src/main/java/org/apache/myfaces/tobago/component/ core/src/main/java/org/apache/myfaces/tobago/context/ core/src/main/java/org/apache/myfaces/tobago/layout/ core/src/main/java/org/apache...

Modified: myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/math/EquationManagerUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/math/EquationManagerUnitTest.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/math/EquationManagerUnitTest.java (original)
+++ myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/math/EquationManagerUnitTest.java Fri Jun 26 12:13:41 2009
@@ -31,39 +31,325 @@
   private static final Log LOG = LogFactory.getLog(EquationManagerUnitTest.class);
 
   /**
-   * <pre>
-   * |               600px               |
-   * | 100px |  200px  |  *  |       2*  |
-   * |       | 1* | 2* |     | 130px | * |
-   * </pre>
+   Horizontal model: (this example only contains information for horizontal layouting)<br/>
+   (the HTML source code from this documentation is <b>not</b> a reference for the renderer! The resulting
+   HTML of the page is totally different.)<br/>
+   x<sub>0</sub> = 630px
+   <table border="5">
+     <tr>
+       <td rowspan="2">
+         x<sub>1</sub> = 100px
+         <table border="5">
+           <th>x<sub>5</sub></th>
+           <tr>
+             <td height="360" width="100">
+             </td>
+           </tr>
+         </table>
+       </td>
+       <td>
+         x<sub>2</sub> = 200px
+         <table border="5">
+           <th>x<sub>6</sub></th>
+           <tr>
+             <td height="100" width="200">
+             </td>
+           </tr>
+         </table>
+         <table border="5">
+           <th colspan="2">x<sub>7</sub></th>
+           <tr>
+             <td width="67" height="100">
+               x<sub>8</sub> = *
+             </td>
+             <td width="133">
+               x<sub>9</sub> = 2*
+             </td>
+           </tr>
+         </table>
+       </td>
+       <td>
+         x<sub>3</sub> = *
+         <table border="5">
+           <th>x<sub>13</sub></th>
+           <tr>
+             <td width="100" height="200">
+             </td>
+           </tr>
+         </table>
+       </td>
+       <td>
+         x<sub>4</sub> = 2*
+         <table border="5">
+           <th colspan="2">x<sub>14</sub></th>
+           <tr>
+             <td width="130" height="200">
+               x<sub>15</sub> = 130px
+             </td>
+             <td width="70">
+               x<sub>16</sub> = *
+             </td>
+           </tr>
+         </table>
+       </td>
+     </tr>
+     <tr>
+       <td>
+         <table border="5">
+           <th colspan="2">x<sub>10</sub></th>
+           <tr>
+             <td width="160" height="100">
+               x<sub>11</sub> = 4*
+             </td>
+             <td width="40">
+               x<sub>12</sub> = *
+             </td>
+           </tr>
+         </table>
+       </td>
+       <td colspan="2">
+         columnSpan=2
+         <table border="5">
+           <th>x<sub>17</sub></th>
+           <tr>
+             <td width="300" height="80">
+             </td>
+           </tr>
+         </table>
+       </td>
+     </tr>
+     <tr>
+       <td colspan="4">
+         columnSpan = 4
+         <table border="5" width="100%">
+           <th colspan="6">x<sub>18</sub></th>
+           <tr>
+             <td width="28">
+               x<sub>19</sub> = *
+             </td>
+             <td width="56">
+               x<sub>20</sub> = 2*
+             </td>
+             <td width="84">
+               x<sub>21</sub> = 3*
+             </td>
+             <td width="112">
+               x<sub>22</sub> = 4*
+             </td>
+             <td width="140">
+               x<sub>23</sub> = 5*
+             </td>
+             <td width="168">
+               x<sub>24</sub> = 6*
+             </td>
+           </tr>
+           <tr>
+             <td colspan="6">
+               columnSpan = 6
+               <table border="5" width="100%">
+                 <th>x<sub>25</sub></th>
+                 <tr>
+                   <td width="100%">
+                   </td>
+                 </tr>
+               </table>
+             </td>
+           </tr>
+           <tr>
+             <td colspan="3">
+               columnSpan = 3
+               <table border="5" width="100%">
+                 <th>x<sub>26</sub></th>
+                 <tr>
+                   <td width="100%">
+                   </td>
+                 </tr>
+               </table>
+             </td>
+             <td colspan="3">
+               columnSpan = 3
+               <table border="5" width="100%">
+                 <th>x<sub>27</sub></th>
+                 <tr>
+                   <td width="100%">
+                   </td>
+                 </tr>
+               </table>
+             </td>
+           </tr>
+         </table>
+       </td>
+     </tr>
+   </table>
+   <p/>
+   FixedEquation: x<sub>0</sub> = 600.0<br/>
+   PartitionEquation:  x<sub>0</sub> = x<sub>1</sub> + ... + x<sub>4</sub><br/>
+   ProportionEquation: 2.0 * x<sub>3</sub> = 1.0 * x<sub>4</sub><br/>
+   FixedEquation: x<sub>1</sub> = 100.0<br/>
+   PartitionEquation:  x<sub>1</sub> = x<sub>5</sub><br/>
+   FixedEquation: x<sub>2</sub> = 200.0<br/>
+   PartitionEquation:  x<sub>2</sub> = x<sub>6</sub><br/>
+   PartitionEquation:  x<sub>2</sub> = x<sub>7</sub><br/>
+   PartitionEquation:  x<sub>7</sub> = x<sub>8</sub> + x<sub>9</sub><br/>
+   ProportionEquation: 2.0 * x<sub>8</sub> = 1.0 * x<sub>9</sub><br/>
+   PartitionEquation:  x<sub>2</sub> = x<sub>10</sub><br/>
+   PartitionEquation:  x<sub>10</sub> = x<sub>11</sub> + x<sub>12</sub><br/>
+   ProportionEquation: 1.0 * x<sub>11</sub> = 4.0 * x<sub>12</sub><br/>
+   PartitionEquation:  x<sub>3</sub> = x<sub>13</sub><br/>
+   PartitionEquation:  x<sub>4</sub> = x<sub>14</sub><br/>
+   PartitionEquation:  x<sub>14</sub> = x<sub>15</sub> + x<sub>16</sub><br/>
+   FixedEquation: x<sub>15</sub> = 130.0<br/>
+   PartitionEquation:  x<sub>3</sub> + x<sub>4</sub> = x<sub>17</sub><br/>
+   PartitionEquation:  x<sub>1</sub> + ... + x<sub>4</sub> = x<sub>18</sub><br/>
+   PartitionEquation:  x<sub>18</sub> = x<sub>19</sub> + ... + x<sub>24</sub><br/>
+   ProportionEquation: 2.0 * x<sub>19</sub> = 1.0 * x<sub>20</sub><br/>
+   ProportionEquation: 3.0 * x<sub>19</sub> = 1.0 * x<sub>21</sub><br/>
+   ProportionEquation: 4.0 * x<sub>19</sub> = 1.0 * x<sub>22</sub><br/>
+   ProportionEquation: 5.0 * x<sub>19</sub> = 1.0 * x<sub>23</sub><br/>
+   ProportionEquation: 6.0 * x<sub>19</sub> = 1.0 * x<sub>24</sub><br/>
+   PartitionEquation:  x<sub>19</sub> + ... + x<sub>24</sub> = x<sub>25</sub><br/>
+   PartitionEquation:  x<sub>19</sub> + ... + x<sub>21</sub> = x<sub>26</sub><br/>
+   PartitionEquation:  x<sub>22</sub> + ... + x<sub>24</sub> = x<sub>27</sub><br/>
+   <p/>
+   Result:<br/>
+   x<sub> 0</sub> = 630<br/>
+   x<sub> 1</sub> = 100<br/>
+   x<sub> 2</sub> = 200<br/>
+   x<sub> 3</sub> = 110<br/>
+   x<sub> 4</sub> = 220<br/>
+   x<sub> 5</sub> = 100<br/>
+   x<sub> 6</sub> = 200<br/>
+   x<sub> 7</sub> = 200<br/>
+   x<sub> 8</sub> = 66.667<br/>
+   x<sub> 9</sub> = 133.333<br/>
+   x<sub>10</sub> = 200<br/>
+   x<sub>11</sub> = 160<br/>
+   x<sub>12</sub> = 40<br/>
+   x<sub>13</sub> = 110<br/>
+   x<sub>14</sub> = 220<br/>
+   x<sub>15</sub> = 130<br/>
+   x<sub>16</sub> = 90<br/>
+   x<sub>17</sub> = 330<br/>
+   x<sub>18</sub> = 630<br/>
+   x<sub>19</sub> = 30<br/>
+   x<sub>20</sub> = 60<br/>
+   x<sub>21</sub> = 90<br/>
+   x<sub>22</sub> = 120<br/>
+   x<sub>23</sub> = 150<br/>
+   x<sub>24</sub> = 180<br/>
+   x<sub>25</sub> = 630<br/>
+   x<sub>26</sub> = 180<br/>
+   x<sub>27</sub> = 450<br/>
    */
-
   public void test() {
     EquationManager equationManager = new EquationManager();
 
-    // outer limit (if exists)
-    equationManager.setFixedLength(0, 600);
-    equationManager.descend(0,1);
-    equationManager.addSubTree(4);
-    equationManager.setFixedLength(0, 100);
-    equationManager.setFixedLength(1, 200);
-    equationManager.setProportion(2, 3, 1, 2);
-
-    equationManager.descend(1,1);
-    equationManager.addSubTree(2);
-    equationManager.setProportion(0, 1, 1, 2);
-    equationManager.ascend();
-
-    equationManager.descend(3,1);
-    equationManager.addSubTree(2);
-    equationManager.setFixedLength(0, 130);
-    equationManager.ascend();
+    int index;
+    int[] indices;
+
+    // create
+
+    index = equationManager.addComponentRoot();
+    assertEquals(0, index);
+    equationManager.setFixedLength(index, 630);        // the first (current) index has a fix size of 600
+    indices = equationManager.divide(index, 4);                     // this index is divided into 4 parts
+    AssertUtils.assertEquals(new int[]{1, 2, 3, 4}, indices);
+    equationManager.setProportion(indices[2], indices[3], 1, 2);     // the value on index 2 has factor 1,
+    //                                                the value on position 3 has factor 2
+    {
+      equationManager.setFixedLength(indices[0], 100);        // the first one has a fix size of 100
+      index = equationManager.addComponent(indices[0], 1);
+      assertEquals(5, index);
+    }
+    {
+      equationManager.setFixedLength(indices[1], 200);        // the second one has a fix size of 200
+      index = equationManager.addComponent(indices[1], 1);
+      assertEquals(6, index);
+
+      index = equationManager.addComponent(indices[1], 1);
+      assertEquals(7, index);
+      int[] i7 = equationManager.divide(7, 2);
+      AssertUtils.assertEquals(new int[]{8, 9}, i7);
+      equationManager.setProportion(i7[0], i7[1], 1, 2);
 
-    equationManager.ascend();
+      index = equationManager.addComponent(indices[1], 1);
+      assertEquals(10, index);
+      int[] i10 = equationManager.divide(10, 2);
+      AssertUtils.assertEquals(new int[]{11, 12}, i10);
+      equationManager.setProportion(i10[0], i10[1], 4, 1);
+    }
+    {
+      index = equationManager.addComponent(indices[2], 1);
+      assertEquals(13, index);
+    }
+    {
+      index = equationManager.addComponent(indices[3], 1);
+      assertEquals(14, index);
+      int[] i14 = equationManager.divide(14, 2);
+      AssertUtils.assertEquals(new int[]{15, 16}, i14);
+      equationManager.setFixedLength(i14[0], 130);        // the second one has a fix size of 200
+    }
+    {
+      int iSpan2 = equationManager.addComponent(indices[2], 2);
+      assertEquals(17, iSpan2);
+    }
+    {
+      int iSpan4 = equationManager.addComponent(indices[0], 4);
+      assertEquals(18, iSpan4);
+      int[] i18 = equationManager.divide(18, 6);
+      AssertUtils.assertEquals(new int[]{19, 20, 21, 22, 23, 24}, i18);
+      equationManager.setProportion(i18[0], i18[1], 1, 2);
+      equationManager.setProportion(i18[0], i18[2], 1, 3);
+      equationManager.setProportion(i18[0], i18[3], 1, 4);
+      equationManager.setProportion(i18[0], i18[4], 1, 5);
+      equationManager.setProportion(i18[0], i18[5], 1, 6);
+    }
+    {
+      int i19_1 = equationManager.addComponent(19, 6);
+      assertEquals(25, i19_1);
+      int i19_2 = equationManager.addComponent(19, 3);
+      assertEquals(26, i19_2);
+      int i22 = equationManager.addComponent(22, 3);
+      assertEquals(27, i22);
+    }
+
+    LOG.info("tree: " + equationManager.toString());
+
+    // solve
 
     equationManager.solve();
     double[] result = equationManager.getResult();
     LOG.info("result: " + Arrays.toString(result));
-    AssertUtils.assertEquals(new double[]{600, 100, 200, 100, 200, 66.6666667, 133.3333333, 130, 70}, result, 0.000001);
+    AssertUtils.assertEquals(new double[]{
+       630,        // x_0
+       100,        // x_1
+       200,        // x_2
+       110,        // x_3
+       220,        // x_4
+       100,        // x_5
+       200,        // x_6
+       200,        // x_7
+       66.666667,  // x_8
+       133.333333, // x_9
+       200,        // x_10
+       160,        // x_11
+       40,         // x_12
+       110,        // x_13
+       220,        // x_14
+       130,        // x_15
+       90,         // x_16
+       330,        // x_17
+       630,        // x_18
+       30,         // x_19
+       60,         // x_20
+       90,         // x_21
+       120,        // x_22
+       150,        // x_23
+       180,        // x_24
+       630,        // x_25
+       180,        // x_26
+       450,        // x_27
+    }, result, 0.000001);
+
   }
 }

Modified: myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/math/SystemOfEquationsUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/math/SystemOfEquationsUnitTest.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/math/SystemOfEquationsUnitTest.java (original)
+++ myfaces/tobago/trunk/core/src/test/java/org/apache/myfaces/tobago/layout/math/SystemOfEquationsUnitTest.java Fri Jun 26 12:13:41 2009
@@ -38,7 +38,7 @@
     system.addEqualsEquation(new ProportionEquation(1, 2, 2, 3));
     system.prepare();
     system.gauss();
-    system.step2();
+    system.reduce();
     double[] result = system.result();
 
     long end = System.nanoTime();
@@ -46,7 +46,7 @@
     LOG.info("result: " + Arrays.toString(result));
     LOG.info("Duration: " + new DecimalFormat().format(end - begin) + " ns");
 
-    AssertUtils.assertEquals(new double[]{1000, 400, 600}, result, 0.000001);
+    AssertUtils.assertEquals(new double[]{1000, 400, 600}, result, SystemOfEquations.EPSILON);
   }
 
   public void test1To2To3To4() {
@@ -61,7 +61,7 @@
     system.addEqualsEquation(new ProportionEquation(3, 4, 3, 4));
     system.prepare();
     system.gauss();
-    system.step2();
+    system.reduce();
     double[] result = system.result();
 
     long end = System.nanoTime();
@@ -69,7 +69,7 @@
     LOG.info("result: " + Arrays.toString(result));
     LOG.info("Duration: " + new DecimalFormat().format(end - begin) + " ns");
 
-    AssertUtils.assertEquals(new double[]{1000, 100, 200, 300, 400}, result, 0.000001);
+    AssertUtils.assertEquals(new double[]{1000, 100, 200, 300, 400}, result, SystemOfEquations.EPSILON);
   }
 
   public void test1To2To3To4To5To6To7To8To9To10() {
@@ -91,7 +91,7 @@
 
     system.prepare();
     system.gauss();
-    system.step2();
+    system.reduce();
     double[] result = system.result();
 
     long end = System.nanoTime();
@@ -99,7 +99,7 @@
     LOG.info("result: " + Arrays.toString(result));
     LOG.info("Duration: " + new DecimalFormat().format(end - begin) + " ns");
 
-    AssertUtils.assertEquals(new double[]{1100, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200}, result, 0.000001);
+    AssertUtils.assertEquals(new double[]{1100, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200}, result, SystemOfEquations.EPSILON);
   }
 
   public void test1To___To100() {
@@ -118,7 +118,7 @@
 
     system.prepare();
     system.gauss();
-    system.step2();
+    system.reduce();
     double[] result = system.result();
 
     long end = System.nanoTime();
@@ -130,7 +130,7 @@
     for (int i = 0; i < n; i++) {
       expected[i + 1] = i + 1;
     }
-    AssertUtils.assertEquals(expected, result, 0.000001);
+    AssertUtils.assertEquals(expected, result, SystemOfEquations.EPSILON);
   }
 
   /**
@@ -154,7 +154,7 @@
     system.addEqualsEquation(new ProportionEquation(4, 6, 1, 1));
     system.prepare();
     system.gauss();
-    system.step2();
+    system.reduce();
     double[] result = system.result();
 
     long end = System.nanoTime();
@@ -162,7 +162,7 @@
     LOG.info("result: " + Arrays.toString(result));
     LOG.info("Duration: " + new DecimalFormat().format(end - begin) + " ns");
 
-    AssertUtils.assertEquals(new double[]{900, 300, 300, 300, 200, 200, 200}, result, 0.000001);
+    AssertUtils.assertEquals(new double[]{900, 300, 300, 300, 200, 200, 200}, result, SystemOfEquations.EPSILON);
   }
 
   public void testAddVariables() {
@@ -176,6 +176,101 @@
   }
 
   /**
+   * <pre>
+   * |                ? px               |
+   * |     *     |     *     |     *     |
+   * |           |   *   |   *   |   *   |
+   * </pre>
+   */
+  public void testTooManyVariables() {
+
+    long begin = System.nanoTime();
+
+    SystemOfEquations system = new SystemOfEquations(7);
+//    system.addEqualsEquation(new FixedEquation(0, 900));
+    system.addEqualsEquation(new PartitionEquation(1, 4, 0, 1));
+    system.addEqualsEquation(new PartitionEquation(4, 7, 2, 2));
+    system.addEqualsEquation(new ProportionEquation(1, 2, 1, 1));
+    system.addEqualsEquation(new ProportionEquation(1, 3, 1, 1));
+    system.addEqualsEquation(new ProportionEquation(4, 5, 1, 1));
+    system.addEqualsEquation(new ProportionEquation(4, 6, 1, 1));
+    system.prepare();
+    system.gauss();
+    system.reduce();
+    double[] result = system.result();
+
+    long end = System.nanoTime();
+
+    LOG.info("result: " + Arrays.toString(result));
+    LOG.info("Duration: " + new DecimalFormat().format(end - begin) + " ns");
+
+    AssertUtils.assertEquals(new double[]{450, 150, 150, 150, 100, 100, 100}, result, SystemOfEquations.EPSILON);
+  }
+
+  /**
+   * <pre>
+   * |            100 px           |
+   * |     50px     |     50px     |
+   * </pre>
+   */
+  public void testTooManyEquations() {
+
+    long begin = System.nanoTime();
+
+    SystemOfEquations system = new SystemOfEquations(4);
+    system.addEqualsEquation(new FixedEquation(0, 100));
+    system.addEqualsEquation(new PartitionEquation(1, 3, 0, 1));
+    system.addEqualsEquation(new FixedEquation(1, 50));
+    system.addEqualsEquation(new FixedEquation(2, 50));
+    system.addEqualsEquation(new PartitionEquation(3, 4, 2, 1));
+    system.addEqualsEquation(new FixedEquation(3, 50));
+    system.prepare();
+    system.gauss();
+    system.reduce();
+    double[] result = system.result();
+
+    long end = System.nanoTime();
+
+    LOG.info("result: " + Arrays.toString(result));
+    LOG.info("Duration: " + new DecimalFormat().format(end - begin) + " ns");
+
+    AssertUtils.assertEquals(new double[]{100, 50, 50, 50}, result, SystemOfEquations.EPSILON);
+  }
+
+  /**
+   * <pre>
+   * |          500 px       |
+   * |   100px   |     *     |
+   * |   100px   |     *     |
+   * </pre>
+   */
+  public void testTwoSubs() {
+
+    long begin = System.nanoTime();
+
+    SystemOfEquations system = new SystemOfEquations(7);
+//    system.addEqualsEquation(new FixedEquation(0, 900));
+    system.addEqualsEquation(new PartitionEquation(1, 4, 0, 1));
+    system.addEqualsEquation(new PartitionEquation(4, 7, 2, 2));
+    system.addEqualsEquation(new ProportionEquation(1, 2, 1, 1));
+    system.addEqualsEquation(new ProportionEquation(1, 3, 1, 1));
+    system.addEqualsEquation(new ProportionEquation(4, 5, 1, 1));
+    system.addEqualsEquation(new ProportionEquation(4, 6, 1, 1));
+    system.prepare();
+    system.gauss();
+    system.reduce();
+    double[] result = system.result();
+
+    long end = System.nanoTime();
+
+    LOG.info("result: " + Arrays.toString(result));
+    LOG.info("Duration: " + new DecimalFormat().format(end - begin) + " ns");
+
+    AssertUtils.assertEquals(new double[]{450, 150, 150, 150, 100, 100, 100}, result, SystemOfEquations.EPSILON);
+  }
+
+
+  /**
    * todo later: inequations
    * <pre>≤\u2264
    * |             x₀ = 1000px        |

Modified: myfaces/tobago/trunk/example/addressbook/war/src/main/webapp/auth/login.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/addressbook/war/src/main/webapp/auth/login.xhtml?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/addressbook/war/src/main/webapp/auth/login.xhtml (original)
+++ myfaces/tobago/trunk/example/addressbook/war/src/main/webapp/auth/login.xhtml Fri Jun 26 12:13:41 2009
@@ -24,7 +24,7 @@
         locale="#{controller.language}">
   <tc:loadBundle basename="resource" var="bundle"/>
 
-  <tc:page id="page" label="Login" state="#{layout}" width="#{layout.width}" height="#{layout.height}">
+  <tc:page id="page" label="Login" width="600" height="600">
     <f:facet name="layout">
       <tc:gridLayout rows="*;fixed;*" columns="*;400px;*"/>
     </f:facet>
@@ -62,6 +62,7 @@
         <tc:button label="#{bundle.loginLogin}" defaultCommand="true"/>
       </tc:panel>
     </tc:box>
+
     <tc:cell/>
     <tc:cell spanX="3"/>
 

Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/WEB-INF/web.xml?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/WEB-INF/web.xml (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/WEB-INF/web.xml Fri Jun 26 12:13:41 2009
@@ -93,10 +93,10 @@
   </servlet>
 
 
- <!-- <servlet>
+  <servlet>
     <servlet-name>ResourceServlet</servlet-name>
     <servlet-class>org.apache.myfaces.tobago.servlet.ResourceServlet</servlet-class>
-  </servlet>-->
+  </servlet>
 
   <!-- servlet-mapping -->
 
@@ -105,13 +105,10 @@
     <url-pattern>/faces/*</url-pattern>
   </servlet-mapping>
 
-<!--
   <servlet-mapping>
     <servlet-name>ResourceServlet</servlet-name>
     <url-pattern>/org/apache/myfaces/tobago/renderkit/html/*</url-pattern>
   </servlet-mapping>
--->
-
 
   <error-page>
     <error-code>404</error-code>

Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/overview/locale.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/overview/locale.xhtml?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/overview/locale.xhtml (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/overview/locale.xhtml Fri Jun 26 12:13:41 2009
@@ -32,7 +32,7 @@
 
     <tc:out escape="false" value="#{overviewBundle.locale_text}"/>
 
-    <tc:box label="#{overviewBundle.locale_title}" height="150px">
+    <tc:box label="#{overviewBundle.locale_title}">
       <f:facet name="layout">
         <tc:gridLayout rows="fixed;1*"/>
       </f:facet>

Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/overview/theme.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/overview/theme.xhtml?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/overview/theme.xhtml (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/overview/theme.xhtml Fri Jun 26 12:13:41 2009
@@ -34,7 +34,7 @@
 
     <tc:box label="#{overviewBundle.theme_title}">
       <f:facet name="layout">
-        <tc:gridLayout rows="fixed;1*"/>
+        <tc:gridLayout rows="50px;1*"/>
       </f:facet>
 
       <tc:panel>

Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/reference/layout-test.jsp
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/reference/layout-test.jsp?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/reference/layout-test.jsp (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/reference/layout-test.jsp Fri Jun 26 12:13:41 2009
@@ -20,13 +20,11 @@
 <%@ taglib tagdir="/WEB-INF/tags/layout" prefix="layout" %>
 
 <f:view>
-  <tc:page applicationIcon="icon/favicon.ico" label="title" id="page" width="1000px" height="750px">
+  <tc:page applicationIcon="icon/favicon.ico" label="title" id="page">
     <f:facet name="layout">
       <tc:gridLayout rows="*" columns="*;2*"/>
     </f:facet>
-    <f:facet name="constraints">
-      <tc:gridConstraints width="300px" height="50px"/>
-    </f:facet>
+    <tc:gridLayoutConstraint width="300px" height="50px"/>
     <tc:textarea
         value="Some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, ..."/>
 

Copied: myfaces/tobago/trunk/example/test/src/main/webapp/navi-sheet.xhtml (from r785994, myfaces/tobago/trunk/example/test/src/main/webapp/navi.xhtml)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/navi-sheet.xhtml?p2=myfaces/tobago/trunk/example/test/src/main/webapp/navi-sheet.xhtml&p1=myfaces/tobago/trunk/example/test/src/main/webapp/navi.xhtml&r1=785994&r2=788668&rev=788668&view=diff
==============================================================================
    (empty)

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/box/box.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/box/box.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/box/box.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/box/box.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="500px" height="500px"/>
+
+    <tc:box label="A simple box">
+      <f:facet name="layout">
+        <tc:gridLayout/>
+      </f:facet>
+
+      <tc:textarea  
+          value="Some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, some text without label, ..."/>
+
+    </tc:box>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/cell/3x3-center.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/cell/3x3-center.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/cell/3x3-center.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/cell/3x3-center.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:loadBundle var="test" basename="test"/>
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout rows="*;100px;*" columns="*;100px;*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="300px" height="300px"/>
+
+    <tc:cell spanX="3"/>
+
+    <tc:cell/>
+    <tc:in value="test" id="in"/>
+    <tc:cell/>
+
+    <tc:cell spanX="3"/>
+
+    <tc:script file="script/test-utils.js"/>
+
+    <tc:script onload="checkLayout('page:in', 100, 100, 100, 100);"/>
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/cell/position-4x4-span-steps.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/cell/position-4x4-span-steps.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/cell/position-4x4-span-steps.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/cell/position-4x4-span-steps.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page" label="Note: the &lt;tc:cell&gt; is deprecated">
+    <f:facet name="layout">
+      <tc:gridLayout columns="6*;9*;13*;2*" rows="4*;11*;10*;5*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="300px" height="300px"/>
+
+    <tc:in id="in-0" value="0"/>
+    <tc:cell id="cell-1" spanY="2">
+      <tc:in value="1"/>
+    </tc:cell>
+    <tc:cell id="cell-2" spanX="2">
+      <tc:in value="2"/>
+    </tc:cell>
+    <tc:in id="in-3" value="3"/>
+    <tc:cell id="cell-4" spanY="2">
+      <tc:in value="4 (Note: the &lt;tc:cell&gt; is deprecated)"/>
+    </tc:cell>
+    <tc:in id="in-5" value="5"/>
+    <tc:cell id="cell-6" spanX="2">
+      <tc:in value="6"/>
+    </tc:cell>
+    <tc:cell id="cell-7" spanY="2">
+      <tc:in value="7"/>
+    </tc:cell>
+    <tc:in id="in-8" value="8"/>
+    <tc:cell id="cell-9" spanX="2">
+      <tc:in value="9"/>
+    </tc:cell>
+
+    <tc:script file="script/test-utils.js"/>
+
+    <tc:script onload="checkLayout('page:in-0', 0, 0, 60, 40);"/>
+    <tc:script onload="checkLayout('page:cell-1', 60, 0, 90, 150);"/>
+    <tc:script onload="checkLayout('page:cell-2', 150, 0, 150, 40);"/>
+    <tc:script onload="checkLayout('page:in-3', 0, 40, 60, 110);"/>
+    <tc:script onload="checkLayout('page:cell-4', 150, 40, 130, 210);"/>
+    <tc:script onload="checkLayout('page:in-5', 280, 40, 20, 110);"/>
+    <tc:script onload="checkLayout('page:cell-6', 0, 150, 150, 100);"/>
+    <tc:script onload="checkLayout('page:cell-7', 280, 150, 20, 150);"/>
+    <tc:script onload="checkLayout('page:in-8', 0, 250, 60, 50);"/>
+    <tc:script onload="checkLayout('page:cell-9', 60, 250, 220, 50);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-asterisk-default.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-asterisk-default.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-asterisk-default.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-asterisk-default.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <tc:gridLayoutConstraint width="600px" height="300px"/>
+    <f:facet name="layout">
+      <tc:gridLayout columns="*"/>
+    </f:facet>
+
+    <tc:in id="in" value="Width should be 600px"/>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkWidth('page:in', 600);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-default-300px.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-default-300px.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-default-300px.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-default-300px.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <tc:gridLayoutConstraint width="600px" height="300px"/>
+    <f:facet name="layout">
+      <tc:gridLayout/>
+    </f:facet>
+
+    <tc:in id="in" value="Width should be 300px">
+      <tc:gridLayoutConstraint width="300px"/>
+    </tc:in>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkWidth('page:in', 300);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-default-default.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-default-default.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-default-default.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-600px-default-default.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <tc:gridLayoutConstraint width="600px" height="300px"/>
+    <f:facet name="layout">
+      <tc:gridLayout/>
+    </f:facet>
+
+    <tc:in id="in" value="Width should be 600px"/>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkWidth('page:in', 600);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-default-default-600px.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-default-default-600px.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-default-default-600px.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/horizontal-default-default-600px.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <tc:gridLayoutConstraint height="300px"/>
+    <f:facet name="layout">
+      <tc:gridLayout/>
+    </f:facet>
+
+    <tc:in id="in" value="Width should be 600px">
+      <tc:gridLayoutConstraint width="600px"/>
+    </tc:in>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkWidth('page:in', 600);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/nested.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/nested.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/nested.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/nested.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout columns="100px;200px;*;2*" rows="*;*;*;2*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="630px" height="500px"/>
+
+    <tc:in id="x_5" value="x_5">
+      <tc:gridLayoutConstraint rowSpan="3"/>
+    </tc:in>
+
+    <tc:in id="x_6" value="x_6"/>
+
+    <tc:in id="x_13" value="x_13">
+      <tc:gridLayoutConstraint rowSpan="2"/>
+    </tc:in>
+
+    <tc:panel id="x_14">
+      <tc:gridLayoutConstraint rowSpan="2"/>
+      <f:facet name="layout">
+        <tc:gridLayout columns="130px;*"/>
+      </f:facet>
+      <tc:in id="x_14_a" value="x_14_a"/>
+      <tc:in id="x_14_b" value="x_14_b"/>
+    </tc:panel>
+
+    <tc:panel id="x_7">
+      <f:facet name="layout">
+        <tc:gridLayout columns="*;2*"/>
+      </f:facet>
+      <tc:in id="x_7_a" value="x_7_a"/>
+      <tc:in id="x_7_b" value="x_7_b"/>
+    </tc:panel>
+
+    <tc:panel id="x_10">
+      <f:facet name="layout">
+        <tc:gridLayout columns="4*;*"/>
+      </f:facet>
+      <tc:in id="x_10_a" value="x_10_a"/>
+      <tc:in id="x_10_b" value="x_10_b"/>
+    </tc:panel>
+
+    <tc:in id="x_17" value="x_17">
+      <tc:gridLayoutConstraint columnSpan="2"/>
+    </tc:in>
+
+    <tc:script file="script/test-utils.js"/>
+
+    <tc:script onload="checkLayout('page:x_5', 0, 0, 100, 300);"/>
+    <tc:script onload="checkLayout('page:x_6', 100, 0, 200, 100);"/>
+    <tc:script onload="checkLayout('page:x_13', 300, 0, 110, 200);"/>
+    <tc:script onload="checkLayout('page:x_14', 410, 0, 220, 200);"/>
+    <tc:script onload="checkLayout('page:x_14_a', 0, 0, 130, 200);"/>
+    <tc:script onload="checkLayout('page:x_14_b', 130, 0, 90, 200);"/>
+    <!--todo: test the other controlls ...-->
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-10x10-span.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-10x10-span.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-10x10-span.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-10x10-span.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout rows="*;*;*;*;*;*;*;*;*;*" columns="*;*;*;*;*;*;*;*;*;*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="1000px" height="1000px"/>
+
+    <tc:in id="in-0" value="0">
+        <tc:gridLayoutConstraint columnSpan="1" rowSpan="9"/>
+    </tc:in>
+    <tc:in id="in-1" value="1">
+        <tc:gridLayoutConstraint columnSpan="9" rowSpan="1"/>
+    </tc:in>
+    <tc:in id="in-2" value="2">
+        <tc:gridLayoutConstraint columnSpan="7" rowSpan="1"/>
+    </tc:in>
+    <tc:in id="in-3" value="3">
+        <tc:gridLayoutConstraint columnSpan="1" rowSpan="7"/>
+    </tc:in>
+    <tc:in id="in-4" value="4">
+        <tc:gridLayoutConstraint columnSpan="1" rowSpan="9"/>
+    </tc:in>
+    <tc:in id="in-5" value="5">
+        <tc:gridLayoutConstraint columnSpan="1" rowSpan="7"/>
+    </tc:in>
+    <tc:in id="in-6" value="6">
+        <tc:gridLayoutConstraint columnSpan="2" rowSpan="1"/>
+    </tc:in>
+    <tc:in id="in-7" value="7">
+        <tc:gridLayoutConstraint columnSpan="1" rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-8" value="8">
+        <tc:gridLayoutConstraint columnSpan="2" rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-9" value="9">
+        <tc:gridLayoutConstraint columnSpan="1" rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-10" value="10">
+        <tc:gridLayoutConstraint columnSpan="2" rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-11" value="11">
+        <tc:gridLayoutConstraint columnSpan="2" rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-12" value="12">
+        <tc:gridLayoutConstraint columnSpan="2" rowSpan="1"/>
+    </tc:in>
+    <tc:in id="in-13" value="13">
+        <tc:gridLayoutConstraint columnSpan="2" rowSpan="1"/>
+    </tc:in>
+    <tc:in id="in-14" value="14">
+        <tc:gridLayoutConstraint columnSpan="2" rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-15" value="15">
+        <tc:gridLayoutConstraint columnSpan="1" rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-16" value="16">
+        <tc:gridLayoutConstraint columnSpan="2" rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-17" value="17">
+        <tc:gridLayoutConstraint columnSpan="1" rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-18" value="18">
+        <tc:gridLayoutConstraint columnSpan="2" rowSpan="1"/>
+    </tc:in>
+    <tc:in id="in-19" value="19">
+        <tc:gridLayoutConstraint columnSpan="7" rowSpan="1"/>
+    </tc:in>
+    <tc:in id="in-20" value="20">
+        <tc:gridLayoutConstraint columnSpan="9" rowSpan="1"/>
+    </tc:in>
+
+    <tc:script file="script/test-utils.js"/>
+
+    <!--todo-->
+    <tc:script onload="checkLayout('page:in-0', 0, 0, 100, 900);"/>
+    <tc:script onload="checkLayout('page:in-1', 100, 0, 900, 100);"/>
+    <tc:script onload="checkLayout('page:in-2', 100, 100, 700, 100);"/>
+    <tc:script onload="checkLayout('page:in-3', 800, 100, 100, 700);"/>
+    <tc:script onload="checkLayout('page:in-4', 900, 100, 100, 900);"/>
+    <tc:script onload="checkLayout('page:in-5', 100, 200, 100, 700);"/>
+    <tc:script onload="checkLayout('page:in-6', 200, 200, 200, 100);"/>
+    <tc:script onload="checkLayout('page:in-7', 400, 200, 100, 200);"/>
+    <tc:script onload="checkLayout('page:in-8', 500, 200, 200, 200);"/>
+    <tc:script onload="checkLayout('page:in-9', 700, 200, 100, 200);"/>
+    <tc:script onload="checkLayout('page:in-10', 200, 300, 200, 200);"/>
+    <tc:script onload="checkLayout('page:in-11', 400, 400, 200, 200);"/>
+    <tc:script onload="checkLayout('page:in-12', 600, 400, 200, 100);"/>
+    <tc:script onload="checkLayout('page:in-13', 200, 500, 200, 100);"/>
+    <tc:script onload="checkLayout('page:in-14', 600, 500, 200, 200);"/>
+    <tc:script onload="checkLayout('page:in-15', 200, 600, 100, 200);"/>
+    <tc:script onload="checkLayout('page:in-16', 300, 600, 200, 200);"/>
+    <tc:script onload="checkLayout('page:in-17', 500, 600, 100, 200);"/>
+    <tc:script onload="checkLayout('page:in-18', 600, 700, 200, 100);"/>
+    <tc:script onload="checkLayout('page:in-19', 200, 800, 700, 100);"/>
+    <tc:script onload="checkLayout('page:in-20', 0, 900, 900, 100);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-out.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-out.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-out.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-out.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout rows="2*;*" columns="2*;*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="600px" height="600px"/>
+
+    <tc:out id="out-0" value="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque consequat, libero eget porta mattis, risus velit congue magna, at posuere sem orci vitae turpis. Integer pulvinar. Cras libero. Proin vestibulum tempor urna. Nulla odio nisl, auctor vitae, faucibus pharetra, feugiat eget, justo. Suspendisse at tellus non justo dictum tincidunt."/>
+    <tc:out id="out-1" value="Aenean placerat nunc id tortor. Donec mollis ornare pede. Vestibulum ut arcu et dolor auctor varius. Praesent tincidunt, eros quis vulputate facilisis, orci turpis sollicitudin justo, id faucibus nunc orci sed purus. Proin ligula erat, sollicitudin id, rhoncus eget, nonummy sit amet, risus. Aenean arcu lorem, facilisis et, posuere sed, ultrices tincidunt, nunc. Sed ac massa. Quisque lacinia. Donec quis nibh."/>
+    <tc:out id="out-2" value="Aenean ac diam eget mi feugiat pulvinar. Etiam orci. Aliquam nec arcu nec eros ornare pulvinar. Sed nec velit. Ut ut orci."/>
+    <tc:out id="out-3" value="Nulla varius. Maecenas feugiat. Etiam varius ipsum et orci. Ut consectetuer odio sit amet libero. Nulla iaculis adipiscing purus. Maecenas a sed."/>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkLayout('page:out-0', 0, 0, 400, 400);"/>
+    <tc:script onload="checkLayout('page:out-1', 400, 0, 200, 400);"/>
+    <tc:script onload="checkLayout('page:out-2', 0, 400, 400, 200);"/>
+    <tc:script onload="checkLayout('page:out-3', 400, 400, 200, 200);"/>
+    
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-bottom.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-bottom.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-bottom.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-bottom.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout rows="2*;*" columns="2*;*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="600px" height="600px"/>
+
+    <tc:in id="in-0" value="0"/>
+    <tc:in id="in-1" value="1"/>
+    <tc:in id="in-2" value="2">
+      <tc:gridLayoutConstraint columnSpan="2"/>
+    </tc:in>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkLayout('page:in-0', 0, 0, 400, 400);"/>
+    <tc:script onload="checkLayout('page:in-1', 400, 0, 200, 400);"/>
+    <tc:script onload="checkLayout('page:in-2', 0, 400, 600, 200);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-left.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-left.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-left.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-left.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout rows="2*;*" columns="2*;*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="600px" height="600px"/>
+
+    <tc:in id="in-0" value="0">
+      <tc:gridLayoutConstraint rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-1" value="1"/>
+    <tc:in id="in-2" value="2"/>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkLayout('page:in-0', 0, 0, 400, 600);"/>
+    <tc:script onload="checkLayout('page:in-1', 400, 0, 200, 400);"/>
+    <tc:script onload="checkLayout('page:in-2', 400, 400, 200, 200);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-right.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-right.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-right.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-right.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout rows="2*;*" columns="2*;*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="600px" height="600px"/>
+
+    <tc:in id="in-0" value="0"/>
+    <tc:in id="in-1" value="1">
+      <tc:gridLayoutConstraint rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-2" value="2"/>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkLayout('page:in-0', 0, 0, 400, 400);"/>
+    <tc:script onload="checkLayout('page:in-1', 400, 0, 200, 600);"/>
+    <tc:script onload="checkLayout('page:in-2', 0, 400, 400, 200);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-top.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-top.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-top.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2-span-top.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout rows="2*;*" columns="2*;*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="600px" height="600px"/>
+
+    <tc:in id="in-0" value="0">
+        <tc:gridLayoutConstraint columnSpan="2"/>
+    </tc:in>
+    <tc:in id="in-1" value="1"/>
+    <tc:in id="in-2" value="2"/>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkLayout('page:in-0', 0, 0, 600, 400);"/>
+    <tc:script onload="checkLayout('page:in-1', 0, 400, 400, 200);"/>
+    <tc:script onload="checkLayout('page:in-2', 400, 400, 200, 200);"/>
+
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-2x2.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout rows="2*;*" columns="2*;*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="600px" height="600px"/>
+
+    <tc:in id="in-0" value="0"/>
+    <tc:in id="in-1" value="1"/>
+    <tc:in id="in-2" value="2"/>
+    <tc:in id="in-3" value="3"/>
+
+    <tc:script file="script/test-utils.js"/>
+    <tc:script onload="checkLayout('page:in-0', 0, 0, 400, 400);"/>
+    <tc:script onload="checkLayout('page:in-1', 400, 0, 200, 400);"/>
+    <tc:script onload="checkLayout('page:in-2', 0, 400, 400, 200);"/>
+    <tc:script onload="checkLayout('page:in-3', 400, 400, 200, 200);"/>
+    
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-4x4-span-steps.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-4x4-span-steps.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-4x4-span-steps.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/gridLayout/position-4x4-span-steps.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page id="page">
+    <f:facet name="layout">
+      <tc:gridLayout columns="6*;9*;13*;2*" rows="4*;11*;10*;5*"/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="300px" height="300px"/>
+
+    <tc:in id="in-0" value="0"/>
+    <tc:in id="in-1" value="1">
+      <tc:gridLayoutConstraint rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-2" value="2">
+      <tc:gridLayoutConstraint columnSpan="2"/>
+    </tc:in>
+    <tc:in id="in-3" value="3"/>
+    <tc:in id="in-4" value="4">
+      <tc:gridLayoutConstraint rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-5" value="5"/>
+    <tc:in id="in-6" value="6">
+      <tc:gridLayoutConstraint columnSpan="2"/>
+    </tc:in>
+    <tc:in id="in-7" value="7">
+      <tc:gridLayoutConstraint rowSpan="2"/>
+    </tc:in>
+    <tc:in id="in-8" value="8"/>
+    <tc:in id="in-9" value="9">
+      <tc:gridLayoutConstraint columnSpan="2"/>
+    </tc:in>
+
+    <tc:script file="script/test-utils.js"/>
+
+    <!--todo-->
+    <tc:script onload="checkLayout('page:in-0', 0, 0, 60, 40);"/>
+    <tc:script onload="checkLayout('page:in-1', 60, 0, 90, 150);"/>
+    <tc:script onload="checkLayout('page:in-2', 150, 0, 150, 40);"/>
+    <tc:script onload="checkLayout('page:in-3', 0, 40, 60, 110);"/>
+    <tc:script onload="checkLayout('page:in-4', 150, 40, 130, 210);"/>
+    <tc:script onload="checkLayout('page:in-5', 280, 40, 20, 110);"/>
+    <tc:script onload="checkLayout('page:in-6', 0, 150, 150, 100);"/>
+    <tc:script onload="checkLayout('page:in-7', 280, 150, 20, 150);"/>
+    <tc:script onload="checkLayout('page:in-8', 0, 250, 60, 50);"/>
+    <tc:script onload="checkLayout('page:in-9', 60, 250, 220, 50);"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/in/in.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/in/in.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/in/in.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/in/in.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page>
+    <f:facet name="layout">
+      <tc:gridLayout/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="600px" height="300px"/>
+
+    <tc:in value="Some Value"/>
+
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tc/tabGroup/simple.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tc/tabGroup/simple.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tc/tabGroup/simple.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tc/tabGroup/simple.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:h="http://java.sun.com/jsf/html"
+    xmlns:f="http://java.sun.com/jsf/core">
+  <tc:page>
+    <f:facet name="layout">
+      <tc:gridLayout/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="600px" height="300px"/>
+
+    <tc:tabGroup>
+      <tc:tab label="Tab 0">
+      </tc:tab>
+      <tc:tab label="Tab 1">
+      </tc:tab>
+    </tc:tabGroup>
+  </tc:page>
+</f:view>

Added: myfaces/tobago/trunk/example/test/src/main/webapp/tx/in/in.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/test/src/main/webapp/tx/in/in.xhtml?rev=788668&view=auto
==============================================================================
--- myfaces/tobago/trunk/example/test/src/main/webapp/tx/in/in.xhtml (added)
+++ myfaces/tobago/trunk/example/test/src/main/webapp/tx/in/in.xhtml Fri Jun 26 12:13:41 2009
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<f:view
+    xmlns:jsp="http://java.sun.com/JSP/Page"
+    xmlns:tc="http://myfaces.apache.org/tobago/component"
+    xmlns:tx="http://myfaces.apache.org/tobago/extension"
+    xmlns:ui="http://java.sun.com/jsf/facelets"
+    xmlns:f="http://java.sun.com/jsf/core">
+
+  <tc:page>
+    <f:facet name="layout">
+      <tc:gridLayout/>
+    </f:facet>
+    <tc:gridLayoutConstraint width="600px" height="300px"/>
+
+    <tx:in label="Label" value="Some Value"/>
+
+  </tc:page>
+</f:view>

Modified: myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/AbstractTobagoTagLibrary.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/AbstractTobagoTagLibrary.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/AbstractTobagoTagLibrary.java (original)
+++ myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/AbstractTobagoTagLibrary.java Fri Jun 26 12:13:41 2009
@@ -18,6 +18,7 @@
  */
 
 import com.sun.facelets.tag.AbstractTagLibrary;
+import org.apache.myfaces.tobago.component.Tags;
 import org.apache.myfaces.tobago.validator.FileItemValidator;
 import org.apache.myfaces.tobago.validator.SubmittedValueLengthValidator;
 
@@ -35,6 +36,7 @@
     addTagHandler("popupReference", PopupReferenceHandler.class);
     addTagHandler("loadBundle", LoadBundleHandler.class);
     addTagHandler("converter", ConverterHandler.class);
+    addTagHandler(Tags.GRID_LAYOUT_CONSTRAINT, GridLayoutConstraintHandler.class);
     addValidator("validateFileItem", FileItemValidator.VALIDATOR_ID);
     addValidator("validateSubmittedValueLength", SubmittedValueLengthValidator.VALIDATOR_ID);
     addTobagoComponent("script", "org.apache.myfaces.tobago.Script", "Script", ScriptHandler.class);

Copied: myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/GridLayoutConstraintHandler.java (from r766599, myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/PopupReferenceHandler.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/GridLayoutConstraintHandler.java?p2=myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/GridLayoutConstraintHandler.java&p1=myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/PopupReferenceHandler.java&r1=766599&r2=788668&rev=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/PopupReferenceHandler.java (original)
+++ myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/GridLayoutConstraintHandler.java Fri Jun 26 12:13:41 2009
@@ -20,41 +20,158 @@
 import com.sun.facelets.FaceletContext;
 import com.sun.facelets.tag.TagAttribute;
 import com.sun.facelets.tag.TagConfig;
-import com.sun.facelets.tag.TagException;
 import com.sun.facelets.tag.TagHandler;
-import com.sun.facelets.tag.jsf.ComponentSupport;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.tobago.component.Attributes;
-import org.apache.myfaces.tobago.event.PopupActionListener;
+import org.apache.myfaces.tobago.layout.Component;
+import org.apache.myfaces.tobago.layout.Measure;
 
 import javax.el.ELException;
 import javax.faces.FacesException;
-import javax.faces.component.ActionSource;
 import javax.faces.component.UIComponent;
 import java.io.IOException;
 
-/*
- * User: bommel
- * Date: Jan 4, 2007
- * Time: 6:25:09 PM
- */
-public class PopupReferenceHandler extends TagHandler {
+public class GridLayoutConstraintHandler extends TagHandler {
 
-  private final TagAttribute forComponent;
+  private static final Log LOG = LogFactory.getLog(GridLayoutConstraintHandler.class);
 
-  public PopupReferenceHandler(TagConfig config) {
+  private final TagAttribute columnSpan;
+  private final TagAttribute rowSpan;
+
+  private final TagAttribute width;
+  private final TagAttribute height;
+
+  private final TagAttribute minimumWidth;
+  private final TagAttribute minimumHeight;
+
+  private final TagAttribute preferredWidth;
+  private final TagAttribute preferredHeight;
+
+  private final TagAttribute maximumWidth;
+  private final TagAttribute maximumHeight;
+
+  public GridLayoutConstraintHandler(TagConfig config) {
     super(config);
-    forComponent = getAttribute(Attributes.FOR);
+    columnSpan = getAttribute(Attributes.COLUMN_SPAN);
+    rowSpan = getAttribute(Attributes.ROW_SPAN);
+    width = getAttribute(Attributes.WIDTH);
+    height = getAttribute(Attributes.HEIGHT);
+    minimumWidth = getAttribute(Attributes.MINIMUM_WIDTH);
+    minimumHeight = getAttribute(Attributes.MINIMUM_HEIGHT);
+    preferredWidth = getAttribute(Attributes.PREFERRED_WIDTH);
+    preferredHeight = getAttribute(Attributes.PREFERRED_HEIGHT);
+    maximumWidth = getAttribute(Attributes.MAXIMUM_WIDTH);
+    maximumHeight = getAttribute(Attributes.MAXIMUM_HEIGHT);
   }
 
   public void apply(FaceletContext faceletContext, UIComponent parent)
       throws IOException, FacesException, ELException {
-    if (parent instanceof ActionSource) {
-      if (ComponentSupport.isNew(parent)) {
-        ActionSource actionSource = (ActionSource) parent;
-        actionSource.addActionListener(new PopupActionListener(forComponent.getValue()));
-      }
+
+    if (parent instanceof Component) {
+      Component component = (Component) parent;
+
+        if (columnSpan != null) {
+          LOG.error(columnSpan.getValue());
+          if (columnSpan.isLiteral()) {
+            component.setColumnSpan(Integer.valueOf(columnSpan.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.COLUMN_SPAN,
+                faceletContext.getFacesContext().getApplication().createValueBinding(columnSpan.getValue()));
+          }
+        }
+
+        if (rowSpan != null) {
+          LOG.error(rowSpan.getValue());
+          if (rowSpan.isLiteral()) {
+            component.setRowSpan(Integer.valueOf(rowSpan.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.ROW_SPAN,
+                faceletContext.getFacesContext().getApplication().createValueBinding(rowSpan.getValue()));
+          }
+        }
+
+        if (width != null) {
+          LOG.error(width.getValue());
+          if (width.isLiteral()) {
+            component.setWidth(Measure.parse(width.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.WIDTH,
+                faceletContext.getFacesContext().getApplication().createValueBinding(width.getValue()));
+          }
+        }
+
+        if (height != null) {
+          LOG.error(height.getValue());
+          if (height.isLiteral()) {
+            component.setHeight(Measure.parse(height.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.HEIGHT,
+                faceletContext.getFacesContext().getApplication().createValueBinding(height.getValue()));
+          }
+        }
+
+        if (minimumWidth != null) {
+          LOG.error(minimumWidth.getValue());
+          if (minimumWidth.isLiteral()) {
+            component.setMinimumWidth(Measure.parse(minimumWidth.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.MINIMUM_WIDTH,
+                faceletContext.getFacesContext().getApplication().createValueBinding(minimumWidth.getValue()));
+          }
+        }
+
+        if (minimumHeight != null) {
+          LOG.error(minimumHeight.getValue());
+          if (minimumHeight.isLiteral()) {
+            component.setMinimumHeight(Measure.parse(minimumHeight.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.MINIMUM_HEIGHT,
+                faceletContext.getFacesContext().getApplication().createValueBinding(minimumHeight.getValue()));
+          }
+        }
+
+        if (preferredWidth != null) {
+          LOG.error(preferredWidth.getValue());
+          if (preferredWidth.isLiteral()) {
+            component.setPreferredWidth(Measure.parse(preferredWidth.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.PREFERRED_WIDTH,
+                faceletContext.getFacesContext().getApplication().createValueBinding(preferredWidth.getValue()));
+          }
+        }
+
+        if (preferredHeight != null) {
+          LOG.error(preferredHeight.getValue());
+          if (preferredHeight.isLiteral()) {
+            component.setPreferredHeight(Measure.parse(preferredHeight.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.PREFERRED_HEIGHT,
+                faceletContext.getFacesContext().getApplication().createValueBinding(preferredHeight.getValue()));
+          }
+        }
+
+        if (maximumWidth != null) {
+          LOG.error(maximumWidth.getValue());
+          if (maximumWidth.isLiteral()) {
+            component.setMaximumWidth(Measure.parse(maximumWidth.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.MAXIMUM_WIDTH,
+                faceletContext.getFacesContext().getApplication().createValueBinding(maximumWidth.getValue()));
+          }
+        }
+
+        if (maximumHeight != null) {
+          LOG.error(maximumHeight.getValue());
+          if (maximumHeight.isLiteral()) {
+            component.setMaximumHeight(Measure.parse(maximumHeight.getValue()));
+          } else {
+            parent.setValueBinding(Attributes.MAXIMUM_HEIGHT,
+                faceletContext.getFacesContext().getApplication().createValueBinding(maximumHeight.getValue()));
+          }
+        }
     } else {
-      throw new TagException(tag, "Parent is not of type ActionSource, type is: " + parent);
+      LOG.warn("");
     }
   }
 }

Modified: myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/PageRule.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/PageRule.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/PageRule.java (original)
+++ myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/PageRule.java Fri Jun 26 12:13:41 2009
@@ -18,22 +18,14 @@
  */
 
 import com.sun.facelets.FaceletContext;
-import com.sun.facelets.el.LegacyValueBinding;
 import com.sun.facelets.tag.MetaRule;
 import com.sun.facelets.tag.Metadata;
 import com.sun.facelets.tag.MetadataTarget;
 import com.sun.facelets.tag.TagAttribute;
 import org.apache.myfaces.tobago.component.Attributes;
 import org.apache.myfaces.tobago.component.UIPage;
-import org.apache.myfaces.tobago.util.ComponentUtil;
+import org.apache.myfaces.tobago.layout.Measure;
 
-import javax.faces.component.UIComponent;
-
-/*
- * User: bommel
- * Date: Jan 2, 2007
- * Time: 3:35:58 PM
- */
 public class PageRule extends MetaRule {
   public static final PageRule INSTANCE = new PageRule();
 
@@ -53,6 +45,7 @@
   }
 
   // TODO remove this
+/*
   static final class PageDimensionExpression extends Metadata {
     private final String name;
     private final TagAttribute attr;
@@ -68,7 +61,7 @@
       ((UIComponent) instance).setValueBinding(name, new LegacyValueBinding(attr.getValueExpression(ctx, type)));
     }
   }
-
+*/
   static final class PageWidthMapper extends Metadata {
     private final TagAttribute attribute;
 
@@ -78,7 +71,7 @@
 
     public void applyMetadata(FaceletContext ctx, Object instance) {
       UIPage page = (UIPage) instance;
-      page.setWidth(new Integer(ComponentUtil.removePx(attribute.getValue())));
+      page.setWidth(Measure.parse(attribute.getValue()));
     }
   }
 
@@ -91,7 +84,7 @@
 
     public void applyMetadata(FaceletContext ctx, Object instance) {
       UIPage page = (UIPage) instance;
-      page.setHeight(new Integer(ComponentUtil.removePx(attribute.getValue())));
+      page.setHeight(Measure.parse(attribute.getValue()));
     }
   }
 }

Modified: myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java (original)
+++ myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/TobagoComponentHandler.java Fri Jun 26 12:13:41 2009
@@ -31,10 +31,6 @@
 
 import javax.faces.component.UIComponent;
 
-/*
- * Date: 15.04.2006
- * Time: 13:31:39
- */
 public class TobagoComponentHandler extends ComponentHandler {
 
   public TobagoComponentHandler(ComponentConfig componentConfig) {
@@ -63,8 +59,8 @@
     }
     return metaRuleset;
   }
-  protected void onComponentCreated(FaceletContext context, UIComponent component,
-      UIComponent parent) {
+
+  protected void onComponentCreated(FaceletContext context, UIComponent component, UIComponent parent) {
     if (component instanceof OnComponentCreated
         && component.getAttributes().get(OnComponentCreated.MARKER) == null) {
       component.getAttributes().put(OnComponentCreated.MARKER, Boolean.TRUE);

Modified: myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java (original)
+++ myfaces/tobago/trunk/extension/facelets/src/main/java/org/apache/myfaces/tobago/facelets/extension/TobagoLabelExtensionHandler.java Fri Jun 26 12:13:41 2009
@@ -37,7 +37,7 @@
 import org.apache.myfaces.tobago.facelets.SuggestMethodRule;
 import org.apache.myfaces.tobago.facelets.SupportsMarkupRule;
 import org.apache.myfaces.tobago.util.ComponentUtil;
-import org.apache.myfaces.tobago.util.LayoutUtil;
+import org.apache.myfaces.tobago.util.LayoutUtils;
 
 import javax.el.ELException;
 import javax.el.ValueExpression;
@@ -186,7 +186,7 @@
     gridLayout.setRendererType(RendererTypes.GRID_LAYOUT);
     if (labelWidthAttribute != null) {
       String columns = getColumns(labelWidthAttribute.getValue(faceletContext));
-      if (!LayoutUtil.checkTokens(columns)) {
+      if (!LayoutUtils.checkTokens(columns)) {
         LOG.warn("Illegal value for columns = \"" + columns + "\" replacing with default: \"" + DEFAULT_COLUMNS + "\"");
         columns = DEFAULT_COLUMNS;
       }
@@ -195,8 +195,8 @@
       gridLayout.setColumns(getColumns("fixed"));
     }
     gridLayout.setRows(getRows());
-
     gridLayout.setId(root.createUniqueId());
+    gridLayout.onComponentCreated(faceletContext.getFacesContext(), gridLayout);
     panel.getFacets().put(Facets.LAYOUT, gridLayout);
   }
 

Modified: myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/FileExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/FileExtensionTag.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/FileExtensionTag.java (original)
+++ myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/FileExtensionTag.java Fri Jun 26 12:13:41 2009
@@ -20,12 +20,20 @@
 import org.apache.myfaces.tobago.apt.annotation.ExtensionTag;
 import org.apache.myfaces.tobago.apt.annotation.Tag;
 import org.apache.myfaces.tobago.internal.taglib.FileTag;
-import org.apache.myfaces.tobago.taglib.decl.InputTagDeclaration;
+import org.apache.myfaces.tobago.taglib.decl.HasConverterMessage;
 import org.apache.myfaces.tobago.taglib.decl.HasIdBindingAndRendered;
 import org.apache.myfaces.tobago.taglib.decl.HasLabel;
 import org.apache.myfaces.tobago.taglib.decl.HasLabelWidth;
+import org.apache.myfaces.tobago.taglib.decl.HasOnchange;
+import org.apache.myfaces.tobago.taglib.decl.HasRequiredMessage;
+import org.apache.myfaces.tobago.taglib.decl.HasTabIndex;
 import org.apache.myfaces.tobago.taglib.decl.HasTip;
+import org.apache.myfaces.tobago.taglib.decl.HasValidator;
+import org.apache.myfaces.tobago.taglib.decl.HasValidatorMessage;
+import org.apache.myfaces.tobago.taglib.decl.HasValue;
+import org.apache.myfaces.tobago.taglib.decl.HasValueChangeListener;
 import org.apache.myfaces.tobago.taglib.decl.IsDisabled;
+import org.apache.myfaces.tobago.taglib.decl.IsFocus;
 import org.apache.myfaces.tobago.taglib.decl.IsRequired;
 
 import javax.servlet.jsp.JspException;
@@ -48,11 +56,12 @@
  * &lt;/tc:panel>
  * </pre>
  */
-
 @Tag(name = "file")
 @ExtensionTag(baseClassName = "org.apache.myfaces.tobago.internal.taglib.FileTag")
 public class FileExtensionTag extends BodyTagSupport
-    implements InputTagDeclaration, HasIdBindingAndRendered, IsDisabled,
+    implements HasValidator, HasOnchange, HasValue, HasValueChangeListener,
+    HasValidatorMessage, HasConverterMessage, HasRequiredMessage, HasTabIndex, IsFocus,
+    HasIdBindingAndRendered, IsDisabled,
     HasTip, HasLabel, HasLabelWidth, IsRequired {
 
   private String binding;

Modified: myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/LabelExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/LabelExtensionTag.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/LabelExtensionTag.java (original)
+++ myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/LabelExtensionTag.java Fri Jun 26 12:13:41 2009
@@ -28,7 +28,7 @@
 import org.apache.myfaces.tobago.taglib.decl.HasLabelWidth;
 import org.apache.myfaces.tobago.taglib.decl.HasTip;
 import org.apache.myfaces.tobago.taglib.decl.HasValue;
-import org.apache.myfaces.tobago.util.LayoutUtil;
+import org.apache.myfaces.tobago.util.LayoutUtils;
 
 import javax.faces.webapp.FacetTag;
 import javax.faces.webapp.UIComponentTag;
@@ -136,7 +136,7 @@
   }
 
   void setColumns(String columns) {
-    if (!(UIComponentTag.isValueReference(columns) || LayoutUtil.checkTokens(columns))) {
+    if (!(UIComponentTag.isValueReference(columns) || LayoutUtils.checkTokens(columns))) {
       LOG.warn("Illegal value for columns = \"" + columns + "\" replacing with default: \"" + DEFAULT_COLUMNS + "\"");
       this.columns = DEFAULT_COLUMNS;
     } else {

Modified: myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/SelectManyCheckboxExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/SelectManyCheckboxExtensionTag.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/SelectManyCheckboxExtensionTag.java (original)
+++ myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/SelectManyCheckboxExtensionTag.java Fri Jun 26 12:13:41 2009
@@ -17,34 +17,34 @@
  * limitations under the License.
  */
 
+import org.apache.myfaces.tobago.apt.annotation.ExtensionTag;
+import org.apache.myfaces.tobago.apt.annotation.Tag;
+import org.apache.myfaces.tobago.internal.taglib.SelectManyCheckboxTag;
+import org.apache.myfaces.tobago.taglib.decl.HasBinding;
+import org.apache.myfaces.tobago.taglib.decl.HasConverter;
+import org.apache.myfaces.tobago.taglib.decl.HasConverterMessage;
 import org.apache.myfaces.tobago.taglib.decl.HasId;
-import org.apache.myfaces.tobago.taglib.decl.HasValue;
-import org.apache.myfaces.tobago.taglib.decl.HasValueChangeListener;
-import org.apache.myfaces.tobago.taglib.decl.IsDisabled;
-import org.apache.myfaces.tobago.taglib.decl.IsInline;
 import org.apache.myfaces.tobago.taglib.decl.HasLabel;
 import org.apache.myfaces.tobago.taglib.decl.HasLabelWidth;
-import org.apache.myfaces.tobago.taglib.decl.IsRendered;
-import org.apache.myfaces.tobago.taglib.decl.HasBinding;
+import org.apache.myfaces.tobago.taglib.decl.HasMarkup;
+import org.apache.myfaces.tobago.taglib.decl.HasOnchange;
+import org.apache.myfaces.tobago.taglib.decl.HasRenderRange;
+import org.apache.myfaces.tobago.taglib.decl.HasRequiredMessage;
+import org.apache.myfaces.tobago.taglib.decl.HasTabIndex;
 import org.apache.myfaces.tobago.taglib.decl.HasTip;
-import org.apache.myfaces.tobago.taglib.decl.HasConverter;
 import org.apache.myfaces.tobago.taglib.decl.HasValidator;
-import org.apache.myfaces.tobago.taglib.decl.HasOnchange;
-import org.apache.myfaces.tobago.taglib.decl.IsReadonly;
-import org.apache.myfaces.tobago.taglib.decl.HasMarkup;
+import org.apache.myfaces.tobago.taglib.decl.HasValidatorMessage;
+import org.apache.myfaces.tobago.taglib.decl.HasValue;
+import org.apache.myfaces.tobago.taglib.decl.HasValueChangeListener;
+import org.apache.myfaces.tobago.taglib.decl.IsDisabled;
 import org.apache.myfaces.tobago.taglib.decl.IsFocus;
+import org.apache.myfaces.tobago.taglib.decl.IsInline;
+import org.apache.myfaces.tobago.taglib.decl.IsReadonly;
+import org.apache.myfaces.tobago.taglib.decl.IsRendered;
 import org.apache.myfaces.tobago.taglib.decl.IsRequired;
-import org.apache.myfaces.tobago.taglib.decl.HasTabIndex;
-import org.apache.myfaces.tobago.taglib.decl.HasRenderRange;
-import org.apache.myfaces.tobago.taglib.decl.HasValidatorMessage;
-import org.apache.myfaces.tobago.taglib.decl.HasRequiredMessage;
-import org.apache.myfaces.tobago.taglib.decl.HasConverterMessage;
-import org.apache.myfaces.tobago.internal.taglib.SelectManyCheckboxTag;
-import org.apache.myfaces.tobago.apt.annotation.Tag;
-import org.apache.myfaces.tobago.apt.annotation.ExtensionTag;
 
-import javax.servlet.jsp.tagext.BodyTagSupport;
 import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.tagext.BodyTagSupport;
 
 /**
  * Render a group of checkboxes.
@@ -52,7 +52,7 @@
 @Tag(name = "selectManyCheckbox")
 @ExtensionTag(baseClassName = "org.apache.myfaces.tobago.internal.taglib.SelectManyCheckboxTag")
 public class SelectManyCheckboxExtensionTag extends BodyTagSupport
-    implements HasId, HasValue, HasValueChangeListener, IsDisabled, IsInline, //HasDeprecatedHeight,
+    implements HasId, HasValue, HasValueChangeListener, IsDisabled, IsInline,
     HasLabel, HasLabelWidth, IsRendered, HasBinding, HasTip, HasConverter, HasValidator, HasOnchange,
     HasValidatorMessage, HasRequiredMessage, HasConverterMessage,
     IsReadonly, HasMarkup, IsFocus, IsRequired, HasTabIndex, HasRenderRange {

Modified: myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/SelectManyListboxExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/SelectManyListboxExtensionTag.java?rev=788668&r1=788667&r2=788668&view=diff
==============================================================================
--- myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/SelectManyListboxExtensionTag.java (original)
+++ myfaces/tobago/trunk/extension/tobago-taglib-extension/src/main/java/org/apache/myfaces/tobago/taglib/extension/SelectManyListboxExtensionTag.java Fri Jun 26 12:13:41 2009
@@ -22,15 +22,17 @@
 import org.apache.myfaces.tobago.internal.taglib.SelectManyListboxTag;
 import org.apache.myfaces.tobago.taglib.decl.HasBinding;
 import org.apache.myfaces.tobago.taglib.decl.HasConverter;
-import org.apache.myfaces.tobago.taglib.decl.HasDeprecatedHeight;
+import org.apache.myfaces.tobago.taglib.decl.HasConverterMessage;
 import org.apache.myfaces.tobago.taglib.decl.HasId;
 import org.apache.myfaces.tobago.taglib.decl.HasLabel;
 import org.apache.myfaces.tobago.taglib.decl.HasLabelWidth;
 import org.apache.myfaces.tobago.taglib.decl.HasMarkup;
 import org.apache.myfaces.tobago.taglib.decl.HasOnchange;
+import org.apache.myfaces.tobago.taglib.decl.HasRequiredMessage;
 import org.apache.myfaces.tobago.taglib.decl.HasTabIndex;
 import org.apache.myfaces.tobago.taglib.decl.HasTip;
 import org.apache.myfaces.tobago.taglib.decl.HasValidator;
+import org.apache.myfaces.tobago.taglib.decl.HasValidatorMessage;
 import org.apache.myfaces.tobago.taglib.decl.HasValue;
 import org.apache.myfaces.tobago.taglib.decl.HasValueChangeListener;
 import org.apache.myfaces.tobago.taglib.decl.IsDisabled;
@@ -39,26 +41,17 @@
 import org.apache.myfaces.tobago.taglib.decl.IsReadonly;
 import org.apache.myfaces.tobago.taglib.decl.IsRendered;
 import org.apache.myfaces.tobago.taglib.decl.IsRequired;
-import org.apache.myfaces.tobago.taglib.decl.HasValidatorMessage;
-import org.apache.myfaces.tobago.taglib.decl.HasRequiredMessage;
-import org.apache.myfaces.tobago.taglib.decl.HasConverterMessage;
 
 import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.tagext.BodyTagSupport;
 
-/*
- * Date: 16.12.2005
- * Time: 19:12:33
- */
-
 /**
  * Renders a multi selection option listbox with a label.
  */
-
 @Tag(name = "selectManyListbox")
 @ExtensionTag(baseClassName = "org.apache.myfaces.tobago.internal.taglib.SelectManyListboxTag")
 public class SelectManyListboxExtensionTag extends BodyTagSupport
-    implements HasId, HasValue, HasValueChangeListener, IsDisabled, HasDeprecatedHeight, IsInline,
+    implements HasId, HasValue, HasValueChangeListener, IsDisabled, IsInline,
     HasLabel, HasLabelWidth, IsRendered, HasBinding, HasTip, HasConverter, HasValidator, HasOnchange,
     HasValidatorMessage, HasRequiredMessage, HasConverterMessage,
     IsReadonly, HasMarkup, IsFocus, IsRequired, HasTabIndex {
@@ -74,7 +67,6 @@
   private String rendered;
   private String binding;
   private String tip;
-  private String height;
   private String converter;
   private String validator;
   private String labelWidth;
@@ -144,9 +136,6 @@
     if (id != null) {
       selectManyListboxTag.setId(id);
     }
-    if (height != null) {
-      selectManyListboxTag.setHeight(height);
-    }
     if (readonly != null) {
       selectManyListboxTag.setReadonly(readonly);
     }
@@ -191,7 +180,6 @@
     inline = null;
     label = null;
     labelWidth = null;
-    height = null;
     readonly = null;
     rendered = null;
     converter = null;
@@ -242,10 +230,6 @@
     this.label = label;
   }
 
-  public void setHeight(String height) {
-    this.height = height;
-  }
-
   public void setValidator(String validator) {
     this.validator = validator;
   }