private Widget newActionContainer(final boolean atEnd) { FlowPanel itemActionContainer = new FlowPanel(); itemActionContainer.addStyleName("itemActionContainer"); AnchorButton add = new AnchorButton("Ajouter"); add.getElement().setAttribute("name", "anchor"); add.addStyleName("button_add"); add.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { addItemContent(newItemInstance()); ValueChangeEvent.fire(ExtendedAbstractComponent.this, getValue()); } private void addItemContent(Bloc item) { // update data in order to save local widget change getValue(); // where to add if (atEnd) { addItem(item); } else { addItem(0, item); } // refresh widget refreshWidget(); } }); add.setVisible(!isReadOnly()); itemActionContainer.add(add); return itemActionContainer; }