/*
*
x * Copyright (C) 2007-2015 Licensed to the Comunes Association (CA) under
* one or more contributor license agreements (see COPYRIGHT for details).
* The CA licenses this file to you under the GNU Affero General Public
* License version 3, (the "License"); you may not use this file except in
* compliance with the License. This file is part of kune.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package cc.kune.embed.client;
import cc.kune.common.client.actions.ui.DefaultGuiProvider;
import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.events.EventBusInstance;
import cc.kune.common.client.events.EventBusWithLogging;
import cc.kune.common.client.msgs.UserMessagesPanel;
import cc.kune.common.client.msgs.UserMessagesPresenter;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.common.client.notify.SimpleUserNotifierPopup;
import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
import cc.kune.common.client.shortcuts.GlobalShortcutRegisterDefault;
import cc.kune.common.client.shortcuts.GlobalShortcuts;
import cc.kune.common.client.shortcuts.GlobalShortcutsInstance;
import cc.kune.common.client.ui.MaskWidget;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.shared.i18n.HasRTL;
import cc.kune.common.shared.i18n.I18n;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.common.shared.i18n.I18nTranslationServiceMocked;
import cc.kune.core.client.ExtendedGinModule;
import cc.kune.core.client.actions.ActionRegistryByType;
import cc.kune.core.client.auth.UserFieldFactory;
import cc.kune.core.client.cookies.CookiesManager;
import cc.kune.core.client.cookies.CookiesManagerImpl;
import cc.kune.core.client.errors.ErrorHandler;
import cc.kune.core.client.groups.newgroup.GroupFieldFactory;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.services.ClientChangedLogosRegistry;
import cc.kune.core.client.services.ClientFileDownloadUtils;
import cc.kune.core.client.sitebar.AbstractSignInAction;
import cc.kune.core.client.sitebar.AbstractSignOutAction;
import cc.kune.core.client.sitebar.ErrorsDialog;
import cc.kune.core.client.sitebar.SitebarSignOutLink.BeforeSignOut;
import cc.kune.core.client.state.ContentCache;
import cc.kune.core.client.state.HistoryWrapper;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.state.SessionInstance;
import cc.kune.core.client.state.SiteTokenListeners;
import cc.kune.core.client.state.SiteTokens;
import cc.kune.core.client.state.StateManager;
import cc.kune.core.client.state.StateManagerMock;
import cc.kune.core.client.state.StateTokenUtils;
import cc.kune.core.client.state.TokenMatcher;
import cc.kune.core.client.state.impl.ContentCacheDefault;
import cc.kune.core.client.state.impl.DummySessionChecker;
import cc.kune.core.client.state.impl.HistoryWrapperDefault;
import cc.kune.core.client.state.impl.SessionChecker;
import cc.kune.core.client.state.impl.SessionDefault;
import cc.kune.core.shared.dto.ReservedWordsRegistryDTO;
import cc.kune.core.shared.utils.ChangedLogosRegistry;
import cc.kune.embed.client.actions.EmbedSignInAction;
import cc.kune.embed.client.actions.EmbedSignOutAction;
import cc.kune.embed.client.panels.EmbedPanel;
import cc.kune.embed.client.panels.EmbedPresenter;
import cc.kune.embed.client.panels.EmbedSitebar;
import com.google.inject.Singleton;
import com.google.web.bindery.event.shared.EventBus;
/**
* The Class CoreGinModule.
*
* @author vjrj@ourproject.org (Vicente J. Ruiz Jurado)
*/
public class EmbedCoreGinModule extends ExtendedGinModule {
/*
* (non-Javadoc)
*
* @see com.google.gwt.inject.client.AbstractGinModule#configure()
*/
@Override
protected void configure() {
bind(EventBus.class).to(EventBusWithLogging.class).in(Singleton.class);
requestStaticInjection(EventBusInstance.class);
// gwtplatform
// install(new CommonGinModule());
// bind(TokenFormatter.class).to(ParameterTokenFormatter.class).in(Singleton.class);
// bind(RootPresenter.class).to(EmbedRootPresenter.class).asEagerSingleton();
// bind(PlaceManager.class).to(KunePlaceManager.class).in(Singleton.class);
s(I18nTranslationServiceMocked.class);
bind(HasRTL.class).to(I18nTranslationServiceMocked.class);
bind(I18nTranslationService.class).to(I18nTranslationServiceMocked.class).in(Singleton.class);
s(I18n.class);
requestStaticInjection(I18n.class);
bind(GlobalShortcutRegister.class).to(GlobalShortcutRegisterDefault.class).in(Singleton.class);
bind(GlobalShortcuts.class).in(Singleton.class);
requestStaticInjection(GlobalShortcutsInstance.class);
s(UserFieldFactory.class);
s(GroupFieldFactory.class);
eagle(SimpleUserNotifierPopup.class);
requestStaticInjection(NotifyUser.class);
bind(EmbedPresenter.EmbedView.class).to(EmbedPanel.class).in(Singleton.class);
s(EmbedPresenter.class);
s(EmbedSitebar.class);
bind(AbstractSignInAction.class).to(EmbedSignInAction.class).in(Singleton.class);
bind(AbstractSignOutAction.class).to(EmbedSignOutAction.class).in(Singleton.class);
s(UserMessagesPresenter.class);
s(UserMessagesPanel.class);
// UI
bind(GuiProvider.class).to(DefaultGuiProvider.class).in(Singleton.class);
bind(MaskWidgetView.class).to(MaskWidget.class).in(Singleton.class);
// Core App
bind(Session.class).to(SessionDefault.class).in(Singleton.class);
bind(SessionChecker.class).to(DummySessionChecker.class).in(Singleton.class);
requestStaticInjection(StateTokenUtils.class);
requestStaticInjection(SessionInstance.class);
// s(SessionExpirationManager.class);
s(ErrorHandler.class);
requestStaticInjection(AsyncCallbackSimple.class);
s(StateManagerMock.class);
bind(StateManager.class).to(StateManagerMock.class).in(Singleton.class);
bind(ContentCache.class).to(ContentCacheDefault.class).in(Singleton.class);
bind(HistoryWrapper.class).to(HistoryWrapperDefault.class).in(Singleton.class);
bind(CookiesManager.class).to(CookiesManagerImpl.class).in(Singleton.class);
s(BeforeSignOut.class);
eagle(SiteTokenListeners.class);
s(SiteTokens.class);
s(ReservedWordsRegistryDTO.class);
eagle(TokenMatcher.class);
s(ActionRegistryByType.class);
bind(ChangedLogosRegistry.class).to(ClientChangedLogosRegistry.class).in(Singleton.class);
s(ClientFileDownloadUtils.class);
s(ErrorsDialog.class);
}
}