Package honeycrm.client

Source Code of honeycrm.client.Sirup

package honeycrm.client;

import honeycrm.client.mvp.events.LocaleChangeEvent;
import honeycrm.client.mvp.events.LocaleChangeEventHandler;
import honeycrm.client.s.AppPresenter;
import honeycrm.client.s.AppView;
import honeycrm.client.s.AuthEvent;
import honeycrm.client.s.AuthEventHandler;
import honeycrm.client.s.AuthPresenter;
import honeycrm.client.s.AuthView;
import honeycrm.client.s.ContactsView;
import honeycrm.client.s.GenericDataProvider;
import honeycrm.client.s.LogoutEvent;
import honeycrm.client.s.LogoutEventHandler;
import honeycrm.client.s.Module;
import honeycrm.client.s.ModulePresenter;
import honeycrm.client.s.ProductView;
import honeycrm.client.s.ProposalView;
import honeycrm.client.s.ShortcutEvent;
import honeycrm.client.s.ShortcutEventHandler;
import honeycrm.client.services.AuthService;
import honeycrm.client.services.AuthServiceAsync;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.RunAsyncCallback;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.event.shared.SimpleEventBus;
import com.google.gwt.http.client.UrlBuilder;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.Window.Location;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;

public class Sirup implements EntryPoint {
  private final SimpleEventBus bus = new SimpleEventBus();
 
  @Override
  public void onModuleLoad() {
    History.addValueChangeHandler(new ValueChangeHandler<String>() {
      @Override
      public void onValueChange(ValueChangeEvent<String> event) {
        if ("login".equals(event.getValue())) {
          AuthPresenter p = new AuthPresenter(bus, new AuthView());
          p.go(RootPanel.get());
        } else if ("app".equals(event.getValue())) {
          ContactsView contactsView = new ContactsView(new GenericDataProvider(Module.Contact, bus));
          ProductView productView = new ProductView(new GenericDataProvider(Module.Product, bus));
          ProposalView proposalView = new ProposalView(new GenericDataProvider(Module.Proposal, bus));
         
          new ModulePresenter(bus, contactsView);
          new ModulePresenter(bus, productView);
          new ModulePresenter(bus, proposalView);
         
          AppPresenter appPresenter = new AppPresenter(bus, new AppView(contactsView, productView, proposalView));
          appPresenter.go(RootPanel.get());
        }
      }
    });

    History.newItem("login");
    History.fireCurrentHistoryState();
   
    GWT.runAsync(new RunAsyncCallback() {
      @Override
      public void onSuccess() {
        final AuthServiceAsync authService = GWT.create(AuthService.class);

        bus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
          @Override
          public void onLogout() {
            History.newItem("login");
          }
        });
        bus.addHandler(AuthEvent.TYPE, new AuthEventHandler() {
          @Override
          public void onAuth(AuthEvent event) {
            authService.login(event.getUsername(), event.getPassword(), new AsyncCallback<Long>() {
              @Override
              public void onSuccess(Long result) {
                History.newItem("app");
              }

              @Override
              public void onFailure(Throwable caught) {
              }
            });
          }
        });
        bus.addHandler(ShortcutEvent.TYPE, new ShortcutEventHandler() {
          @Override
          public void onShortcut(ShortcutEvent event) {
            /* ignore shortcuts for now
            switch (event.getCode()) {
            case 'd': // dashboard
              bus.fireEvent(new OpenModuleEvent("Dashboard"));
              break;
            case 'c': // contacts
              bus.fireEvent(new OpenModuleEvent("Contact"));
              break;
            case 'n': // new == create
              bus.fireEvent(new OpenModuleEvent("Contact"));
              bus.fireEvent(new CreateEvent("Contact"));
              break;
            }*/
          }
        });
        bus.addHandler(LocaleChangeEvent.TYPE, new LocaleChangeEventHandler() {
          @Override
          public void onLocaleChangeEvent(LocaleChangeEvent event) {
            UrlBuilder builder = Location.createUrlBuilder().setParameter("locale", event.getLocale());
            Window.Location.replace(builder.buildString());
          }
        });
      }

      @Override
      public void onFailure(Throwable reason) {
      }
    });
  }
}
TOP

Related Classes of honeycrm.client.Sirup

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.