Rev 8303 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.hotspot.dashbaord.client;import in.shop2020.hotspot.dashbaord.client.event.LoadAlertsEvent;import in.shop2020.hotspot.dashbaord.client.event.LoadOrderCountsEvent;import in.shop2020.hotspot.dashbaord.client.event.LoadOrderListEvent;import in.shop2020.hotspot.dashbaord.client.event.SignOutEvent;import in.shop2020.hotspot.dashbaord.client.event.SignOutEventHandler;import in.shop2020.hotspot.dashbaord.client.event.SubmitLoginInfoEvent;import in.shop2020.hotspot.dashbaord.client.event.SubmitLoginInfoHandler;import in.shop2020.hotspot.dashbaord.client.inbox.InboxPresenter;import in.shop2020.hotspot.dashbaord.shared.actions.AuthRequest;import in.shop2020.hotspot.dashbaord.shared.actions.AuthResponse;import in.shop2020.hotspot.dashbaord.shared.actions.AuthResponse.NEXT;import in.shop2020.hotspot.dashbaord.shared.actions.OrderCategory;import in.shop2020.hotspot.dashbaord.shared.actions.OrderType;import net.customware.gwt.dispatch.client.DispatchAsync;import org.enunes.gwt.mvp.client.EventBus;import org.enunes.gwt.mvp.client.presenter.BasePresenter;import org.enunes.gwt.mvp.client.presenter.Presenter;import com.google.gwt.user.client.rpc.AsyncCallback;import com.google.inject.Inject;import com.google.inject.Provider;public class MainPresenterImpl extends BasePresenter<MainPresenter.Display> implements MainPresenter{private final Provider<InboxPresenter> inboxProvider;private final LoginDisplayPresenter lPresenter;private Presenter<? extends org.enunes.gwt.mvp.client.view.Display> presenter;private final DispatchAsync dispatcher;@Injectpublic MainPresenterImpl(EventBus eventBus, Display display, LoginDisplayPresenter loginpresenter,Provider<InboxPresenter> inboxProvider, final DispatchAsync dispatcher ) {super(eventBus, display);this.inboxProvider = inboxProvider;lPresenter = loginpresenter;lPresenter.bind();this.dispatcher = dispatcher;display.addContent(loginpresenter.getDisplay());}private void switchPresenter(Presenter<? extends org.enunes.gwt.mvp.client.view.Display> presenter) {if (this.presenter != null) {this.presenter.unbind();display.removeContent();}this.presenter = presenter;if (presenter != null) {display.addContent(presenter.getDisplay());this.presenter.bind();}}@Overridepublic void bind(){super.bind();registerHandler(eventBus.addHandler(SignOutEvent.getType(), new SignOutEventHandler() {@Overridepublic void doSignout(SignOutEvent event) {signOut();}}));registerHandler(eventBus.addHandler(SubmitLoginInfoEvent.getType(), new SubmitLoginInfoHandler() {@Overridepublic void onSubmitLoginInfo(SubmitLoginInfoEvent event) {dispatcher.execute(new AuthRequest(event.getUserName(), event.getPassword()), new AsyncCallback<AuthResponse>() {@Overridepublic void onFailure(Throwable caught) {lPresenter.showError("You do not seem in good terms with auth server. It is lost!");}@Overridepublic void onSuccess(AuthResponse result) {doAuth(result);}});}}));}private void doAuth(AuthResponse result){if (result.isStatus()){lPresenter.showError("Welcome! "+ result.getUsername() +", "+ result.getMessage());if(result.getNext() == NEXT.INBOX){final InboxPresenter inboxPresenter = inboxProvider.get();inboxPresenter.setUsername(result.getUsername());inboxPresenter.setWarehouseId(result.getWarehouseId());inboxPresenter.setSource(result.getSource());inboxPresenter.setUserType(result.getUserType());inboxPresenter.setBillingType(result.getBillingType());inboxPresenter.setWarehouses(result.getWarehouses());inboxPresenter.setProviders(result.getProviders());inboxPresenter.setStores(result.getStores());inboxPresenter.initialize();//inboxPresenter.refreshOrderList();inboxPresenter.getDisplay().changeGreeting(result.getUsername());switchPresenter(inboxPresenter);eventBus.fireEvent(new LoadOrderListEvent());for(OrderType orderType: OrderType.values()){eventBus.fireEvent(new LoadOrderCountsEvent(orderType));}for(OrderCategory orderType: OrderCategory.values()){eventBus.fireEvent(new LoadOrderCountsEvent(orderType));}eventBus.fireEvent(new LoadAlertsEvent(true, false, 1));}}elselPresenter.showError("Who are you man! Have we met before? ");}private void signOut(){lPresenter.reset();switchPresenter(lPresenter);}@Overridepublic void unbind() {super.unbind();if (presenter != null) {presenter.unbind();}}}