/*
*
* 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.auth;
import cc.kune.common.client.notify.NotifyLevelImages;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.client.ui.dialogs.MessageToolbar;
import cc.kune.common.client.utils.OnAcceptCallback;
import cc.kune.common.shared.i18n.I18nTranslationService;
import cc.kune.core.client.auth.SignInPresenter.SignInView;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.ui.KuneUiUtils;
import com.extjs.gxt.ui.client.widget.VerticalPanel;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.inject.Inject;
// TODO: Auto-generated Javadoc
/**
* The Class SignInPanel.
*
* @author vjrj@ourproject.org (Vicente J. Ruiz Jurado)
*/
public class SignInPanel extends SignInAbstractPanel implements SignInView {
/** The Constant CANCEL_BUTTON_ID. */
public static final String CANCEL_BUTTON_ID = "k-signinp-cb";
/** The Constant CREATE_ONE. */
public static final String CREATE_ONE = "k-signinp-create";
/** The Constant ERROR_MSG. */
public static final String ERROR_MSG = "k-sigp-errmsg";
/** The Constant FORGOT_PASSWD. */
public static final String FORGOT_PASSWD = "k-signinp-forgot";
/** The Constant SIGN_IN_BUTTON_ID. */
public static final String SIGN_IN_BUTTON_ID = "k-signinp-sib";
/** The Constant SIGNIN_DIALOG. */
public static final String SIGNIN_DIALOG = "k-signinp-dialog";
/** The forgot password label. */
private Label forgotPasswordLabel;
/** The register label. */
private Label registerLabel;
/** The sign in form. */
private final SignInForm signInForm;
/**
* Instantiates a new sign in panel.
*
* @param i18n
* the i18n
* @param mask
* the mask
* @param images
* the images
*/
@Inject
public SignInPanel(final I18nTranslationService i18n, final MaskWidgetView mask,
final NotifyLevelImages images) {
super(SIGNIN_DIALOG, mask, i18n, i18n.t(CoreMessages.SIGN_IN_TITLE), true, true, true, "",
i18n.t(CoreMessages.SIGN_IN_TITLE), SIGN_IN_BUTTON_ID, i18n.t("Cancel"), CANCEL_BUTTON_ID,
images, ERROR_MSG, 102);
signInForm = new SignInForm(i18n);
signInForm.setWidth(DEF_SIGN_IN_FORM_SIZE);
signInForm.add(createRegisterAndForgotPasswd());
messageErrorBar = new MessageToolbar(images, errorLabelId);
signInForm.add(messageErrorBar);
super.getInnerPanel().add(signInForm.getFormPanel());
}
/**
* Creates the link.
*
* @param label
* the label
* @param id
* the id
*/
private void createLink(final Label label, final String id) {
label.ensureDebugId(id);
label.addStyleName("k-link");
label.addStyleName("k-cursor");
}
/**
* Creates the register and forgot passwd.
*
* @return the vertical panel
*/
private VerticalPanel createRegisterAndForgotPasswd() {
final VerticalPanel noAccRegisterPanel = new VerticalPanel();
final HorizontalPanel hpanel = new HorizontalPanel();
final Label dontHaveAccount = new Label(i18n.t("Don't have an account?"));
registerLabel = new Label(i18n.t("Create one."));
createLink(registerLabel, CREATE_ONE);
registerLabel.addStyleName("kune-Margin-Medium-l");
forgotPasswordLabel = new Label(i18n.t("Lost your password?"));
createLink(forgotPasswordLabel, FORGOT_PASSWD);
hpanel.add(dontHaveAccount);
hpanel.add(registerLabel);
noAccRegisterPanel.add(hpanel);
noAccRegisterPanel.add(forgotPasswordLabel);
return noAccRegisterPanel;
}
/*
* (non-Javadoc)
*
* @see cc.kune.core.client.auth.SignInPresenter.SignInView#focusOnNickname()
*/
@Override
public void focusOnNickname() {
signInForm.focusLogin();
}
/*
* (non-Javadoc)
*
* @see cc.kune.core.client.auth.SignInPresenter.SignInView#focusOnPassword()
*/
@Override
public void focusOnPassword() {
signInForm.focusOnPassword();
}
/*
* (non-Javadoc)
*
* @see
* cc.kune.core.client.auth.SignInPresenter.SignInView#getAccountRegister()
*/
@Override
public HasClickHandlers getAccountRegister() {
return registerLabel;
}
/*
* (non-Javadoc)
*
* @see cc.kune.core.client.auth.SignInPresenter.SignInView#getForgotPasswd()
*/
@Override
public HasClickHandlers getForgotPasswd() {
return forgotPasswordLabel;
}
/*
* (non-Javadoc)
*
* @see cc.kune.core.client.auth.SignInPresenter.SignInView#getLoginPassword()
*/
@Override
public String getLoginPassword() {
return signInForm.getLoginPassword();
}
/**
* Gets the nickname.
*
* @return the nickname
*/
private Field<String> getNickname() {
return signInForm.getNickOrEmailField();
}
/*
* (non-Javadoc)
*
* @see cc.kune.core.client.auth.SignInPresenter.SignInView#getNickOrEmail()
*/
@Override
public String getNickOrEmail() {
return signInForm.getNickOrEmail();
}
/*
* (non-Javadoc)
*
* @see
* cc.kune.core.client.auth.SignInPresenter.SignInView#isSignInFormValid()
*/
@Override
public boolean isSignInFormValid() {
return signInForm.isValid();
}
/*
* (non-Javadoc)
*
* @see cc.kune.core.client.auth.SignInAbstractView#reset()
*/
@Override
public void reset() {
signInForm.reset();
}
/*
* (non-Javadoc)
*
* @see
* cc.kune.core.client.auth.SignInPresenter.SignInView#setLoginPassword(java
* .lang.String)
*/
@Override
public void setLoginPassword(final String password) {
signInForm.setLoginPassword(password);
}
/*
* (non-Javadoc)
*
* @see
* cc.kune.core.client.auth.SignInPresenter.SignInView#setNickOrEmail(java
* .lang.String)
*/
@Override
public void setNickOrEmail(final String nickOrEmail) {
signInForm.setNickOrEmail(nickOrEmail);
}
/*
* (non-Javadoc)
*
* @see
* cc.kune.core.client.auth.SignInPresenter.SignInView#setOnPasswordReturn
* (cc.kune.common.client.utils.OnAcceptCallback)
*/
@Override
public void setOnPasswordReturn(final OnAcceptCallback onAcceptCallback) {
signInForm.setOnPasswordReturn(onAcceptCallback);
}
/*
* (non-Javadoc)
*
* @see cc.kune.core.client.auth.SignInAbstractPanel#show()
*/
@Override
public void show() {
super.show();
KuneUiUtils.focusOnField(getNickname());
}
/*
* (non-Javadoc)
*
* @see cc.kune.core.client.auth.SignInPresenter.SignInView#validate()
*/
@Override
public void validate() {
signInForm.validate();
}
}