/*
*
* 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.bootstrap.client.BSGuiProvider;
import cc.kune.common.client.actions.ui.GuiProvider;
import cc.kune.common.client.events.EventBusWithLogging;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.cookies.CookiesManager;
import cc.kune.core.client.errors.ErrorHandler;
import cc.kune.core.client.sitebar.ErrorsDialog;
import cc.kune.core.client.state.SiteTokenListeners;
import cc.kune.core.client.state.TokenMatcher;
import cc.kune.embed.client.panels.EmbedPresenter;
import cc.kune.embed.client.panels.EmbedSitebar;
import cc.kune.wave.client.kspecific.WaveEmbedGinModule;
import com.google.gwt.inject.client.AsyncProvider;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.google.inject.Provider;
import com.google.web.bindery.event.shared.EventBus;
/**
* The Interface KuneEmbedGinjector.
*
* @author vjrj@ourproject.org (Vicente J. Ruiz Jurado)
*/
@GinModules(value = { EmbedCoreGinModule.class, WaveEmbedGinModule.class }, properties = { "gin.ginjector.modules" })
public interface KuneEmbedGinjector extends Ginjector {
// FIXME: Seems that hablar is needed in some point (Wave actions, probably)
/*
* You have to add here all the GWTPresenters (as Provider or AsyncProvider)
* see the GWTPlatform doc
*/
/**
* Gets the gwt gui provider.
*
* @return the gwt gui provider
*/
BSGuiProvider getBSGuiProvider();
/**
* Gets the cookies manager.
*
* @return the cookies manager
*/
AsyncProvider<CookiesManager> getCookiesManager();
Provider<EmbedPresenter> getEmbedPresenter();
EmbedSitebar getEmbedSitebar();
/**
* Gets the error handler.
*
* @return the error handler
*/
ErrorHandler getErrorHandler();
/**
* Gets the errors dialog.
*
* @return the errors dialog
*/
ErrorsDialog getErrorsDialog();
/**
* Gets the event bus.
*
* @return the event bus
*/
EventBus getEventBus();
/**
* Gets the event logger.
*
* @return the event logger
*/
EventBusWithLogging getEventBusWithLogger();
/**
* Gets the gui provider.
*
* @return the gui provider
*/
GuiProvider getGuiProvider();
/**
* Gets the i18n.
*
* @return the i18n
*/
I18nTranslationService getI18n();
/**
* Gets the site token listeners.
*
* @return the site token listeners
*/
SiteTokenListeners getSiteTokenListeners();
/**
* Gets the token matcher.
*
* @return the token matcher
*/
TokenMatcher getTokenMatcher();
}