package scrum.client.common; import ilarkesto.gwt.client.AWidget; import ilarkesto.gwt.client.Gwt; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; public class GroupWidget extends AWidget { private String title; private FlowPanel contentPanel; private Widget content; private boolean contentChanged; public GroupWidget(String title) { this.title = title; } public GroupWidget(String title, Widget content) { this(title); setContent(content); } @Override protected Widget onInitialization() { SimplePanel titlePanel = new SimplePanel(); titlePanel.setStyleName("GroupWidget-title"); titlePanel.add(new Label(title)); contentPanel = new FlowPanel(); contentPanel.setStyleName("GrouplWidget-content"); FlowPanel panel = new FlowPanel(); panel.setStyleName("GrouplWidget"); panel.add(titlePanel); panel.add(contentPanel); return panel; } @Override protected void onUpdate() { if (contentChanged) { contentPanel.clear(); contentPanel.add(content); contentChanged = false; } Gwt.update(content); } public GroupWidget setContent(Widget content) { this.content = content; contentChanged = true; update(); return this; } @Override public String toString() { return "GroupWidget(" + title + ")"; } }