public Thing(String name) { FlowPanel p = new FlowPanel(); initWidget(p); setStyleName("thing"); Button edit = new CssButton( "Edit", new ClickHandler() { public void onClick(ClickEvent event) { new RowConstraintsDialog(getParentContainer(), Thing.this).display(); } }, "Edit constraints"); Button delete = new CssButton( "Delete", new ClickHandler() { public void onClick(ClickEvent event) { Container p = getParentContainer(); p.remove(Thing.this); p.layout(); } }); FormBuilder b = new FormBuilder(); b.add(edit, delete).colspan(4).endRow(); b.field(new HTML("<b>" + name + "</b>")).endRow(); b.label("Size") .field(size) .label("Weight") .field(weight) .label("Max size") .field(maxSize) .label("Overflow") .field(overflow) .endRow(); b.label("Actual").field(actualSize).label("Extra").field(extraSize).endRow(); p.add(b.getForm()); }