Changed Label so it never wraps when its width is undefined.
Changed default Label width to 100%.
svn changeset:6841/svn branch:trunk
public class ILabel extends HTML implements Paintable {
public static final String CLASSNAME = "i-label";
+ private static final String CLASSNAME_UNDEFINED_WIDTH = "i-label-undef-w";
+
private ApplicationConnection client;
private int verticalPaddingBorder = 0;
private int horizontalPaddingBorder = 0;
} else if ("uidl".equals(mode)) {
setHTML(uidl.getChildrenAsXML());
} else if ("xhtml".equals(mode)) {
- setHTML(uidl.getChildUIDL(0).getChildUIDL(0).getChildString(0));
+ UIDL content = uidl.getChildUIDL(0).getChildUIDL(0);
+ if (content.getChildCount() > 0) {
+ setHTML(content.getChildString(0));
+ } else {
+ setHTML("");
+ }
sinkOnloads = true;
} else if ("xml".equals(mode)) {
setHTML(uidl.getChildUIDL(0).getChildString(0));
public void setWidth(String width) {
horizontalPaddingBorder = Util.setWidthExcludingPaddingAndBorder(this,
width, horizontalPaddingBorder);
+ if (width == null || width.equals("")) {
+ setStyleName(getElement(), CLASSNAME_UNDEFINED_WIDTH, true);
+ } else {
+ setStyleName(getElement(), CLASSNAME_UNDEFINED_WIDTH, false);
+ }
}
}
for (Paintable p : children) {\r
/* Update widget size from DOM */\r
ChildComponentContainer componentContainer = getComponentContainer((Widget) p);\r
- if (isDynamicWidth()) {\r
- componentContainer.setUnlimitedContainerWidth();\r
- } else {\r
- componentContainer.setLimitedContainerWidth(activeLayoutSize\r
- .getWidth());\r
- }\r
+ // This should no longer be needed (after #2563)\r
+ // if (isDynamicWidth()) {\r
+ // componentContainer.setUnlimitedContainerWidth();\r
+ // } else {\r
+ // componentContainer.setLimitedContainerWidth(activeLayoutSize\r
+ // .getWidth());\r
+ // }\r
\r
componentContainer.updateWidgetSize();\r
\r
setElement(containerDIV);
containerDIV.getStyle().setProperty("height", "0");
- // DOM.setStyleAttribute(containerDIV, "width", "0px");
+ containerDIV.getStyle().setProperty("width", "0px");
containerDIV.getStyle().setProperty("overflow", "hidden");
widgetDIV = Document.get().createDivElement();
* For fixed width layouts we specify the width directly so that height
* is automatically calculated correctly (e.g. for Labels).
*/
- if (fixedWidth > 0) {
- setLimitedContainerWidth(fixedWidth);
- } else {
- setUnlimitedContainerWidth();
- }
-
+ /*
+ * This should no longer be needed (after #2563) as all components are
+ * such that they can be rendered inside a 0x0 DIV.
+ */
+ // if (fixedWidth > 0) {
+ // setLimitedContainerWidth(fixedWidth);
+ // } else {
+ // setUnlimitedContainerWidth();
+ // }
((Paintable) widget).updateFromUIDL(childUIDL, client);
}
* Creates an empty Label.
*/
public Label() {
- setPropertyDataSource(new ObjectProperty("", String.class));
+ this("");
}
/**
* @param content
*/
public Label(String content) {
- setPropertyDataSource(new ObjectProperty(content, String.class));
+ this(content, CONTENT_DEFAULT);
}
/**
* @param contentSource
*/
public Label(Property contentSource) {
- setPropertyDataSource(contentSource);
+ this(contentSource, CONTENT_DEFAULT);
}
/**
* @param contentMode
*/
public Label(String content, int contentMode) {
- setPropertyDataSource(new ObjectProperty(content, String.class));
- setContentMode(contentMode);
+ this(new ObjectProperty(content, String.class), contentMode);
}
/**
*/
public Label(Property contentSource, int contentMode) {
setPropertyDataSource(contentSource);
- setContentMode(contentMode);
+ if (contentMode != CONTENT_DEFAULT) {
+ setContentMode(contentMode);
+ }
+ setWidth(100, UNITS_PERCENTAGE);
}
/**