content: /*
   * Copyright (C) 2015 Actor LLC. <https://actor.im>
   */
  
  package im.actor.core.js;
  
  import com.google.gwt.core.client.EntryPoint;
  import com.google.gwt.core.client.Scheduler;
  
  import org.timepedia.exporter.client.ExporterUtil;
  
  import im.actor.core.entity.Contact;
  import im.actor.core.entity.Dialog;
  import im.actor.core.entity.Message;
  import im.actor.core.entity.SearchEntity;
  import im.actor.core.js.entity.JsContact;
  import im.actor.core.js.entity.JsDialog;
  import im.actor.core.js.entity.JsMessage;
  import im.actor.core.js.entity.JsSearchEntity;
  import im.actor.core.js.providers.Assets;
  import im.actor.runtime.js.JsAssetsProvider;
  import im.actor.runtime.js.JsEngineProvider;
  
  public class GwtEntryPoint implements EntryPoint {
  
      public void onModuleLoad() {
          ExporterUtil.exportAll();
          JsAssetsProvider.registerBundle(Assets.INSTANCE);
          JsEngineProvider.registerEntity(Contact.ENTITY_NAME, JsContact.CONVERTER);
          JsEngineProvider.registerEntity(Dialog.ENTITY_NAME, JsDialog.CONVERTER);
          JsEngineProvider.registerEntity(Message.ENTITY_NAME, JsMessage.CONVERTER);
          JsEngineProvider.registerEntity(SearchEntity.ENTITY_NAME, JsSearchEntity.CONVERTER);
  
          Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
              @Override
              public void execute() {
                  onAppLoaded();
              }
          });
      }
  
      public native void onAppLoaded()/*-{
          if ($wnd.jsAppLoaded) $wnd.jsAppLoaded();
      }-*/;
  }
  