[jboss-cvs] jboss-seam/src/ui/org/jboss/seam/ui ...
Gavin King
gavin.king at jboss.com
Sat Mar 17 14:20:07 EDT 2007
User: gavin
Date: 07/03/17 14:20:07
Modified: src/ui/org/jboss/seam/ui HtmlLayoutForm.java
Log:
make it work in IE
Revision Changes Path
1.5 +60 -8 jboss-seam/src/ui/org/jboss/seam/ui/HtmlLayoutForm.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: HtmlLayoutForm.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/ui/org/jboss/seam/ui/HtmlLayoutForm.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- HtmlLayoutForm.java 17 Mar 2007 17:32:34 -0000 1.4
+++ HtmlLayoutForm.java 17 Mar 2007 18:20:07 -0000 1.5
@@ -13,6 +13,9 @@
public static final String COMPONENT_TYPE = "org.jboss.seam.ui.HtmlLayoutForm";
public static final String COMPONENT_FAMILY = "org.jboss.seam.ui.LayoutForm";
+ private String labelColumnWidth = "20%";
+ private String fieldColumnWidth;
+
@Override
public String getFamily()
{
@@ -22,6 +25,9 @@
@Override
public void endElement(ResponseWriter writer) throws IOException
{
+ writer.startElement("div", this);
+ writer.writeAttribute("style", "clear: both;", null);
+ writer.endElement("div");
writer.endElement("div");
}
@@ -29,7 +35,6 @@
public void startElement(ResponseWriter writer) throws IOException
{
writer.startElement("div", this);
- writer.writeAttribute("style", "display: table;", null);
}
@Override
@@ -55,10 +60,10 @@
ResponseWriter writer = facesContext.getResponseWriter();
writer.startElement("div", this);
- writer.writeAttribute("style", "display: table-row;", null);
+ writer.writeAttribute("style", "clear: both;", null);
- writer.startElement("div", child);
- writer.writeAttribute("style", "display: table-cell; vertical-align: top", null);
+ writer.startElement("span", child);
+ writer.writeAttribute("style", "float: left; text-align: right; width: " + labelColumnWidth + ';', null);
renderLabel(facesContext, child);
UIComponent belowLabel = child.getFacet("belowLabel");
if (belowLabel != null)
@@ -67,10 +72,18 @@
JSF.renderChild(facesContext, belowLabel);
writer.endElement("div");
}
- writer.endElement("div");
+ writer.endElement("span");
- writer.startElement("div", this);
- writer.writeAttribute("style", "display: table-cell;", null);
+ writer.startElement("span", this);
+ if (fieldColumnWidth==null)
+ {
+ if ( !labelColumnWidth.endsWith("%") || labelColumnWidth.length()!=3 )
+ {
+ throw new IllegalStateException("you must explicitly specify fieldColumnWidth or use a percentage labelColumnWidth");
+ }
+ fieldColumnWidth = String.valueOf( 100 - Integer.parseInt( labelColumnWidth.substring(0, 2) ) ) + '%';
+ }
+ writer.writeAttribute("style", "float: right; text-align: left; width: " + fieldColumnWidth + ';', null);
JSF.renderChild(facesContext, child);
UIComponent belowField = child.getFacet("belowField");
if (belowField != null)
@@ -79,7 +92,7 @@
JSF.renderChild(facesContext, belowField);
writer.endElement("div");
}
- writer.endElement("div");
+ writer.endElement("span");
writer.endElement("div");
}
@@ -182,4 +195,43 @@
}
+ public String getLabelColumnWidth()
+ {
+ return labelColumnWidth;
+ }
+
+ public void setLabelColumnWidth(String labelColumnWidth)
+ {
+ this.labelColumnWidth = labelColumnWidth;
+ }
+
+ @Override
+ public void restoreState(FacesContext context, Object state)
+ {
+ Object[] array = (Object[]) state;
+ super.restoreState(context, array[0]);
+ labelColumnWidth = (String) array[1];
+ fieldColumnWidth = (String) array[3];
+ }
+
+ @Override
+ public Object saveState(FacesContext context)
+ {
+ Object[] state = new Object[3];
+ state[0] = super.saveState(context);
+ state[1] = labelColumnWidth;
+ state[2] = fieldColumnWidth;
+ return state;
+ }
+
+ public String getFieldColumnWidth()
+ {
+ return fieldColumnWidth;
+ }
+
+ public void setFieldColumnWidth(String fieldColumnWidth)
+ {
+ this.fieldColumnWidth = fieldColumnWidth;
+ }
+
}
More information about the jboss-cvs-commits
mailing list