com.tasktop.c2c.server.profile.web.ui.client.presenter.components.CreateInvitationPresenter.java Source code

Java tutorial

Introduction

Here is the source code for com.tasktop.c2c.server.profile.web.ui.client.presenter.components.CreateInvitationPresenter.java

Source

/*******************************************************************************
 * Copyright (c) 2010, 2012 Tasktop Technologies
 * Copyright (c) 2010, 2011 SpringSource, a division of VMware
 * 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     Tasktop Technologies - initial API and implementation
 ******************************************************************************/
package com.tasktop.c2c.server.profile.web.ui.client.presenter.components;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.tasktop.c2c.server.common.profile.web.client.ProfileGinjector;
import com.tasktop.c2c.server.common.web.client.notification.Message;
import com.tasktop.c2c.server.common.web.client.presenter.AsyncCallbackSupport;
import com.tasktop.c2c.server.profile.domain.project.SignUpToken;
import com.tasktop.c2c.server.profile.domain.project.SignUpTokens;
import com.tasktop.c2c.server.profile.web.ui.client.gin.AppGinjector;
import com.tasktop.c2c.server.profile.web.ui.client.presenter.AbstractProfilePresenter;
import com.tasktop.c2c.server.profile.web.ui.client.resources.ProfileMessages;
import com.tasktop.c2c.server.profile.web.ui.client.view.components.CreateInvitationView;

public class CreateInvitationPresenter extends AbstractProfilePresenter {

    private final CreateInvitationView view;
    private ProfileMessages profileMessages = AppGinjector.get.instance().getProfileMessages();

    public CreateInvitationPresenter(CreateInvitationView invitationView) {
        super(invitationView);
        this.view = invitationView;
    }

    @Override
    protected void bind() {
        view.sendEmail.setValue(true);
        view.invitationRecipients.setText("");
        view.createInvitationsButton.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                doCreateInvitations();
            }
        });
    }

    private void doCreateInvitations() {
        view.invitations.clear();
        getProfileService().createSignUpTokensFromCsv(view.invitationRecipients.getText(),
                view.sendEmail.getValue(), new AsyncCallbackSupport<SignUpTokens>() {

                    @Override
                    protected void success(SignUpTokens result) {
                        String output = profileMessages.invitationTokens() + "\n";
                        for (SignUpToken token : result.getTokens()) {
                            output += token.getFirstname() + ", " + token.getLastname() + ", " + token.getEmail()
                                    + ", " + token.getToken() + ", " + token.getUrl() + "\n";
                        }
                        view.invitations.clear();
                        view.invitations.add(new HTMLPanel("<pre>\n" + output + "\n</pre>"));
                        view.invitationRecipients.setText("");
                        ProfileGinjector.get.instance().getNotifier().displayMessage(
                                Message.createSuccessMessage(profileMessages.invitationsCreatedSeeBelow()));
                    }
                });
    }
}