package ilarkesto.gwt.client;
import java.util.Iterator;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HasWidgets;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
public class FloatingFlowPanel extends Composite implements HasWidgets {
private FlowPanel panel;
private String styleName;
public FloatingFlowPanel() {
this("FloatingFlowPanel");
}
public FloatingFlowPanel(String styleName) {
super();
this.styleName = styleName;
panel = new FlowPanel();
panel.setStyleName(styleName);
panel.add(Gwt.createFloatClear());
initWidget(panel);
}
@Override
public void setStyleName(String style) {
this.styleName = style;
panel.setStyleName(style);
}
@Override
public Iterator<Widget> iterator() {
return panel.iterator();
}
@Override
public void clear() {
panel.clear();
panel.add(Gwt.createFloatClear());
}
public boolean isEmpty() {
return panel.getWidgetCount() <= 1;
}
@Override
public void add(Widget w) {
add(w, false);
}
public void add(Widget w, boolean right) {
SimplePanel element = Gwt.createDiv(styleName + "-element-" + (right ? "right" : "left"), w);
panel.insert(element, panel.getWidgetCount() - 1);
}
public void insert(Widget w, int index) {
SimplePanel element = Gwt.createDiv(styleName + "-element-left", w);
panel.insert(element, index);
}
@Override
public boolean remove(Widget w) {
return panel.remove(w);
}
@Override
public String toString() {
return Gwt.toString(this);
}
}