package com.yoghurt.crypto.transactions.client; import com.google.gwt.activity.shared.ActivityManager; import com.google.gwt.activity.shared.ActivityMapper; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.place.shared.Place; import com.google.gwt.place.shared.PlaceController; import com.google.gwt.place.shared.PlaceHistoryHandler; import com.google.gwt.place.shared.PlaceHistoryMapper; import com.google.gwt.user.client.ui.RootPanel; import com.google.inject.Inject; import com.google.web.bindery.event.shared.EventBus; import com.yoghurt.crypto.transactions.client.di.ApplicationGinjector; import com.yoghurt.crypto.transactions.client.place.DefaultPlace; import com.yoghurt.crypto.transactions.client.resources.ColorPicker; import com.yoghurt.crypto.transactions.client.resources.R; import com.yoghurt.crypto.transactions.client.ui.ApplicationRootView; import com.yoghurt.crypto.transactions.client.util.AppAsyncCallback; import com.yoghurt.crypto.transactions.shared.domain.config.UserApplicationConfig; import com.yoghurt.crypto.transactions.shared.service.ConfigServiceAsync; public class Application implements EntryPoint { @Inject @DefaultPlace Place defaultPlace; @Inject private EventBus eventBus; @Inject private PlaceController placeController; @Inject private ActivityMapper actvityMapper; @Inject private PlaceHistoryMapper placeHistoryMapper; @Inject private ColorPicker colorPicker; @Inject private ApplicationConfigProvider configProvider; @Inject private ConfigServiceAsync configService; private ActivityManager appActivityManager; private PlaceHistoryHandler historyHandler; @Override public void onModuleLoad() { ApplicationGinjector.INSTANCE.inject(this); R.init(colorPicker); appActivityManager = new ActivityManager(actvityMapper, eventBus); historyHandler = new PlaceHistoryHandler(placeHistoryMapper); configService.getApplicationConfig(new AppAsyncCallback<UserApplicationConfig>() { @Override public void onSuccess(final UserApplicationConfig result) { configProvider.setApplicationConfig(result); onFinishedLoading(); } }); } public void onFinishedLoading() { final ApplicationRootView appDisplay = ApplicationGinjector.INSTANCE.getApplicationRootView(); appActivityManager.setDisplay(appDisplay); historyHandler.register(placeController, eventBus, defaultPlace); historyHandler.handleCurrentHistory(); RootPanel.get().add(appDisplay); } }