/* * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.java.sip.communicator.service.gui; import java.awt.*; import java.util.*; import net.java.sip.communicator.service.protocol.*; /** * The AccountRegistrationWizard is meant to provide a wizard which * will guide the user through a protocol account registration. Each * AccountRegistrationWizard should provide a set of * WizardPages, an icon, the name and the description of the * corresponding protocol. *
* Note that the AccountRegistrationWizard is NOT a real wizard, it * doesn't handle wizard events. Each UI Service implementation should provide * its own wizard UI control, which should manage all the events, panels and * buttons, etc. *
* It depends on the wizard implementation in the UI for whether or not a
* summary will be shown to the user before "Finish".
*
* @author Yana Stamcheva
*/
public interface AccountRegistrationWizard
{
/**
* Returns the protocol icon that will be shown on the left of the protocol
* name in the list, where user will choose the protocol to register to.
*
* @return a short description of the protocol.
*/
public byte[] getIcon();
/**
* Returns the image that will be shown on the left of the wizard pages.
* @return the image that will be shown on the left of the wizard pages
*/
public byte[] getPageImage();
/**
* Returns the protocol name that will be shown in the list, where user
* will choose the protocol to register to.
*
* @return the protocol name.
*/
public String getProtocolName();
/**
* Returns a short description of the protocol that will be shown on the
* right of the protocol name in the list, where user will choose the
* protocol to register to.
*
* @return a short description of the protocol.
*/
public String getProtocolDescription();
/**
* Returns an example string, which should indicate to the user how the
* user name should look like. For example: john@jabber.org.
* @return an example string, which should indicate to the user how the
* user name should look like.
*/
public String getUserNameExample();
/**
* Loads all data concerning the given ProtocolProviderService.
* This method is meant to be used when a modification in an already
* created account is needed.
*
* @param protocolProvider The ProtocolProviderService to
* load data from.
*/
public void loadAccount(ProtocolProviderService protocolProvider);
/**
* Returns the set of WizardPage-s for this
* wizard.
*
* @return the set of WizardPage-s for this
* wizard.
*/
public Iteratortrue
if the web sign up is supported by the current
* implementation, false
- otherwise.
* @return true
if the web sign up is supported by the current
* implementation, false
- otherwise
*/
public boolean isWebSignupSupported();
/**
* Defines the operation that will be executed when user clicks on the
* "Sign up" link.
*
* @throws UnsupportedOperationException if the web sign up operation is
* not supported by the current implementation.
*/
public void webSignup() throws UnsupportedOperationException;
/**
* Returns the preferred dimensions of this wizard.
*
* @return the preferred dimensions of this wizard.
*/
public Dimension getSize();
/**
* Sets the modification property to indicate if this wizard is opened for
* a modification.
*
* @param isModification indicates if this wizard is opened for modification
* or for creating a new account.
*/
public void setModification(boolean isModification);
/**
* Indicates if this wizard is modifying an existing account or is creating
* a new one.
*
* @return true
to indicate that this wizard is currently in
* modification mode, false
- otherwise.
*/
public boolean isModification();
/**
* Indicates whether this wizard enables the simple "sign in" form shown
* when the user opens the application for the first time. The simple
* "sign in" form allows user to configure her account in one click, just
* specifying her username and password and leaving any other configuration
* as by default.
* @return true
if the simple "Sign in" form is enabled or
* false
otherwise.
*/
public boolean isSimpleFormEnabled();
/**
* Returns a simple account registration form that would be the first form
* shown to the user. Only if the user needs more settings she'll choose
* to open the advanced wizard, consisted by all pages.
*
* @param isCreateAccount indicates if the simple form should be opened as
* a create account form or as a login form
* @return a simple account registration form
*/
public Object getSimpleForm(boolean isCreateAccount);
}