@Override protected Widget newWidget() { // clear all FlowPanel main = new FlowPanel(); // add // main.add(newActionContainer(false)); // build inner data DDPanel ddp = new DDPanel(); main.add(ddp); panel = new FlowPanel(); ddp.add(panel); controller = ddp; controller.addValueChangeHandler( new ValueChangeHandler<DragInformation>() { @Override public void onValueChange(ValueChangeEvent<DragInformation> event) { if (!isReadOnly()) { Bloc source = ((BlocClipboard) event.getValue().getSource()).getValue(); Bloc dropTarget = ((BlocClipboard) event.getValue().getDropTarget()).getValue(); removeItem(source); if (dropTarget != null) { addItem(indexOfItem(dropTarget), source); } else { addItem(0, source); } refreshWidget(); } } }); view = newMasterView(); panel.add(view); // add main.add(newActionContainer(true)); return main; }