com.toedter.gwt.demo.contacts.client.activity.ToolBarActivity.java Source code

Java tutorial

Introduction

Here is the source code for com.toedter.gwt.demo.contacts.client.activity.ToolBarActivity.java

Source

/*******************************************************************************
 * Copyright (c) 2012 Kai Toedter and others.
 * 
 * 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:
 *     Kai Toedter - initial API and implementation
 ******************************************************************************/

package com.toedter.gwt.demo.contacts.client.activity;

import com.google.gwt.activity.shared.AbstractActivity;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import com.toedter.gwt.demo.contacts.client.IClientFactory;
import com.toedter.gwt.demo.contacts.client.IContactServiceAsync;
import com.toedter.gwt.demo.contacts.client.place.ContactEditPlace;
import com.toedter.gwt.demo.contacts.client.place.ContactPlace;
import com.toedter.gwt.demo.contacts.client.ui.IToolBarView;
import com.toedter.gwt.demo.contacts.client.ui.IToolBarView.Presenter;
import com.toedter.gwt.demo.contacts.shared.Contact;

public class ToolBarActivity extends AbstractActivity implements Presenter {

    private final IClientFactory clientFactory;
    private IToolBarView toolBarView;

    public ToolBarActivity(ContactPlace place, IClientFactory clientFactory) {
        this.clientFactory = clientFactory;
    }

    public ToolBarActivity(ContactEditPlace place, IClientFactory clientFactory) {
        System.out.println("ToolBarActivity.ToolBarActivity(): " + place.getToken());
        this.clientFactory = clientFactory;
    }

    @Override
    public void start(AcceptsOneWidget containerWidget, EventBus eventBus) {
        System.out.println("ToolBarActivity.start()");
        toolBarView = clientFactory.getToolBarView();
        toolBarView.setPresenter(this);
        containerWidget.setWidget(toolBarView.asWidget());
    }

    @Override
    public String mayStop() {
        toolBarView.setPresenter(null);
        return null;
    }

    @Override
    public void addContact() {
        clientFactory.getPlaceController().goTo(new ContactEditPlace(null));
    }

    @Override
    public void saveContact() {
        System.out.println("ToolBarActivity.saveContact()");
        ContactDetailsActivity contactDetailsActivity = ActivityRegistry.getContactDetailsActivity();
        if (contactDetailsActivity != null) {
            final Contact contact = contactDetailsActivity.getContact();
            IContactServiceAsync contactService = clientFactory.getContactService();
            contactService.saveContact(contact, new AsyncCallback<Void>() {

                @Override
                public void onSuccess(Void result) {
                    System.out.println("Contact saved");
                    clientFactory.setContacts(null);
                    clientFactory.getPlaceController().goTo(new ContactPlace(contact.getEmail()));
                }

                @Override
                public void onFailure(Throwable caught) {
                    System.err.println("Cannot save contact: " + contact);
                }
            });
        }
    }

    @Override
    public void deleteContact() {
        System.out.println("ToolBarActivity.deleteContact()");
        ContactDetailsActivity contactDetailsActivity = ActivityRegistry.getContactDetailsActivity();
        if (contactDetailsActivity != null) {
            final Contact contact = contactDetailsActivity.getContact();
            IContactServiceAsync contactService = clientFactory.getContactService();
            contactService.deleteContact(contact, new AsyncCallback<Void>() {

                @Override
                public void onSuccess(Void result) {
                    System.out.println("Contact deleted");
                    clientFactory.setContacts(null);
                    clientFactory.getPlaceController().goTo(new ContactPlace(""));
                }

                @Override
                public void onFailure(Throwable caught) {
                    System.err.println("Cannot delete contact: " + contact);
                }
            });
        }
    }
}