package com.eas.widgets.containers;
import com.eas.core.XElement;
import com.google.gwt.dom.client.Style;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.RequiresResize;
import com.google.gwt.user.client.ui.Widget;
/**
*
* @author mg
*/
public class FlowGapPanel extends FlowPanel implements RequiresResize {
protected int hgap;
protected int vgap;
public FlowGapPanel() {
super();
getElement().getStyle().setWhiteSpace(Style.WhiteSpace.NORMAL);
getElement().getStyle().setLineHeight(0, Style.Unit.PX);
getElement().<XElement>cast().addResizingTransitionEnd(this);
}
public int getHgap() {
return hgap;
}
public void setHgap(int aValue) {
hgap = aValue;
for (int i = 0; i < getWidgetCount(); i++) {
Widget w = getWidget(i);
w.getElement().getStyle().setMarginLeft(hgap, Style.Unit.PX);
}
}
public int getVgap() {
return vgap;
}
public void setVgap(int aValue) {
vgap = aValue;
for (int i = 0; i < getWidgetCount(); i++) {
Widget w = getWidget(i);
w.getElement().getStyle().setMarginTop(vgap, Style.Unit.PX);
}
}
@Override
public void add(Widget aWidget) {
aWidget.getElement().getStyle().setMarginLeft(hgap, Style.Unit.PX);
aWidget.getElement().getStyle().setMarginTop(vgap, Style.Unit.PX);
aWidget.getElement().getStyle().setDisplay(Style.Display.INLINE_BLOCK);
aWidget.getElement().getStyle().setVerticalAlign(Style.VerticalAlign.BOTTOM);
super.add(aWidget);
}
@Override
public void onResize() {
// reserved for future use.
}
}