diff options
19 files changed, 738 insertions, 2 deletions
@@ -916,7 +916,7 @@ bundle-plugin-googletalkaccregwizz,bundle-argdelegation-service, bundle-argdelegation,bundle-zrtp4j,bundle-json, bundle-filehistory,bundle-metahistory,bundle-metahistory-slick, - bundle-plugin-facebookaccregwizz, + bundle-plugin-facebookaccregwizz,bundle-plugin-ippiaccregwizz, bundle-bouncycastle,bundle-plugin-otr,bundle-plugin-iptelaccregwizz, bundle-contactsource,bundle-plugin-reconnect,bundle-plugin-securityconfig, bundle-plugin-advancedconfig, @@ -1711,6 +1711,16 @@ javax.swing.event, javax.swing.border"/> </jar> </target> + <!-- BUNDLE-PLUGIN-IPPIACCREGWIZZ --> + <target name="bundle-plugin-ippiaccregwizz"> + <!-- Creates a bundle for the plugin ippi Account Registration Wizard.--> + <jar compress="false" destfile="${bundles.dest}/ippiaccregwizz.jar" + manifest="${src}/net/java/sip/communicator/plugin/ippiaccregwizz/ippiaccregwizz.manifest.mf"> + <zipfileset dir="${dest}/net/java/sip/communicator/plugin/ippiaccregwizz" + prefix="net/java/sip/communicator/plugin/ippiaccregwizz"/> + </jar> + </target> + <!-- BUNDLE-PLUGIN-GIBBERISHACCREGWIZZ --> <target name="bundle-plugin-gibberishaccregwizz"> <!-- Creates a bundle for the plugin Gibberish Account Registration diff --git a/lib/felix.client.run.properties b/lib/felix.client.run.properties index f1cc0c5..12e3842 100644 --- a/lib/felix.client.run.properties +++ b/lib/felix.client.run.properties @@ -159,6 +159,7 @@ felix.auto.start.67= \ felix.auto.start.70= \ reference:file:sc-bundles/simpleaccreg.jar \ reference:file:sc-bundles/securityconfig.jar \ + reference:file:sc-bundles/ippiaccregwizz.jar \ reference:file:sc-bundles/iptelaccregwizz.jar felix.auto.start.75= \ diff --git a/resources/config/defaults.properties b/resources/config/defaults.properties index d26deff..699e39c 100644 --- a/resources/config/defaults.properties +++ b/resources/config/defaults.properties @@ -65,6 +65,9 @@ plugin.jabberaccregwizz.SERVER_COMMENTS=net/java/sip/communicator/plugin/jabbera # protocol order for the simple initial account registration wizard plugin.simpleaccreg.PROTOCOL_ORDER=SIP|MSN|Yahoo|ICQ|AIM|Jabber +# ippi account wizard create accoutns link +plugin.ippiaccregwizz.REGISTER_LINK=https://soap.ippi.fr/subscription/jitsi.php?login={0}&password={1}&email={2} + # Default provisioning method plugin.provisioning.DEFAULT_PROVISIONING_METHOD= diff --git a/resources/images/images.properties b/resources/images/images.properties index 3e385b8..a270c85 100644 --- a/resources/images/images.properties +++ b/resources/images/images.properties @@ -396,6 +396,10 @@ service.protocol.iptel.IPTEL_64x64=resources/images/protocol/iptel/sip64x64.png service.protocol.sip2sip.SIP2SIP_16x16=resources/images/protocol/sip2sip/sip16x16.png service.protocol.sip2sip.SIP2SIP_64x64=resources/images/protocol/sip2sip/sip64x64.png +# ippi accregwizz +service.protocol.ippi.IPPI_16x16=resources/images/protocol/ippi/sip16x16.png +service.protocol.ippi.IPPI_64x64=resources/images/protocol/ippi/sip64x64.png + # facebook accregwizz service.protocol.facebook.FACEBOOK_16x16=resources/images/protocol/facebook/facebook-online.png service.protocol.facebook.FACEBOOK_32x32=resources/images/protocol/facebook/facebook32.png @@ -523,4 +527,4 @@ plugin.spellcheck.PERSONAL_DIR=resources/images/plugin/spellchecker/personalDict plugin.spellcheck.WORD_INCLUDE=resources/images/plugin/spellchecker/wordInclude.png plugin.spellcheck.WORD_EXCLUDE=resources/images/plugin/spellchecker/wordExclude.png plugin.spellcheck.ENABLE=resources/images/plugin/spellchecker/enableSpellchecker.png -plugin.spellcheck.DISABLE=resources/images/plugin/spellchecker/disableSpellchecker.png
\ No newline at end of file +plugin.spellcheck.DISABLE=resources/images/plugin/spellchecker/disableSpellchecker.png diff --git a/resources/images/protocol/ippi/sip16x16-away.png b/resources/images/protocol/ippi/sip16x16-away.png Binary files differnew file mode 100644 index 0000000..24ef080 --- /dev/null +++ b/resources/images/protocol/ippi/sip16x16-away.png diff --git a/resources/images/protocol/ippi/sip16x16-busy.png b/resources/images/protocol/ippi/sip16x16-busy.png Binary files differnew file mode 100644 index 0000000..27a0dde --- /dev/null +++ b/resources/images/protocol/ippi/sip16x16-busy.png diff --git a/resources/images/protocol/ippi/sip16x16-offline.png b/resources/images/protocol/ippi/sip16x16-offline.png Binary files differnew file mode 100644 index 0000000..9502b87 --- /dev/null +++ b/resources/images/protocol/ippi/sip16x16-offline.png diff --git a/resources/images/protocol/ippi/sip16x16-online.png b/resources/images/protocol/ippi/sip16x16-online.png Binary files differnew file mode 100644 index 0000000..e30b77c --- /dev/null +++ b/resources/images/protocol/ippi/sip16x16-online.png diff --git a/resources/images/protocol/ippi/sip16x16-phone.png b/resources/images/protocol/ippi/sip16x16-phone.png Binary files differnew file mode 100644 index 0000000..321ce8a --- /dev/null +++ b/resources/images/protocol/ippi/sip16x16-phone.png diff --git a/resources/images/protocol/ippi/sip16x16.png b/resources/images/protocol/ippi/sip16x16.png Binary files differnew file mode 100644 index 0000000..e30b77c --- /dev/null +++ b/resources/images/protocol/ippi/sip16x16.png diff --git a/resources/images/protocol/ippi/sip32x32.png b/resources/images/protocol/ippi/sip32x32.png Binary files differnew file mode 100644 index 0000000..f580b5a --- /dev/null +++ b/resources/images/protocol/ippi/sip32x32.png diff --git a/resources/images/protocol/ippi/sip48x48.png b/resources/images/protocol/ippi/sip48x48.png Binary files differnew file mode 100644 index 0000000..90155b0 --- /dev/null +++ b/resources/images/protocol/ippi/sip48x48.png diff --git a/resources/images/protocol/ippi/sip64x64.png b/resources/images/protocol/ippi/sip64x64.png Binary files differnew file mode 100644 index 0000000..65d5d74 --- /dev/null +++ b/resources/images/protocol/ippi/sip64x64.png diff --git a/resources/languages/resources.properties b/resources/languages/resources.properties index cd2c4d4..23ad2f9 100644 --- a/resources/languages/resources.properties +++ b/resources/languages/resources.properties @@ -969,6 +969,18 @@ plugin.sip2sipaccregwizz.INFO_NOTE=<html>For help about this service visit <a hr plugin.sip2sipaccregwizz.EXISTING_ACCOUNT=Existing sip2sip.info account
plugin.sip2sipaccregwizz.CREATE_ACCOUNT=Create a free sip2sip.info account
+# ippi accregwizz
+plugin.ippiaccregwizz.PROTOCOL_NAME=ippi
+plugin.ippiaccregwizz.PROTOCOL_DESCRIPTION=VoIP && Instant Messaging
+plugin.ippiaccregwizz.USERNAME=Username
+plugin.ippiaccregwizz.RETYPE_PASSWORD=Retype password
+plugin.ippiaccregwizz.EMAIL=Email address
+plugin.ippiaccregwizz.NEW_ACCOUNT_TITLE=For help about this service visit<br>http://ippi.fr
+plugin.ippiaccregwizz.EMAIL_NOTE=<html>The email address is used to send voicemail messages, <br>missed calls notifications and to recover a lost password</html>
+plugin.ippiaccregwizz.INFO_NOTE=<html>For help about this service visit <a href=''>http://ippi.fr</a></html>
+plugin.ippiaccregwizz.EXISTING_ACCOUNT=Existing ippi account
+plugin.ippiaccregwizz.CREATE_ACCOUNT=Create a free ippi account
+
# key binding chooser
plugin.keybindings.CHAT_CLOSE=Close Chat Window
plugin.keybindings.CHAT_COPY=Copy
diff --git a/src/net/java/sip/communicator/impl/gui/main/account/NewAccountDialog.java b/src/net/java/sip/communicator/impl/gui/main/account/NewAccountDialog.java index 598445c..436fb82 100644 --- a/src/net/java/sip/communicator/impl/gui/main/account/NewAccountDialog.java +++ b/src/net/java/sip/communicator/impl/gui/main/account/NewAccountDialog.java @@ -577,6 +577,12 @@ public class NewAccountDialog } }); } + else + { + // no provider, maybe an error, stop connecting + // so we can proceed with the actions + stopConnecting(wizardContainer); + } } catch (OperationFailedException e) { diff --git a/src/net/java/sip/communicator/plugin/ippiaccregwizz/CreateIppiAccountForm.java b/src/net/java/sip/communicator/plugin/ippiaccregwizz/CreateIppiAccountForm.java new file mode 100644 index 0000000..9c69ca7 --- /dev/null +++ b/src/net/java/sip/communicator/plugin/ippiaccregwizz/CreateIppiAccountForm.java @@ -0,0 +1,298 @@ +/* + * 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.ippiaccregwizz; + +import java.awt.*; +import java.awt.event.*; +import java.io.*; +import java.net.*; +import java.text.*; + +import javax.swing.*; +import javax.swing.text.*; + +import org.json.*; + +import net.java.sip.communicator.plugin.sipaccregwizz.*; +import net.java.sip.communicator.util.*; +import net.java.sip.communicator.util.swing.*; + +/** + * @author Yana Stamcheva + * @author Damian Minkov + */ +public class CreateIppiAccountForm + extends TransparentPanel + implements SIPAccountCreationFormService +{ + /** + * The logger. + */ + private static final Logger logger + = Logger.getLogger(CreateIppiAccountForm.class); + + /** + * The user name text field. + */ + private final JTextField usernameField = new TrimTextField(); + + /** + * The password field. + */ + private final JPasswordField passField = new JPasswordField(); + + /** + * The retype password field. + */ + private final JPasswordField retypePassField = new JPasswordField(); + + /** + * The email field. + */ + private final JTextField emailField = new JTextField(); + + /** + * The error text pane. + */ + private final JTextPane errorPane = new JTextPane(); + + /** + * The register link. + */ + private final static String registerLink + = IppiAccRegWizzActivator.getResources().getSettingsString( + "plugin.ippiaccregwizz.REGISTER_LINK"); + + /** + * Creates an instance of <tt>RegisterIppiAccountForm</tt>. + */ + public CreateIppiAccountForm() + { + super(new BorderLayout()); + + this.init(); + } + + /** + * Initializes this panel. + */ + private void init() + { + JPanel mainPanel = new TransparentPanel(new BorderLayout()); + + mainPanel.setBorder(BorderFactory.createTitledBorder( + IppiAccRegWizzActivator.getResources() + .getI18NString("plugin.sipaccregwizz.CREATE_ACCOUNT_TITLE"))); + + JPanel labelsPanel = new TransparentPanel(new GridLayout(0, 1)); + + JPanel valuesPanel = new TransparentPanel(new GridLayout(0, 1)); + + JLabel usernameLabel + = new JLabel(IppiAccRegWizzActivator.getResources() + .getI18NString("plugin.ippiaccregwizz.USERNAME")); + + JLabel passLabel + = new JLabel(IppiAccRegWizzActivator.getResources() + .getI18NString("service.gui.PASSWORD")); + + JLabel retypePasswordLabel + = new JLabel(IppiAccRegWizzActivator.getResources() + .getI18NString("plugin.ippiaccregwizz.RETYPE_PASSWORD")); + + JLabel emailLabel + = new JLabel(IppiAccRegWizzActivator.getResources() + .getI18NString("plugin.ippiaccregwizz.EMAIL")); + + labelsPanel.add(usernameLabel); + labelsPanel.add(passLabel); + labelsPanel.add(retypePasswordLabel); + labelsPanel.add(emailLabel); + + valuesPanel.add(usernameField); + valuesPanel.add(passField); + valuesPanel.add(retypePassField); + valuesPanel.add(emailField); + + JLabel emailDescriptionLabel + = new JLabel(IppiAccRegWizzActivator.getResources() + .getI18NString("plugin.ippiaccregwizz.EMAIL_NOTE"), + SwingConstants.CENTER); + emailDescriptionLabel.setForeground(Color.GRAY); + emailDescriptionLabel.setFont(emailDescriptionLabel.getFont().deriveFont(8)); + emailDescriptionLabel.setBorder(BorderFactory.createEmptyBorder(0, 10, 8, 10)); + + initErrorArea(); + + mainPanel.add(labelsPanel, BorderLayout.WEST); + mainPanel.add(valuesPanel, BorderLayout.CENTER); + mainPanel.add(emailDescriptionLabel, BorderLayout.SOUTH); + + this.add(mainPanel, BorderLayout.CENTER); + + JLabel infoLabel + = new JLabel(IppiAccRegWizzActivator.getResources() + .getI18NString("plugin.ippiaccregwizz.INFO_NOTE"), + SwingConstants.RIGHT); + infoLabel.setCursor(new Cursor(Cursor.HAND_CURSOR)); + infoLabel.setForeground(Color.GRAY); + infoLabel.setFont(emailDescriptionLabel.getFont().deriveFont(8)); + infoLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 8, 0)); + infoLabel.addMouseListener(new MouseAdapter() + { + public void mousePressed(MouseEvent e) + { + IppiAccRegWizzActivator.getBrowserLauncher() + .openURL("http://ippi.fr"); + } + }); + + this.add(infoLabel, BorderLayout.SOUTH); + } + + /** + * Creates the error area component. + */ + private void initErrorArea() + { + SimpleAttributeSet attribs = new SimpleAttributeSet(); + StyleConstants.setAlignment(attribs, StyleConstants.ALIGN_RIGHT); + StyleConstants.setFontFamily(attribs, errorPane.getFont().getFamily()); + StyleConstants.setForeground(attribs, Color.RED); + errorPane.setParagraphAttributes(attribs, true); + errorPane.setPreferredSize(new Dimension(100, 50)); + errorPane.setMinimumSize(new Dimension(100, 50)); + errorPane.setOpaque(false); + } + + /** + * Creates this account on the server. + * @return the created account + */ + public NewAccount createAccount() + { + NewAccount newAccount = null; + try + { + String registerLinkFilled = MessageFormat.format(registerLink, + URLEncoder.encode(usernameField.getText(), "UTF-8"), + URLEncoder.encode(new String(passField.getPassword()), "UTF-8"), + URLEncoder.encode(emailField.getText(), "UTF-8")); + + URL url = new URL(registerLinkFilled); + URLConnection conn = url.openConnection(); + + // If this is not an http connection we have nothing to do here. + if (!(conn instanceof HttpURLConnection)) + { + return null; + } + + HttpURLConnection httpConn = (HttpURLConnection) conn; + + int responseCode = httpConn.getResponseCode(); + + if (responseCode == HttpURLConnection.HTTP_OK) + { + // Read all the text returned by the server + BufferedReader in = new BufferedReader( + new InputStreamReader(conn.getInputStream())); + String str; + + StringBuffer stringBuffer = new StringBuffer(); + while ((str = in.readLine()) != null) + { + stringBuffer.append(str); + } + + if (logger.isInfoEnabled()) + logger.info("JSON response to create account request: " + + stringBuffer.toString()); + + newAccount = parseHttpResponse(stringBuffer.toString()); + } + } + catch (MalformedURLException e1) + { + if (logger.isInfoEnabled()) + logger.info("Failed to create URL with string: " + + registerLink, e1); + } + catch (IOException e1) + { + if (logger.isInfoEnabled()) + logger.info("Failed to open connection.", e1); + } + return newAccount; + } + + /** + * Returns the form, which would be used by the user to create a new + * account. + * @return the component of the form + */ + public Component getForm() + { + return this; + } + + /** + * Clears all the data previously entered in the form. + */ + public void clear() + { + usernameField.setText(""); + passField.setText(""); + retypePassField.setText(""); + emailField.setText(""); + errorPane.setText(""); + + remove(errorPane); + } + + /** + * Parses the given http response. + * @param response the http response to parse + * @return the new account + */ + private NewAccount parseHttpResponse(String response) + { + NewAccount newAccount = null; + try + { + JSONObject jsonObject = new JSONObject(response); + boolean isSuccess = jsonObject.getBoolean("success"); + + if (isSuccess) + { + newAccount = new NewAccount( + usernameField.getText() + "@ippi.fr", + passField.getPassword(), + null, + "ippi.fr"); + } + else + { + String errorMessage + = jsonObject.getString("error_message"); + + errorPane.setText(errorMessage); + add(errorPane, BorderLayout.NORTH); + + SwingUtilities.getWindowAncestor( + CreateIppiAccountForm.this).pack(); + } + } + catch (JSONException e1) + { + if (logger.isInfoEnabled()) + logger.info("Failed Json parsing.", e1); + } + + return newAccount; + } +} diff --git a/src/net/java/sip/communicator/plugin/ippiaccregwizz/IppiAccRegWizzActivator.java b/src/net/java/sip/communicator/plugin/ippiaccregwizz/IppiAccRegWizzActivator.java new file mode 100644 index 0000000..1411181 --- /dev/null +++ b/src/net/java/sip/communicator/plugin/ippiaccregwizz/IppiAccRegWizzActivator.java @@ -0,0 +1,125 @@ +/* + * 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.ippiaccregwizz; + +import java.util.*; + +import org.osgi.framework.*; + +import net.java.sip.communicator.service.browserlauncher.*; +import net.java.sip.communicator.service.gui.*; +import net.java.sip.communicator.service.protocol.*; +import net.java.sip.communicator.service.resources.*; + +/** + * Registers the <tt>IppiAccountRegistrationWizard</tt> in the UI Service. + * + * @author Lubomir Marinov + * @author Yana Stamcheva + * @author Damian Minkov + */ +public class IppiAccRegWizzActivator + implements BundleActivator +{ + /** + * The bundle context. + */ + public static BundleContext bundleContext; + + /** + * The browser launcher service. + */ + private static BrowserLauncherService browserLauncherService; + + /** + * The resources service. + */ + private static ResourceManagementService resourcesService; + + /** + * The ui service. + */ + private static UIService uiService; + + /** + * Starts this bundle. + * @param bc BundleContext + * @throws Exception + */ + public void start(BundleContext bc) + throws Exception + { + bundleContext = bc; + + System.setProperty( + "http.agent", + System.getProperty("sip-communicator.application.name") + + "/" + + System.getProperty("sip-communicator.version")); + + uiService = + (UIService) bundleContext.getService(bundleContext + .getServiceReference(UIService.class.getName())); + + IppiAccountRegistrationWizard wizard + = new IppiAccountRegistrationWizard(uiService + .getAccountRegWizardContainer()); + + Hashtable<String, String> containerFilter + = new Hashtable<String, String>(); + containerFilter.put( + ProtocolProviderFactory.PROTOCOL, + IppiAccountRegistrationWizard.PROTOCOL); + + bundleContext.registerService( + AccountRegistrationWizard.class.getName(), + wizard, + containerFilter); + } + + public void stop(BundleContext bundleContext) throws Exception {} + + /** + * Returns the <tt>UIService</tt>. + * + * @return the <tt>UIService</tt> + */ + public static UIService getUIService() + { + return uiService; + } + + /** + * Returns the <tt>BrowserLauncherService</tt> obtained from the bundle + * context. + * @return the <tt>BrowserLauncherService</tt> obtained from the bundle + * context + */ + public static BrowserLauncherService getBrowserLauncher() + { + if (browserLauncherService == null) + { + browserLauncherService + = (BrowserLauncherService) bundleContext.getService( + bundleContext.getServiceReference( + BrowserLauncherService.class.getName())); + } + return browserLauncherService; + } + + /** + * Returns the service giving access to resources. + * @return the service giving access to resources + */ + public static ResourceManagementService getResources() + { + if (resourcesService == null) + resourcesService = ResourceManagementServiceUtils + .getService(IppiAccRegWizzActivator.bundleContext); + return resourcesService; + } +} diff --git a/src/net/java/sip/communicator/plugin/ippiaccregwizz/IppiAccountRegistrationWizard.java b/src/net/java/sip/communicator/plugin/ippiaccregwizz/IppiAccountRegistrationWizard.java new file mode 100644 index 0000000..ee0fbe8 --- /dev/null +++ b/src/net/java/sip/communicator/plugin/ippiaccregwizz/IppiAccountRegistrationWizard.java @@ -0,0 +1,235 @@ +/* + * 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.ippiaccregwizz; + +import java.util.*; + +import net.java.sip.communicator.plugin.sipaccregwizz.*; +import net.java.sip.communicator.service.gui.*; + +/** + * The <tt>IppiAccountRegistrationWizard</tt> is an implementation of the + * <tt>AccountRegistrationWizard</tt> for the SIP protocol. It should allow + * the user to create and configure a new IP Tel SIP account. + * + * @author Yana Stamcheva + * @author Damian Minkov + */ +public class IppiAccountRegistrationWizard + extends SIPAccountRegistrationWizard +{ + /** + * A constant pointing to the IP Tel protocol logo image. + */ + private static final String PROTOCOL_ICON + = "service.protocol.ippi.IPPI_16x16"; + + /** + * A constant pointing to the IP Tel protocol wizard page image. + */ + private static final String PAGE_IMAGE + = "service.protocol.ippi.IPPI_64x64"; + + /** + * The protocol name. + */ + public static final String PROTOCOL = "ippi"; + + /** + * The create account form. + */ + CreateIppiAccountForm createAccountForm = new CreateIppiAccountForm(); + + /** + * Creates an instance of <tt>IptelAccountRegistrationWizard</tt>. + * @param wizardContainer the wizard container + */ + public IppiAccountRegistrationWizard(WizardContainer wizardContainer) + { + super(wizardContainer); + } + + /** + * Returns the set of pages contained in this wizard. + * @return Iterator + */ + public Iterator<WizardPage> getPages() + { + SIPAccountRegistration reg = new SIPAccountRegistration(); + + setPredefinedProperties(reg); + + return getPages(reg); + } + + /** + * Returns the simple form. + * @return the simple form + */ + public Object getSimpleForm() + { + SIPAccountRegistration reg = new SIPAccountRegistration(); + + setPredefinedProperties(reg); + + return getSimpleForm(reg); + } + + /** + * Sets all predefined properties specific for this account wizard. + * + * @param reg the registration object + */ + private void setPredefinedProperties(SIPAccountRegistration reg) + { + // set default proxy, common for ippi + reg.setProxy("ippi.fr"); + reg.setDefaultTransport("TCP"); + reg.setDefaultDomain("ippi.fr"); + } + + /** + * Implements the <code>AccountRegistrationWizard.getIcon</code> method. + * Returns the icon to be used for this wizard. + * @return byte[] + */ + public byte[] getIcon() + { + return IppiAccRegWizzActivator.getResources() + .getImageInBytes(PROTOCOL_ICON); + } + + /** + * Implements the <code>AccountRegistrationWizard.getPageImage</code> method. + * Returns the image used to decorate the wizard page + * + * @return byte[] the image used to decorate the wizard page + */ + public byte[] getPageImage() + { + return IppiAccRegWizzActivator.getResources() + .getImageInBytes(PAGE_IMAGE); + } + + + /** + * Implements the <code>AccountRegistrationWizard.getProtocolName</code> + * method. Returns the protocol name for this wizard. + * @return String + */ + public String getProtocolName() + { + return Resources.getString( + "plugin.ippiaccregwizz.PROTOCOL_NAME"); + } + + /** + * Implements the <code>AccountRegistrationWizard.getProtocolDescription + * </code> method. Returns the description of the protocol for this wizard. + * @return String + */ + public String getProtocolDescription() + { + return Resources.getString( + "plugin.ippiaccregwizz.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: myusername or myusername@ippi.fr"; + } + + /** + * 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/ippi"; + } + + /** + * Returns the account icon path. + * @return the account icon path + */ + public String getAccountIconPath() + { + return "resources/images/protocol/ippi/sip32x32.png"; + } + + /** + * Opens the browser on the page sign up + */ + public void webSignup() + { + IppiAccRegWizzActivator.getBrowserLauncher() + .openURL("https://www.ippi.fr/index.php?page=sp-offer"); + } + + /** + * Returns the name of the web sign up link. + * @return the name of the web sign up link + */ + public String getWebSignupLinkName() + { + return Resources.getString("plugin.ippiaccregwizz.NEW_ACCOUNT_TITLE"); + } + + /** + * Returns an instance of <tt>CreateAccountService</tt> through which the + * user could create an account. This method is meant to be implemented by + * specific protocol provider wizards. + * @return an instance of <tt>CreateAccountService</tt> + */ + protected SIPAccountCreationFormService getCreateAccountService() + { + return createAccountForm; + } + + /** + * Returns the display label used for the sip id field. + * @return the sip id display label string. + */ + protected String getUsernameLabel() + { + return Resources.getString("plugin.ippiaccregwizz.USERNAME"); + } + + /** + * Return the string for add existing account button. + * @return the string for add existing account button. + */ + protected String getExistingAccountLabel() + { + return Resources.getString("plugin.ippiaccregwizz.EXISTING_ACCOUNT"); + } + + /** + * Return the string for create new account button. + * @return the string for create new account button. + */ + protected String getCreateAccountLabel() + { + return Resources.getString("plugin.ippiaccregwizz.CREATE_ACCOUNT"); + } +} diff --git a/src/net/java/sip/communicator/plugin/ippiaccregwizz/ippiaccregwizz.manifest.mf b/src/net/java/sip/communicator/plugin/ippiaccregwizz/ippiaccregwizz.manifest.mf new file mode 100644 index 0000000..1788612 --- /dev/null +++ b/src/net/java/sip/communicator/plugin/ippiaccregwizz/ippiaccregwizz.manifest.mf @@ -0,0 +1,42 @@ +Bundle-Activator: net.java.sip.communicator.plugin.ippiaccregwizz.IppiAccRegWizzActivator +Bundle-Name: Sip 2 Sip account registration wizard +Bundle-Description: Sip 2 Sip account registration wizard. +Bundle-Vendor: sip-communicator.org +Bundle-Version: 0.0.1 +System-Bundle: yes +Import-Package: org.osgi.framework, + net.java.sip.communicator.service.browserlauncher, + net.java.sip.communicator.service.configuration, + net.java.sip.communicator.service.contactlist, + net.java.sip.communicator.service.contactlist.event, + net.java.sip.communicator.service.fileaccess, + net.java.sip.communicator.service.gui, + net.java.sip.communicator.service.gui.event, + net.java.sip.communicator.service.protocol, + net.java.sip.communicator.service.protocol.event, + net.java.sip.communicator.service.protocol.icqconstants, + net.java.sip.communicator.service.resources, + net.java.sip.communicator.util, + net.java.sip.communicator.util.swing, + net.java.sip.communicator.plugin.sipaccregwizz, + javax.naming, + javax.naming.directory, + javax.xml.parsers, + org.w3c.dom, + org.xml.sax, + org.json, + javax.swing, + javax.swing.event, + javax.swing.table, + javax.swing.text, + javax.swing.text.html, + javax.accessibility, + javax.swing.plaf, + javax.swing.plaf.metal, + javax.swing.plaf.basic, + javax.imageio, + javax.swing.filechooser, + javax.swing.tree, + javax.swing.undo, + javax.swing.border, + org.jivesoftware.smack |