/* * * 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.core.client.invitation; import org.gwtbootstrap3.client.ui.constants.Responsiveness; import cc.kune.common.client.actions.ActionStyles; import cc.kune.common.client.actions.ui.descrip.ToolbarItemDescriptor; import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor; import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type; import cc.kune.common.shared.i18n.I18nTranslationService; import cc.kune.core.client.events.UserSignInOrSignOutEvent; import cc.kune.core.client.events.UserSignInOrSignOutEvent.UserSignInOrSignOutHandler; import cc.kune.core.client.resources.iconic.IconicResources; import cc.kune.core.client.sitebar.SitebarActions; import cc.kune.core.client.state.Session; import com.google.inject.Inject; import com.google.inject.Singleton; // TODO: Auto-generated Javadoc /** * The Class SiteInvitationBtn. * * @author vjrj@ourproject.org (Vicente J. Ruiz Jurado) */ @Singleton public class SiteInvitationBtn extends ToolbarItemDescriptor { /** * Instantiates a new site invitation btn. * * @param session * the session * @param action * the action * @param i18n * the i18n * @param icons * the icons */ @Inject SiteInvitationBtn(final Session session, final SiteInvitationAction action, final I18nTranslationService i18n, final IconicResources icons) { super(action); withText(i18n.t("Invite")).withToolTip( i18n.t("Invite others to [%s] via email", i18n.getSiteCommonName())).withStyles( ActionStyles.SITEBAR_STYLE_FL + "," + Responsiveness.HIDDEN_XS.getCssName()).withParent( SitebarActions.RIGHT_TOOLBAR); // .withIcon(icons.listsPostGrey()) // .withParent(SitebarActions.MORE_MENU); final ToolbarSeparatorDescriptor separator = new ToolbarSeparatorDescriptor(Type.separator, SitebarActions.RIGHT_TOOLBAR); session.onUserSignInOrSignOut(true, new UserSignInOrSignOutHandler() { @Override public void onUserSignInOrSignOut(final UserSignInOrSignOutEvent event) { final boolean logged = event.isLogged(); separator.setVisible(logged); SiteInvitationBtn.this.setVisible(logged); } }); } }