private void initListeners(HasAllDragAndDropHandlers dropZoneWidget) {
removePreviousHandlers(dropZoneWidget);
final Handlers handlers = new Handlers();
rememberHandlerRegistration(dropZoneWidget, dropZoneWidget.addDropHandler(handlers));
rememberHandlerRegistration(dropZoneWidget, dropZoneWidget.addDragOverHandler(handlers));
rememberHandlerRegistration(dropZoneWidget, dropZoneWidget.addDragHandler(handlers));
rememberHandlerRegistration(dropZoneWidget, dropZoneWidget.addDragEndHandler(handlers));
rememberHandlerRegistration(dropZoneWidget, dropZoneWidget.addDragEnterHandler(handlers));
rememberHandlerRegistration(dropZoneWidget, dropZoneWidget.addDragLeaveHandler(handlers));
rememberHandlerRegistration(dropZoneWidget, dropZoneWidget.addDragStartHandler(handlers));
if (dropZoneWidget instanceof HasAttachHandlers) {
((HasAttachHandlers) dropZoneWidget).addAttachHandler(handlers);
}
}