import com.google.gwt.user.client.ui.ComplexPanel;\r
import com.google.gwt.user.client.ui.Widget;\r
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;\r
-import com.itmill.toolkit.terminal.gwt.client.ClientExceptionHandler;\r
import com.itmill.toolkit.terminal.gwt.client.Container;\r
import com.itmill.toolkit.terminal.gwt.client.ContainerResizedListener;\r
import com.itmill.toolkit.terminal.gwt.client.IErrorMessage;\r
\r
private Element footerContainer = DOM.createDiv();\r
\r
+ private Element fieldSet = DOM.createFieldSet();\r
+\r
private Container footer;\r
\r
private ApplicationConnection client;\r
private int borderPaddingVertical;\r
\r
public IForm() {\r
- setElement(DOM.createFieldSet());\r
+ setElement(DOM.createDiv());\r
+ DOM.appendChild(getElement(), fieldSet);\r
setStyleName(CLASSNAME);\r
- DOM.appendChild(getElement(), legend);\r
+ DOM.appendChild(fieldSet, legend);\r
DOM.appendChild(legend, caption);\r
DOM.setElementProperty(errorIndicatorElement, "className",\r
"i-errorindicator");\r
DOM.setStyleAttribute(errorIndicatorElement, "display", "none");\r
DOM.setInnerText(errorIndicatorElement, " "); // needed for IE\r
DOM.setElementProperty(desc, "className", "i-form-description");\r
- DOM.appendChild(getElement(), desc);\r
- DOM.appendChild(getElement(), fieldContainer);\r
+ DOM.appendChild(fieldSet, desc);\r
+ DOM.appendChild(fieldSet, fieldContainer);\r
errorMessage.setVisible(false);\r
errorMessage.setStyleName(CLASSNAME + "-errormessage");\r
- DOM.appendChild(getElement(), errorMessage.getElement());\r
- DOM.appendChild(getElement(), footerContainer);\r
+ DOM.appendChild(fieldSet, errorMessage.getElement());\r
+ DOM.appendChild(fieldSet, footerContainer);\r
}\r
\r
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {\r
- this.client = client;\r
+ if (this.client == null) {\r
+ this.client = client;\r
+ borderPaddingVertical = getOffsetHeight();\r
+ borderPaddingHorizontal = getOffsetWidth() - desc.getOffsetWidth();\r
+ }\r
\r
if (client.updateComponent(this, uidl, false)) {\r
return;\r
}\r
\r
public RenderSpace getAllocatedSpace(Widget child) {\r
- return renderInformation.getContentAreaSize();\r
+ if (child == lo) {\r
+ int hPixels = 0;\r
+ if (!"".equals(height)) {\r
+ hPixels = getOffsetHeight();\r
+ hPixels -= borderPaddingVertical;\r
+ hPixels -= footerContainer.getOffsetHeight();\r
+ hPixels -= errorMessage.getOffsetHeight();\r
+ hPixels -= desc.getOffsetHeight();\r
+\r
+ }\r
+ return new RenderSpace(fieldContainer.getOffsetWidth(), 0);\r
+ } else if (child == footer) {\r
+ return new RenderSpace(footerContainer.getOffsetWidth(), 0);\r
+ } else {\r
+ ApplicationConnection.getConsole().error(\r
+ "Invalid child requested RenderSpace information");\r
+ return null;\r
+ }\r
}\r
\r
public boolean hasChildComponent(Widget component) {\r
@Override\r
public void setHeight(String height) {\r
this.height = height;\r
-\r
super.setHeight(height);\r
\r
- if (height.endsWith("px")) {\r
- try {\r
- borderPaddingVertical = getElement().getOffsetHeight()\r
- - Integer.parseInt(height.substring(0,\r
- height.length() - 2));\r
- } catch (Exception e) {\r
- ClientExceptionHandler.displayError(e);\r
- }\r
- }\r
-\r
}\r
\r
@Override\r
public void setWidth(String width) {\r
this.width = width;\r
-\r
super.setWidth(width);\r
-\r
- if (width.endsWith("px")) {\r
- try {\r
- borderPaddingHorizontal = getElement().getOffsetWidth()\r
- - Integer.parseInt(width.substring(0,\r
- width.length() - 2));\r
- } catch (Exception e) {\r
- ClientExceptionHandler.displayError(e);\r
- }\r
- }\r
}\r
}\r