/** * Installs the account defined in this wizard. * * @return the created <tt>ProtocolProviderService</tt> corresponding to the new account * @throws OperationFailedException if the operation didn't succeed */ @Override public ProtocolProviderService signin() throws OperationFailedException { firstWizardPage.commitPage(); return firstWizardPage.isCommitted() ? signin(registration.getUserID(), registration.getPassword()) : null; }
/** * Returns the set of data that user has entered through this wizard. * * @return Iterator */ @Override public Iterator<Map.Entry<String, String>> getSummary() { Hashtable<String, String> summaryTable = new Hashtable<String, String>(); summaryTable.put( Resources.getString("plugin.jabberaccregwizz.USERNAME"), registration.getUserID()); summaryTable.put( Resources.getString("service.gui.REMEMBER_PASSWORD"), Boolean.toString(registration.isRememberPassword())); summaryTable.put( Resources.getString("plugin.jabberaccregwizz.SERVER"), registration.getServerAddress()); summaryTable.put( Resources.getString("service.gui.PORT"), String.valueOf(registration.getServerPort())); summaryTable.put( Resources.getString("plugin.jabberaccregwizz.ENABLE_KEEP_ALIVE"), String.valueOf(registration.isSendKeepAlive())); summaryTable.put( Resources.getString("plugin.jabberaccregwizz.ENABLE_GMAIL_NOTIFICATIONS"), String.valueOf(registration.isGmailNotificationEnabled())); summaryTable.put( Resources.getString("plugin.jabberaccregwizz.RESOURCE"), registration.getResource()); summaryTable.put( Resources.getString("plugin.jabberaccregwizz.PRIORITY"), String.valueOf(registration.getPriority())); summaryTable.put( Resources.getString("plugin.sipaccregwizz.DTMF_METHOD"), registration.getDTMFMethod()); summaryTable.put( Resources.getString("plugin.sipaccregwizz.DTMF_MINIMAL_TONE_DURATION"), registration.getDtmfMinimalToneDuration()); return summaryTable.entrySet().iterator(); }
/** * 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 <tt>ProtocolProviderService</tt> for the new account. * @throws OperationFailedException if the operation didn't succeed */ protected ProtocolProviderService installAccount( ProtocolProviderFactory providerFactory, String userName, String passwd) throws OperationFailedException { if (logger.isTraceEnabled()) { logger.trace("Preparing to install account for user " + userName); } Hashtable<String, String> accountProperties = new Hashtable<String, String>(); String protocolIconPath = getProtocolIconPath(); String accountIconPath = getAccountIconPath(); registration.storeProperties( userName, passwd, protocolIconPath, accountIconPath, accountProperties); accountProperties.put( ProtocolProviderFactory.IS_PREFERRED_PROTOCOL, Boolean.toString(isPreferredProtocol())); accountProperties.put(ProtocolProviderFactory.PROTOCOL, getProtocol()); if (isModification()) { providerFactory.modifyAccount(protocolProvider, accountProperties); setModification(false); return protocolProvider; } try { if (logger.isTraceEnabled()) { logger.trace( "Will install account for user " + userName + " with the following properties." + accountProperties); } AccountID accountID = providerFactory.installAccount(userName, accountProperties); ServiceReference serRef = providerFactory.getProviderForAccount(accountID); protocolProvider = (ProtocolProviderService) JabberAccRegWizzActivator.bundleContext.getService(serRef); } catch (IllegalArgumentException exc) { logger.warn(exc.getMessage()); throw new OperationFailedException( "Username, password or server is null.", OperationFailedException.ILLEGAL_ARGUMENT); } catch (IllegalStateException exc) { logger.warn(exc.getMessage()); throw new OperationFailedException( "Account already exists.", OperationFailedException.IDENTIFICATION_CONFLICT); } catch (Throwable exc) { logger.warn(exc.getMessage()); throw new OperationFailedException( "Failed to add account.", OperationFailedException.GENERAL_ERROR); } return protocolProvider; }
/** * Installs the account defined in this wizard. * * @param userName the user name to sign in with * @param password the password to sign in with * @return the created <tt>ProtocolProviderService</tt> corresponding to the new account * @throws OperationFailedException if the operation didn't succeed */ public ProtocolProviderService signin(final String userName, final String password) throws OperationFailedException { /* * If firstWizardPage is null we are requested sign-in from initial * account registration form we must init firstWizardPage in order to * init default values * Pawel: firstWizardPage is never null, and commitPage fails with no * user ID provided for simple account wizard. Now userName and password * are reentered here. */ final AccountPanel accPanel = (AccountPanel) firstWizardPage.getSimpleForm(); /* * XXX Swing is not thread safe! We've experienced deadlocks on OS X * upon invoking accPanel's setters. In order to address them, (1) * invoke accPanel's setters on the AWT event dispatching thread and (2) * do it only if absolutely necessary. */ String accPanelUsername = accPanel.getUsername(); boolean equals = false; final boolean rememberPassword = (password != null); if (StringUtils.isEquals(accPanelUsername, userName)) { char[] accPanelPasswordChars = accPanel.getPassword(); char[] passwordChars = (password == null) ? null : password.toCharArray(); if (accPanelPasswordChars == null) equals = ((passwordChars == null) || passwordChars.length == 0); else if (passwordChars == null) equals = (accPanelPasswordChars.length == 0); else equals = Arrays.equals(accPanelPasswordChars, passwordChars); if (equals) { boolean accPanelRememberPassword = accPanel.isRememberPassword(); equals = (accPanelRememberPassword == rememberPassword); } } if (!equals) { try { if (SwingUtilities.isEventDispatchThread()) { accPanel.setUsername(userName); accPanel.setPassword(password); accPanel.setRememberPassword(rememberPassword); } else { SwingUtilities.invokeAndWait( new Runnable() { public void run() { accPanel.setUsername(userName); accPanel.setPassword(password); accPanel.setRememberPassword(rememberPassword); } }); } } catch (Exception e) { if (e instanceof OperationFailedException) { throw (OperationFailedException) e; } else { throw new OperationFailedException( "Failed to set username and password on " + accPanel.getClass().getName(), OperationFailedException.INTERNAL_ERROR, e); } } } if (!firstWizardPage.isCommitted()) firstWizardPage.commitPage(); if (!firstWizardPage.isCommitted()) { throw new OperationFailedException( "Could not confirm data.", OperationFailedException.GENERAL_ERROR); } ProtocolProviderFactory factory = JabberAccRegWizzActivator.getJabberProtocolProviderFactory(); return installAccount( factory, registration.getUserID(), // The user id may get changed. // Server part can be added in the // data commit. password); }