private void bindTo()

in client/src/main/java/org/apache/hupa/client/activity/MessageListActivity.java [167:294]


    private void bindTo(final EventBus eventBus) {

        registerHandler(eventBus.addHandler(DeleteClickEvent.TYPE, new DeleteClickEventHandler() {
            @Override
            public void onDeleteClickEvent(DeleteClickEvent event) {
                deleteSelectedMessages();
            }
        }));

        registerHandler(eventBus.addHandler(RefreshMessagesEvent.TYPE, new RefreshMessagesEventHandler() {
            @Override
            public void onRefresh(RefreshMessagesEvent event) {
                display.setSearchValue(event.getSearchValue());
                display.refresh();
                System.out.println("REFRESH DISPLAY");
            }
        }));

        registerHandler(eventBus.addHandler(MoveMessageEvent.TYPE, new MoveMessageEventHandler() {

            @Override
            public void onMoveMessageHandler(final MoveMessageEvent event) {
                hc.showTopLoading("Moving...");
                MoveMessageRequest req = rf.moveMessageRequest();
                ImapFolder f = req.create(ImapFolder.class);
                ImapFolder newF = req.create(ImapFolder.class);

                String fullName = null;
                if (pc.getWhere() instanceof FolderPlace) {
                    fullName = ((FolderPlace) pc.getWhere()).getToken();
                } else {
                    fullName = ((MessagePlace) pc.getWhere()).getTokenWrapper().getFolder();
                }
                f.setFullName(fullName);
                newF.setFullName(event.getNewFolder().getFullName());
                MoveMessageAction action = req.create(MoveMessageAction.class);

                final List<Long> uids = display.getSelectedMessagesIds();
                // TODO can move more than one message once.
                if (uids.isEmpty() || uids.size() > 1) {
                    hc.hideTopLoading();
                    hc.showNotice("Please select one and only one message", 10000);
                    return;
                }
                action.setMessageUid(uids.get(0));
                action.setNewFolder(newF);
                action.setOldFolder(f);
                req.move(action).fire(new Receiver<GenericResult>() {

                    @Override
                    public void onSuccess(GenericResult response) {
                        display.refresh();
                        eventBus.fireEvent(new RefreshFoldersEvent());
                        hc.hideTopLoading();
                        hc.showNotice("The conversation has been moved to \"" + event.getNewFolder() + "\"", 10000);
                    }

                    @Override
                    public void onFailure(ServerFailure error) {
                        super.onFailure(error);
                        hc.hideTopLoading();
                        hc.showNotice(error.getMessage(), 10000);
                    }

                });
            }

        }));

        registerHandler(eventBus.addHandler(MessageViewEvent.TYPE, new MessageViewEventHandler() {
            public void onMessageViewEvent(final MessageViewEvent event) {
                if (event.messageDetails != null && gettingMessages != null) {
                    gettingMessages.done(new Function() {
                        public void f() {
                            List<Message> messages = currentFechResult.getMessages();
                            int l = messages.size();
                            for (int i = 0; i < l; i++){
                                Message m = messages.get(i);
                                MessageListActivity.this.onMessageSelected(m);//FIXME for fixing https://issues.apache.org/jira/browse/HUPA-110
                                if (m.getUid() == event.messageDetails.getUid()) {
                                    List<IMAPFlag> flags = m.getFlags();
                                    if (!flags.contains(IMAPFlag.SEEN)) {
                                        flags.add(IMAPFlag.SEEN);
                                        m = rf.deleteMessageByUidRequest().edit(m);
                                        m.setFlags(flags);
                                        messages.set(i, m);
                                        display.getDataProvider().setFechMessagesResult(currentFechResult);
                                    }
                                    display.getGrid().getSelectionModel().setSelected(m, true);
                                    display.getGrid().getRowElement(i).scrollIntoView();
                                    ToolBarView.Parameters p = new ToolBarView.Parameters(user, folderName, m, event.messageDetails);
                                    toolBar.setParameters(p);
                                    break;
                                }
                            }
                        }
                    });
                }
            }
        }));

        registerHandler(eventBus.addHandler(MessageListRangeChangedEvent.TYPE, new MessageListRangeChangedEventHandler() {
            public void onRangeChangedEvent(MessageListRangeChangedEvent event) {
                gettingMessages = hupaStorage
                .gettingMessages(true, folderName, event.start, event.size, event.search)
                .done(new Function() {
                    public void f() {
                        FetchMessagesResult response = arguments(0);
                        display.getDataProvider().setFechMessagesResult(response);
                        currentFechResult = response;
                        cacheContacts();
                    }
                })
                .fail(new Function() {
                    public void f() {
                        hc.showNotice("" + arguments(0), 3000);
                    }
                })
                .always(new Function() {
                    public void f() {
                        hc.hideTopLoading();
                    }
                });

            }
        }));

    }