/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Copyright @ 2015 Atlassian Pty Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.java.sip.communicator.service.gui;
/**
* Creates and show authentication window, normally to fill in username and
* password.
* @author Damian Minkov
*/
public interface AuthenticationWindowService
{
/**
* Creates an instance of the <tt>AuthenticationWindow</tt> implementation.
*
* @param server the server name
* @param isUserNameEditable indicates if the user name is editable
* @param icon the icon to display on the left of the authentication window
* @param windowTitle customized window title
* @param windowText customized window text
* @param usernameLabelText customized username field label text
* @param passwordLabelText customized password field label text
* @param errorMessage an error message if this dialog is shown to indicate
* the user that something went wrong
* @param signupLink an URL that allows the user to sign up
*/
public AuthenticationWindow create(String userName,
char[] password,
String server,
boolean isUserNameEditable,
boolean isRememberPassword,
Object icon,
String windowTitle,
String windowText,
String usernameLabelText,
String passwordLabelText,
String errorMessage,
String signupLink);
/**
* The window interface used by implementers.
*/
public interface AuthenticationWindow
{
/**
* Shows window implementation.
*
* @param isVisible specifies whether we should be showing or hiding the
* window.
*/
public void setVisible(final boolean isVisible);
/**
* Indicates if this window has been canceled.
*
* @return <tt>true</tt> if this window has been canceled,
* <tt>false</tt> - otherwise.
*/
public boolean isCanceled();
/**
* Returns the user name entered by the user or previously set if the
* user name is not editable.
*
* @return the user name.
*/
public String getUserName();
/**
* Returns the password entered by the user.
*
* @return the password.
*/
public char[] getPassword();
/**
* Indicates if the password should be remembered.
*
* @return <tt>true</tt> if the password should be remembered,
* <tt>false</tt> - otherwise.
*/
public boolean isRememberPassword();
/**
* Shows or hides the "save password" checkbox.
* @param allow the checkbox is shown when allow is <tt>true</tt>
*/
public void setAllowSavePassword(boolean allow);
}
}