/* * 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.plugin.rssaccregwizz; import java.awt.*; import java.util.*; import org.osgi.framework.*; import net.java.sip.communicator.impl.gui.customcontrols.*; import net.java.sip.communicator.service.gui.*; import net.java.sip.communicator.service.protocol.*; /** * The RssAccountRegistrationWizard is an implementation of the * AccountRegistrationWizard for the Rss protocol. It allows * the user to create and configure a new Rss account. * * @author Emil Ivov */ public class RssAccountRegistrationWizard implements AccountRegistrationWizard { /** * The first page of the rss account registration wizard. */ private FirstWizardPage firstWizardPage; /** * The object that we use to store details on an account that we will be * creating. */ private RssAccountRegistration registration = new RssAccountRegistration(); private WizardContainer wizardContainer; private ProtocolProviderService protocolProvider; private String propertiesPackage = "net.java.sip.communicator.plugin.rssaccregwizz"; private boolean isModification; /** * Creates an instance of RssAccountRegistrationWizard. * @param wizardContainer the wizard container, where this wizard * is added */ public RssAccountRegistrationWizard(WizardContainer wizardContainer) { this.wizardContainer = wizardContainer; } /** * Implements the AccountRegistrationWizard.getIcon method. * Returns the icon to be used for this wizard. * @return byte[] */ public byte[] getIcon() { return Resources.getImage(Resources.GIBBERISH_LOGO); } /** * 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 Resources.getImage(Resources.PAGE_IMAGE); } /** * Implements the AccountRegistrationWizard.getProtocolName * method. Returns the protocol name for this wizard. * @return String */ public String getProtocolName() { return Resources.getString("protocolName"); } /** * Implements the AccountRegistrationWizard.getProtocolDescription * method. Returns the description of the protocol for this wizard. * @return String */ public String getProtocolDescription() { return Resources.getString("protocolDescription"); } /** * Returns the set of pages contained in this wizard. * @return Iterator */ public Iterator getPages() { ArrayList pages = new ArrayList(); firstWizardPage = new FirstWizardPage(registration, wizardContainer); pages.add(firstWizardPage); return pages.iterator(); } /** * Returns the set of data that user has entered through this wizard. * @return Iterator */ public Iterator getSummary() { Hashtable summaryTable = new Hashtable(); summaryTable.put("User ID", registration.getUserID()); return summaryTable.entrySet().iterator(); } /** * Installs the account created through this wizard. * @return ProtocolProviderService */ public ProtocolProviderService finish() { firstWizardPage = null; ProtocolProviderFactory factory = RssAccRegWizzActivator.getRssProtocolProviderFactory(); return this.installAccount(factory, registration.getUserID()); } /** * Creates an account for the given user and password. * @param providerFactory the ProtocolProviderFactory which will create * the account * @param user the user identifier * @return the ProtocolProviderService for the new account. */ public ProtocolProviderService installAccount( ProtocolProviderFactory providerFactory, String user) { Hashtable accountProperties = new Hashtable(); try { AccountID accountID = providerFactory.installAccount( user, accountProperties); ServiceReference serRef = providerFactory .getProviderForAccount(accountID); protocolProvider = (ProtocolProviderService) RssAccRegWizzActivator.bundleContext .getService(serRef); } catch (IllegalArgumentException exc) { new ErrorDialog(null, Resources.getString("error"), exc.getMessage(), exc).showDialog(); } catch (IllegalStateException exc) { new ErrorDialog(null, Resources.getString("error"), exc.getMessage(), exc).showDialog(); } return protocolProvider; } /** * Fills the UserID and Password fields in this panel with the data comming * from the given protocolProvider. * @param protocolProvider The ProtocolProviderService to load the * data from. */ public void loadAccount(ProtocolProviderService protocolProvider) { this.protocolProvider = protocolProvider; isModification = true; } /** * Returns the size of this wizard. * @return the size of this wizard */ public Dimension getSize() { return new Dimension(600, 500); } /** * Returns the identifier of the page to show first in the wizard. * @return the identifier of the page to show first in the wizard. */ public Object getFirstPageIdentifier() { return firstWizardPage.getIdentifier(); } /** * Returns the identifier of the page to show last in the wizard. * @return the identifier of the page to show last in the wizard. */ public Object getLastPageIdentifier() { return firstWizardPage.getIdentifier(); } }