/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Distributable under LGPL license. * See terms of license at gnu.org. */ package net.java.sip.communicator.plugin.facebookaccregwizz; import java.util.*; import net.java.sip.communicator.plugin.jabberaccregwizz.*; import net.java.sip.communicator.service.gui.*; import net.java.sip.communicator.service.protocol.*; /** * The FacebookAccountRegistrationWizard is an implementation of the * AccountRegistrationWizard for the Facebook Chat protocol. It allows * the user to create and configure a new Facebook account. * * @author Dai Zhiwei * @author Yana Stamcheva */ public class FacebookAccountRegistrationWizard extends JabberAccountRegistrationWizard { /** * The protocol name. */ private static final String PROTOCOL = "Facebook"; /** * A constant pointing to the Facebook protocol logo icon. */ private static final String PROTOCOL_ICON = "service.protocol.facebook.FACEBOOK_16x16"; /** * A constant pointing to the Facebook protocol wizard page image. */ private static final String PAGE_IMAGE = "service.protocol.facebook.FACEBOOK_48x48"; private static final String SERVER_ADDRESS = "chat.facebook.com"; /** * Creates an instance of FacebookAccountRegistrationWizard. * @param wizardContainer the wizard container, where this wizard * is added */ public FacebookAccountRegistrationWizard(WizardContainer wizardContainer) { super(wizardContainer); } /** * Returns the set of pages contained in this wizard. * @return Iterator */ public Iterator getPages() { JabberAccountRegistration reg = new JabberAccountRegistration(); setPredefinedProperties(reg); return getPages(reg); } /** * 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) { JabberAccountRegistration reg = new JabberAccountRegistration(); setPredefinedProperties(reg); return getSimpleForm(reg, isCreateAccount); } /** * Sets all facebook specific properties. * * @param reg the registration object */ private void setPredefinedProperties(JabberAccountRegistration reg) { reg.setServerAddress(SERVER_ADDRESS); reg.setSendKeepAlive(true); reg.setServerOverridden(true); } /** * Implements the AccountRegistrationWizard.getIcon method. * Returns the icon to be used for this wizard. * @return byte[] */ public byte[] getIcon() { return FacebookAccRegWizzActivator.getResources() .getImageInBytes(PROTOCOL_ICON); } /** * Implements the AccountRegistrationWizard.getPageImage method. * Returns the image used to decorate the wizard page * * @return byte[] the image used to decorate the wizard page */ public byte[] getPageImage() { return FacebookAccRegWizzActivator.getResources() .getImageInBytes(PAGE_IMAGE); } /** * Implements the AccountRegistrationWizard.getProtocolName * method. Returns the protocol name for this wizard. * @return String */ public String getProtocolName() { return FacebookAccRegWizzActivator.getResources() .getI18NString("plugin.facebookaccregwizz.PROTOCOL_NAME"); } /** * Implements the AccountRegistrationWizard.getProtocolDescription * method. Returns the description of the protocol for this wizard. * @return String */ public String getProtocolDescription() { return FacebookAccRegWizzActivator.getResources() .getI18NString("plugin.facebookaccregwizz.PROTOCOL_DESCRIPTION"); } /** * Returns an example string, which should indicate to the user how the * user name should look like. * @return an example string, which should indicate to the user how the * user name should look like. */ public String getUserNameExample() { return "Ex: username"; } /** * Returns the display label used for the sip id field. * @return the sip id display label string. */ protected String getUsernameLabel() { return FacebookAccRegWizzActivator.getResources() .getI18NString("plugin.facebookaccregwizz.USERNAME"); } /** * Return the string for add existing account button. * @return the string for add existing account button. */ protected String getCreateAccountButtonLabel() { return null; } /** * Return the string for create new account button. * @return the string for create new account button. */ protected String getCreateAccountLabel() { return FacebookAccRegWizzActivator.getResources().getI18NString( "plugin.facebookaccregwizz.DESCRIPTION"); } /** * Returns the protocol name as listed in "ProtocolNames" or just the name * of the service. * @return the protocol name */ public String getProtocol() { return PROTOCOL; } /** * Returns the protocol icon path. * @return the protocol icon path */ public String getProtocolIconPath() { return "resources/images/protocol/facebook"; } /** * Returns the account icon path. * @return the account icon path */ public String getAccountIconPath() { return "resources/images/protocol/facebook/logo32x32.png"; } /** * Opens a browser on the sign up page. */ public void webSignup() {} /** * Returns true 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() { return false; } /** * Creates an account for the given user and password. * * @param providerFactory the ProtocolProviderFactory which will create * the account * @param userName the user identifier * @param passwd the password * @return the ProtocolProviderService for the new account. * @throws OperationFailedException if the operation didn't succeed */ protected ProtocolProviderService installAccount( ProtocolProviderFactory providerFactory, String userName, String passwd) throws OperationFailedException { // add server part to username if(userName.indexOf("@") == -1) userName += "@" + SERVER_ADDRESS; return super.installAccount(providerFactory, userName, passwd); } /** * Returns an instance of CreateAccountService through which the * user could create an account. This method is meant to be implemented by * specific protocol provider wizards. * @return an instance of CreateAccountService */ protected JabberAccountCreationFormService getCreateAccountService() { return null; } }