ValueMap alignments = uidl.getMapAttribute("alignments");
for (ComponentConnector child : getChildren()) {
- Slot slot = layout.getSlot(child.getWidget());
+ Slot slot = layout.getSlot(child);
String pid = child.getConnectorId();
AlignmentInfo alignment;
}
public void updateCaption(ComponentConnector child) {
- Slot slot = getWidget().getSlot(child.getWidget());
+ Slot slot = getWidget().getSlot(child);
String caption = child.getState().getCaption();
String iconUrl = child.getState().getIcon() != null ? child.getState()
for (ComponentConnector child : getChildren()) {
Widget childWidget = child.getWidget();
- Slot slot = layout.getSlot(childWidget);
+ Slot slot = layout.getSlot(child);
if (slot.getParent() != layout) {
child.addStateChangeHandler(childStateChangeHandler);
}
for (ComponentConnector child : previousChildren) {
if (child.getParent() != this) {
- Slot slot = layout.getSlot(child.getWidget());
+ Slot slot = layout.getSlot(child);
hasVerticalAlignment.remove(child);
hasRelativeHeight.remove(child);
hasExpandRatio.remove(child);
// We need to update the slot size if the component size is changed
// to relative
- Slot slot = getWidget().getSlot(child.getWidget());
+ Slot slot = getWidget().getSlot(child);
slot.setRelativeWidth(child.isRelativeWidth());
slot.setRelativeHeight(child.isRelativeHeight());
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.terminal.gwt.client.ComponentConnector;
import com.vaadin.terminal.gwt.client.LayoutManager;
public class VBoxLayout extends FlowPanel {
}
public Slot removeSlot(Widget widget) {
- Slot slot = getSlot(widget);
+ Slot slot = widgetToSlot.get(widget);
remove(slot);
widgetToSlot.remove(widget);
return slot;
}
- public Slot getSlot(Widget widget) {
- Slot slot = widgetToSlot.get(widget);
+ public Slot getSlot(ComponentConnector connector) {
+ Slot slot = widgetToSlot.get(connector.getWidget());
if (slot == null) {
- slot = new Slot(widget);
- widgetToSlot.put(widget, slot);
+ slot = new Slot(connector);
+ widgetToSlot.put(connector.getWidget(), slot);
}
return slot;
}
protected class Slot extends SimplePanel {
+ private ComponentConnector connector;
+
private Element spacer;
private Element captionWrap;
private AlignmentInfo alignment;
private double expandRatio = -1;
- public Slot(Widget widget) {
- setWidget(widget);
+ public Slot(ComponentConnector connector) {
+ this.connector = connector;
+ setWidget(connector.getWidget());
setStylePrimaryName("v-slot");
}
if (vertical) {
slot.setHeight((100 * (slot.getExpandRatio() / total))
+ "%");
+ if (slot.connector.isRelativeHeight()) {
+ layoutManager.setNeedsMeasure(slot.connector);
+ }
} else {
slot.setWidth((100 * (slot.getExpandRatio() / total)) + "%");
+ if (slot.connector.isRelativeWidth()) {
+ layoutManager.setNeedsMeasure(slot.connector);
+ }
}
}
}