client/src/main/java/org/apache/hupa/client/activity/ContactsListActivity.java [47:109]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    @Inject private HupaController hupaController;
    @Inject private Displayable display;

    @Override
    public void start(AcceptsOneWidget container, EventBus eventBus) {
        container.setWidget(display.asWidget());
        bindTo(eventBus);
    }

    private void bindTo(final EventBus eventBus) {
        this.registerHandler(display.getDelete().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                if (Window.confirm("Are you sure?")) {
                    eventBus.fireEvent(new DeleteFolderEvent());
                }
            }
        }));
        eventBus.addHandler(DeleteFolderEvent.TYPE, new DeleteFolderEventHandler() {
            @Override
            public void onDeleteFolderEvent(DeleteFolderEvent event) {
                deleteSelected();
            }
        });
        eventBus.addHandler(RefreshLabelListEvent.TYPE, new RefreshLabelListEventHandler(){
            @Override
            public void onRefreshEvent(RefreshLabelListEvent event) {
                display.refresh();
            }
        });
    }

    public interface Displayable extends IsWidget {
        final int CASCADE_TYPE_ADD = 0x01;
        final int CASCADE_TYPE_RENAME = 0x02;
        SingleSelectionModel<LabelNode> getSelectionModel();
        HasClickHandlers getAdd();
        HasClickHandlers getDelete();
        void refresh();
    }

    public void deleteSelected() {
        hupaController.showTopLoading("Deleting...");
        SingleSelectionModel<LabelNode> selectionModel = display.getSelectionModel();
        LabelNode labelNode = selectionModel.getSelectedObject();
        DeleteFolderRequest req = rf.deleteFolderRequest();
        DeleteFolderAction action = req.create(DeleteFolderAction.class);
        final ImapFolder f = req.create(ImapFolder.class);
        f.setFullName(labelNode.getFolder().getFullName());
        action.setFolder(f);
        req.delete(action).fire(new Receiver<GenericResult>() {
            @Override
            public void onSuccess(GenericResult response) {
                hupaController.hideTopLoading();
                display.refresh();
                hupaController.showNotice("The label \"" + f.getFullName() + "\" was deleted.", 10000);
            }
            @Override
            public void onFailure(ServerFailure error) {
                hupaController.hideTopLoading();
                hupaController.showNotice(error.getMessage(), 10000);
            }
        });
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



client/src/main/java/org/apache/hupa/client/activity/LabelListActivity.java [47:109]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    @Inject private HupaController hupaController;
    @Inject private Displayable display;

    @Override
    public void start(AcceptsOneWidget container, EventBus eventBus) {
        container.setWidget(display.asWidget());
        bindTo(eventBus);
    }

    private void bindTo(final EventBus eventBus) {
        this.registerHandler(display.getDelete().addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                if (Window.confirm("Are you sure?")) {
                    eventBus.fireEvent(new DeleteFolderEvent());
                }
            }
        }));
        eventBus.addHandler(DeleteFolderEvent.TYPE, new DeleteFolderEventHandler() {
            @Override
            public void onDeleteFolderEvent(DeleteFolderEvent event) {
                deleteSelected();
            }
        });
        eventBus.addHandler(RefreshLabelListEvent.TYPE, new RefreshLabelListEventHandler(){
            @Override
            public void onRefreshEvent(RefreshLabelListEvent event) {
                display.refresh();
            }
        });
    }

    public interface Displayable extends IsWidget {
        final int CASCADE_TYPE_ADD = 0x01;
        final int CASCADE_TYPE_RENAME = 0x02;
        SingleSelectionModel<LabelNode> getSelectionModel();
        HasClickHandlers getAdd();
        HasClickHandlers getDelete();
        void refresh();
    }

    public void deleteSelected() {
        hupaController.showTopLoading("Deleting...");
        SingleSelectionModel<LabelNode> selectionModel = display.getSelectionModel();
        LabelNode labelNode = selectionModel.getSelectedObject();
        DeleteFolderRequest req = rf.deleteFolderRequest();
        DeleteFolderAction action = req.create(DeleteFolderAction.class);
        final ImapFolder f = req.create(ImapFolder.class);
        f.setFullName(labelNode.getFolder().getFullName());
        action.setFolder(f);
        req.delete(action).fire(new Receiver<GenericResult>() {
            @Override
            public void onSuccess(GenericResult response) {
                hupaController.hideTopLoading();
                display.refresh();
                hupaController.showNotice("The label \"" + f.getFullName() + "\" was deleted.", 10000);
            }
            @Override
            public void onFailure(ServerFailure error) {
                hupaController.hideTopLoading();
                hupaController.showNotice(error.getMessage(), 10000);
            }
        });
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



