Hi

I have another question: trinidad sandbox should be for 1.2 ?

My component works if I do a light change on LabelAndMessageRenderer, can I
change this class too?

This is the patch file:

Index:
src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/LabelAndMessageRenderer.java
===================================================================
---
src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/LabelAndMessageRenderer.java
(revision 614757)
+++
src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/LabelAndMessageRenderer.java
(working copy)
@@ -279,6 +279,27 @@
         }
       }

+      //This part is necessary to make work hspace on tr:tableFormLayout
+      Map<String, Object> requestMap = context.getExternalContext()
+          .getRequestMap();
+
+      Integer hspaceObject = (Integer) requestMap.get(
+              "org.apache.myfaces.trinidadinternal.TableFormHspace");
+
+      Boolean percentWidthObject = (Boolean) requestMap.get(
+              "org.apache.myfaces.trinidadinternal.TableFormPercentWidth");
+
+      if (hspaceObject != null){
+
+          rw.startElement("td", null);
+          if (percentWidthObject != null && percentWidthObject == true){
+              rw.writeAttribute("width", hspaceObject +"%", null);
+          }else{
+              rw.writeAttribute("width", hspaceObject, null);
+          }
+          rw.endElement("td");
+      }
+
       _renderFieldCell(context, arc, component, bean, labelExists,
                        needsPanelFormLayout, isInline);

@@ -787,7 +808,8 @@
   {
     return "org.apache.myfaces.trinidad.Form".equals(rendererType) ||
         "org.apache.myfaces.trinidad.FormLayout".equals(rendererType) ||
-        "org.apache.myfaces.trinidad.rich.Form".equals(rendererType);
+        "org.apache.myfaces.trinidad.rich.Form".equals(rendererType) ||
+        "org.apache.myfaces.trinidad.TableLayout".equals(rendererType);
   }


How does your comp differ from "panelFormLayout" ?

An example is this

                    <mycomp:tableFormLayout width="1000"
columns="1*;2*;1*;2*">
                        <tr:outputText value="Layout Example: Personal
Information" >
                            <f:attribute name="spanX" value="4" />
                        </tr:outputText>

                        <tr:selectOneChoice label="Salutation">
                            <f:selectItem itemLabel="1 Option" itemValue="1"
/>
                            <f:selectItem itemLabel="2 Option"
itemValue="2"/>
                        </tr:selectOneChoice>

                        <tr:outputText>
                            <f:attribute name="spanX" value="2" />
                        </tr:outputText>

                        <tr:inputText label="First Name" required="true"/>
                        <tr:inputText label="Last Name" required="true"/>

                        <tr:inputText label="c/o" required="true">
                            <f:attribute name="spanXItem" value="3" />
                        </tr:inputText>

                        <tr:inputText label="Street" required="true"/>
                        <tr:inputText label="No"  required="true"/>
                        <tr:inputText label="ZIP"  required="true"/>
                        <tr:inputText label="City"  required="true"/>
                        <tr:inputText label="Note" rows="4" required="true">
                            <f:attribute name="spanXItem" value="3" />
                        </tr:inputText>
                    </mycomp:tableFormLayout>

It calculates widths, heights  for each component and make all layout tasks
(colspan and others) more easy.

You can see an screenshot on TRINIDAD-115

regards

Leonardo Uribe

Reply via email to