aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/ILabel.java14
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java13
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/layout/ChildComponentContainer.java17
-rw-r--r--src/com/itmill/toolkit/ui/Label.java14
4 files changed, 38 insertions, 20 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ILabel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ILabel.java
index f3bec455f0..1ca24b330e 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ILabel.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ILabel.java
@@ -20,6 +20,8 @@ import com.itmill.toolkit.terminal.gwt.client.Util;
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;
@@ -72,7 +74,12 @@ public class ILabel extends HTML implements Paintable {
} 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));
@@ -107,5 +114,10 @@ public class ILabel extends HTML implements Paintable {
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);
+ }
}
}
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java
index ffa30f724b..aa961ee8a6 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java
@@ -737,12 +737,13 @@ public class IOrderedLayout extends CellBasedLayout {
for (Paintable p : children) {
/* Update widget size from DOM */
ChildComponentContainer componentContainer = getComponentContainer((Widget) p);
- if (isDynamicWidth()) {
- componentContainer.setUnlimitedContainerWidth();
- } else {
- componentContainer.setLimitedContainerWidth(activeLayoutSize
- .getWidth());
- }
+ // This should no longer be needed (after #2563)
+ // if (isDynamicWidth()) {
+ // componentContainer.setUnlimitedContainerWidth();
+ // } else {
+ // componentContainer.setLimitedContainerWidth(activeLayoutSize
+ // .getWidth());
+ // }
componentContainer.updateWidgetSize();
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/layout/ChildComponentContainer.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/layout/ChildComponentContainer.java
index fe8ba6497e..87e02f56af 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/layout/ChildComponentContainer.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/layout/ChildComponentContainer.java
@@ -72,7 +72,7 @@ public class ChildComponentContainer extends Panel {
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();
@@ -171,12 +171,15 @@ public class ChildComponentContainer extends Panel {
* 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);
}
diff --git a/src/com/itmill/toolkit/ui/Label.java b/src/com/itmill/toolkit/ui/Label.java
index b11f9f5a2e..1a9e497e9c 100644
--- a/src/com/itmill/toolkit/ui/Label.java
+++ b/src/com/itmill/toolkit/ui/Label.java
@@ -101,7 +101,7 @@ public class Label extends AbstractComponent implements Property,
* Creates an empty Label.
*/
public Label() {
- setPropertyDataSource(new ObjectProperty("", String.class));
+ this("");
}
/**
@@ -110,7 +110,7 @@ public class Label extends AbstractComponent implements Property,
* @param content
*/
public Label(String content) {
- setPropertyDataSource(new ObjectProperty(content, String.class));
+ this(content, CONTENT_DEFAULT);
}
/**
@@ -120,7 +120,7 @@ public class Label extends AbstractComponent implements Property,
* @param contentSource
*/
public Label(Property contentSource) {
- setPropertyDataSource(contentSource);
+ this(contentSource, CONTENT_DEFAULT);
}
/**
@@ -130,8 +130,7 @@ public class Label extends AbstractComponent implements Property,
* @param contentMode
*/
public Label(String content, int contentMode) {
- setPropertyDataSource(new ObjectProperty(content, String.class));
- setContentMode(contentMode);
+ this(new ObjectProperty(content, String.class), contentMode);
}
/**
@@ -143,7 +142,10 @@ public class Label extends AbstractComponent implements Property,
*/
public Label(Property contentSource, int contentMode) {
setPropertyDataSource(contentSource);
- setContentMode(contentMode);
+ if (contentMode != CONTENT_DEFAULT) {
+ setContentMode(contentMode);
+ }
+ setWidth(100, UNITS_PERCENTAGE);
}
/**