mirror of https://github.com/sipwise/jitsi.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
739 lines
26 KiB
739 lines
26 KiB
/*
|
|
* 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.simpleaccreg;
|
|
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
import java.io.*;
|
|
import java.util.*;
|
|
import java.util.List;
|
|
|
|
import javax.imageio.*;
|
|
import javax.swing.*;
|
|
import javax.swing.text.*;
|
|
|
|
import net.java.sip.communicator.service.contactlist.*;
|
|
import net.java.sip.communicator.service.gui.*;
|
|
import net.java.sip.communicator.service.protocol.*;
|
|
import net.java.sip.communicator.util.*;
|
|
import net.java.sip.communicator.plugin.desktoputil.*;
|
|
|
|
import org.jitsi.service.configuration.*;
|
|
import org.osgi.framework.*;
|
|
|
|
/**
|
|
* The <tt>NoAccountFoundPage</tt> is the page shown in the account
|
|
* registration wizard shown in the beginning of the program, when no registered
|
|
* accounts are found.
|
|
*
|
|
* @author Yana Stamcheva
|
|
* @author Lubomir Marinov
|
|
*/
|
|
public class InitialAccountRegistrationFrame
|
|
extends SIPCommFrame
|
|
{
|
|
/**
|
|
* Serial version UID.
|
|
*/
|
|
private static final long serialVersionUID = 0L;
|
|
|
|
private ConfigurationService configurationService;
|
|
|
|
/**
|
|
* The <tt>Logger</tt> used by this <tt>InitialAccountRegistrationFrame</tt>
|
|
* for logging output.
|
|
*/
|
|
private final Logger logger
|
|
= Logger.getLogger(InitialAccountRegistrationFrame.class);
|
|
|
|
private final TransparentPanel mainAccountsPanel
|
|
= new TransparentPanel(new BorderLayout(10, 10));
|
|
|
|
private final TransparentPanel accountsPanel
|
|
= new TransparentPanel(new GridLayout(0, 2, 10, 10));
|
|
|
|
private final TransparentPanel southPanel
|
|
= new TransparentPanel(new BorderLayout());
|
|
|
|
private final JButton signinButton
|
|
= new JButton(Resources.getString("service.gui.SIGN_IN"));
|
|
|
|
private final Collection<AccountRegistrationPanel> registrationForms =
|
|
new Vector<AccountRegistrationPanel>();
|
|
|
|
/**
|
|
* Creates an instance of <tt>NoAccountFoundPage</tt>.
|
|
*/
|
|
public InitialAccountRegistrationFrame()
|
|
{
|
|
super(false);
|
|
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
|
|
|
TransparentPanel mainPanel
|
|
= new TransparentPanel(new BorderLayout());
|
|
mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
|
|
|
|
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
|
|
southPanel.add(buttonPanel, BorderLayout.EAST);
|
|
JButton cancelButton
|
|
= new JButton(Resources.getString("service.gui.CANCEL"));
|
|
|
|
this.setTitle(Resources.getString("service.gui.SIGN_IN"));
|
|
|
|
this.setIconImage(
|
|
Resources.getImage("service.gui.SIP_COMMUNICATOR_LOGO").getImage());
|
|
|
|
// In order to have the same icon when using option panes
|
|
JOptionPane.getRootFrame().setIconImage(
|
|
Resources.getImage("service.gui.SIP_COMMUNICATOR_LOGO").getImage());
|
|
|
|
mainAccountsPanel.setBorder(
|
|
BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
|
|
|
this.getContentPane().add(mainPanel);
|
|
|
|
mainPanel.add(createTitleComponent(), BorderLayout.NORTH);
|
|
JScrollPane scroller = new JScrollPane(mainAccountsPanel);
|
|
scroller.setOpaque(false);
|
|
scroller.getViewport().setOpaque(false);
|
|
mainPanel.add(scroller, BorderLayout.CENTER);
|
|
mainPanel.add(southPanel, BorderLayout.SOUTH);
|
|
|
|
mainAccountsPanel.add(accountsPanel, BorderLayout.CENTER);
|
|
|
|
initProvisioningPanel();
|
|
|
|
mainAccountsPanel.setOpaque(false);
|
|
accountsPanel.setOpaque(false);
|
|
buttonPanel.setOpaque(false);
|
|
|
|
SigninActionListener actionListener = new SigninActionListener();
|
|
|
|
signinButton.addActionListener(actionListener);
|
|
cancelButton.addActionListener(actionListener);
|
|
|
|
buttonPanel.add(signinButton);
|
|
buttonPanel.add(cancelButton);
|
|
|
|
this.getRootPane().setDefaultButton(signinButton);
|
|
|
|
this.initAccountWizards();
|
|
|
|
// Create the default group
|
|
String groupName
|
|
= Resources.getApplicationProperty("impl.gui.DEFAULT_GROUP_NAME");
|
|
|
|
if(groupName != null && groupName.length() > 0)
|
|
{
|
|
MetaContactListService contactList =
|
|
SimpleAccountRegistrationActivator.getContactList();
|
|
Iterator<MetaContactGroup> iter
|
|
= contactList.getRoot().getSubgroups();
|
|
while (iter.hasNext())
|
|
{
|
|
MetaContactGroup gr = iter.next();
|
|
if (groupName.equals(gr.getGroupName()))
|
|
return;
|
|
}
|
|
|
|
contactList
|
|
.createMetaContactGroup(contactList.getRoot(), groupName);
|
|
|
|
getConfigurationService()
|
|
.setProperty(
|
|
"net.java.sip.communicator.impl.gui.addcontact.lastContactParent",
|
|
groupName);
|
|
}
|
|
|
|
this.getRootPane().validate();
|
|
this.pack();
|
|
|
|
// if the screen height is sufficiently large, expand the window size
|
|
// so that no scrolling is needed
|
|
if (scroller.getViewport().getHeight()
|
|
< Toolkit.getDefaultToolkit().getScreenSize().getHeight() - 230)
|
|
{
|
|
this.setSize(scroller.getViewport().getWidth() + 100,
|
|
scroller.getViewport().getHeight() + 150);
|
|
}
|
|
else
|
|
{
|
|
// otherwise add some width so that no horizontal scrolling is
|
|
// needed
|
|
this.setSize(this.getSize().width + 20,
|
|
this.getSize().height - 10);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Initializes the provisioning panel.
|
|
*/
|
|
private void initProvisioningPanel()
|
|
{
|
|
String isInitialProv = SimpleAccountRegistrationActivator.getResources()
|
|
.getSettingsString(
|
|
"plugin.provisioning.IS_INITIAL_PROVISIONING_LINK");
|
|
|
|
if (isInitialProv != null && isInitialProv.length() > 0
|
|
&& !Boolean.parseBoolean(isInitialProv))
|
|
return;
|
|
|
|
String useProvisioningString = SimpleAccountRegistrationActivator
|
|
.getResources().getI18NString("service.gui.USE_PROVISIONING");
|
|
|
|
final JLabel provisioningLabel =
|
|
new JLabel("<html><a href=''>"
|
|
+ useProvisioningString
|
|
+ "</a></html>");
|
|
|
|
provisioningLabel.setCursor(new Cursor(Cursor.HAND_CURSOR));
|
|
provisioningLabel.setToolTipText(useProvisioningString);
|
|
|
|
provisioningLabel.addMouseListener(new MouseAdapter()
|
|
{
|
|
@Override
|
|
public void mousePressed(MouseEvent e)
|
|
{
|
|
ConfigurationContainer configContainer
|
|
= SimpleAccountRegistrationActivator.getUIService()
|
|
.getConfigurationContainer();
|
|
|
|
ConfigurationForm advancedConfigForm
|
|
= SimpleAccountRegistrationActivator.getAdvancedConfigForm();
|
|
|
|
if (advancedConfigForm != null)
|
|
{
|
|
configContainer.setSelected(advancedConfigForm);
|
|
|
|
if (advancedConfigForm instanceof ConfigurationContainer)
|
|
{
|
|
ConfigurationForm provisioningForm
|
|
= SimpleAccountRegistrationActivator
|
|
.getProvisioningConfigForm();
|
|
|
|
if (provisioningForm != null)
|
|
{
|
|
((ConfigurationContainer) advancedConfigForm)
|
|
.setSelected(provisioningForm);
|
|
}
|
|
}
|
|
}
|
|
|
|
configContainer.setVisible(true);
|
|
}
|
|
});
|
|
|
|
southPanel.add(provisioningLabel, BorderLayout.WEST);
|
|
}
|
|
|
|
private void initAccountWizards()
|
|
{
|
|
String simpleWizards
|
|
= SimpleAccountRegistrationActivator.getConfigService()
|
|
.getString("plugin.simpleaccreg.PROTOCOL_ORDER");
|
|
|
|
StringTokenizer tokenizer = new StringTokenizer(simpleWizards, "|");
|
|
|
|
ServiceReference[] serviceRefs = null;
|
|
while (tokenizer.hasMoreTokens())
|
|
{
|
|
String protocolToken = tokenizer.nextToken();
|
|
|
|
String osgiFilter = "("
|
|
+ ProtocolProviderFactory.PROTOCOL
|
|
+ "="+protocolToken+")";
|
|
|
|
try
|
|
{
|
|
serviceRefs = SimpleAccountRegistrationActivator.bundleContext
|
|
.getServiceReferences(
|
|
AccountRegistrationWizard.class.getName(), osgiFilter);
|
|
|
|
if (serviceRefs != null && serviceRefs.length > 0)
|
|
{
|
|
AccountRegistrationWizard wizard
|
|
= (AccountRegistrationWizard)
|
|
|
|
SimpleAccountRegistrationActivator
|
|
.bundleContext.getService(serviceRefs[0]);
|
|
|
|
this.addAccountRegistrationForm(wizard);
|
|
}
|
|
}
|
|
catch (InvalidSyntaxException ex)
|
|
{
|
|
logger.error("GuiActivator : ", ex);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The account registration panel.
|
|
*/
|
|
private class AccountRegistrationPanel
|
|
extends JPanel
|
|
{
|
|
/**
|
|
* Serial version UID.
|
|
*/
|
|
private static final long serialVersionUID = 0L;
|
|
|
|
private JLabel usernameLabel
|
|
= new JLabel(Resources.getString(
|
|
"plugin.simpleaccregwizz.LOGIN_USERNAME"));
|
|
|
|
private JLabel passwordLabel
|
|
= new JLabel(Resources.getString("service.gui.PASSWORD"));
|
|
|
|
private JTextField usernameField = new JTextField();
|
|
|
|
private JLabel usernameExampleLabel = new JLabel();
|
|
|
|
private JPasswordField passwordField = new JPasswordField();
|
|
|
|
private JPanel labelsPanel = new JPanel(new GridLayout(0, 1, 5, 0));
|
|
|
|
private JPanel fieldsPanel = new JPanel(new GridLayout(0, 1, 5, 0));
|
|
|
|
private JPanel emptyPanel = new JPanel();
|
|
|
|
private JPanel inputPanel = new JPanel(new BorderLayout(5, 5));
|
|
|
|
private JPanel iconDescriptionPanel = new JPanel(new BorderLayout());
|
|
|
|
private JTextArea descriptionArea = new JTextArea();
|
|
|
|
private final AccountRegistrationWizard wizard;
|
|
|
|
public AccountRegistrationPanel(
|
|
AccountRegistrationWizard accountWizard,
|
|
boolean isPreferredWizard)
|
|
{
|
|
super(new BorderLayout(5, 5));
|
|
|
|
this.wizard = accountWizard;
|
|
|
|
// Obtain the simple form in order to initialize all predefined
|
|
// values.
|
|
// TODO: Use the simple form instead of creating new fields and
|
|
// panels here.
|
|
wizard.getSimpleForm(false);
|
|
|
|
JLabel protocolLabel = new JLabel();
|
|
JPanel inputRegisterPanel = new JPanel(new BorderLayout());
|
|
|
|
this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
|
|
|
this.setOpaque(false);
|
|
|
|
this.inputPanel.setOpaque(false);
|
|
this.labelsPanel.setOpaque(false);
|
|
this.fieldsPanel.setOpaque(false);
|
|
this.emptyPanel.setOpaque(false);
|
|
inputRegisterPanel.setOpaque(false);
|
|
this.iconDescriptionPanel.setOpaque(false);
|
|
|
|
this.add(inputRegisterPanel, BorderLayout.CENTER);
|
|
|
|
inputRegisterPanel.add(inputPanel, BorderLayout.NORTH);
|
|
|
|
if (((wizard instanceof ExtendedAccountRegistrationWizard)
|
|
&& ((ExtendedAccountRegistrationWizard) wizard)
|
|
.isSignupSupported()) || wizard.isWebSignupSupported())
|
|
{
|
|
String textKey =
|
|
isPreferredWizard ? "plugin.simpleaccregwizz.SPECIAL_SIGNUP"
|
|
: "plugin.simpleaccregwizz.SIGNUP";
|
|
JLabel signupLabel =
|
|
new JLabel("<html><a href=''>"
|
|
+ Resources.getString(textKey) + "</a></html>",
|
|
JLabel.RIGHT);
|
|
|
|
signupLabel.setFont(signupLabel.getFont().deriveFont(10f));
|
|
signupLabel.setCursor(new Cursor(Cursor.HAND_CURSOR));
|
|
signupLabel.setToolTipText(
|
|
Resources.getString(
|
|
"plugin.simpleaccregwizz.SPECIAL_SIGNUP"));
|
|
signupLabel.addMouseListener(new MouseAdapter()
|
|
{
|
|
@Override
|
|
public void mousePressed(MouseEvent e)
|
|
{
|
|
try
|
|
{
|
|
if ((wizard
|
|
instanceof ExtendedAccountRegistrationWizard)
|
|
&& ((ExtendedAccountRegistrationWizard) wizard)
|
|
.isSignupSupported())
|
|
{
|
|
showCreateAccountWindow(wizard);
|
|
dispose();
|
|
}
|
|
else if (wizard.isWebSignupSupported())
|
|
{
|
|
wizard.webSignup();
|
|
}
|
|
}
|
|
catch (UnsupportedOperationException ex)
|
|
{
|
|
// This should not happen, because we check if the
|
|
// operation is supported, before adding the sign
|
|
// up.
|
|
logger.error("The web sign up is not supported.",
|
|
ex);
|
|
}
|
|
}
|
|
});
|
|
|
|
inputRegisterPanel.add(signupLabel, BorderLayout.SOUTH);
|
|
}
|
|
|
|
this.inputPanel.add(labelsPanel, BorderLayout.WEST);
|
|
|
|
this.inputPanel.add(fieldsPanel, BorderLayout.CENTER);
|
|
|
|
this.iconDescriptionPanel.add(
|
|
protocolLabel, BorderLayout.NORTH);
|
|
|
|
protocolLabel.setFont(
|
|
protocolLabel.getFont().deriveFont(Font.BOLD, 14f));
|
|
this.usernameExampleLabel.setForeground(Color.DARK_GRAY);
|
|
this.usernameExampleLabel.setFont(
|
|
usernameExampleLabel.getFont().deriveFont(8f));
|
|
this.emptyPanel.setMaximumSize(new Dimension(40, 25));
|
|
|
|
this.labelsPanel.add(usernameLabel);
|
|
this.labelsPanel.add(emptyPanel);
|
|
this.labelsPanel.add(passwordLabel);
|
|
|
|
this.fieldsPanel.add(usernameField);
|
|
this.fieldsPanel.add(usernameExampleLabel);
|
|
this.fieldsPanel.add(passwordField);
|
|
|
|
this.usernameExampleLabel.setText(wizard.getUserNameExample());
|
|
|
|
protocolLabel.setText(wizard.getProtocolName());
|
|
|
|
Image image = null;
|
|
try
|
|
{
|
|
image = ImageIO.read(
|
|
new ByteArrayInputStream(wizard.getPageImage()));
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
logger.error("Unable to load image.", e);
|
|
}
|
|
|
|
if (image != null)
|
|
{
|
|
image = image.getScaledInstance(28, 28, Image.SCALE_SMOOTH);
|
|
|
|
protocolLabel.setIcon(new ImageIcon(image));
|
|
}
|
|
|
|
if (isPreferredWizard)
|
|
{
|
|
descriptionArea.setBorder(BorderFactory
|
|
.createEmptyBorder(10, 0, 0, 0));
|
|
|
|
descriptionArea.setFont(
|
|
descriptionArea.getFont().deriveFont(10f));
|
|
descriptionArea.setPreferredSize(new Dimension(220, 50));
|
|
descriptionArea.setLineWrap(true);
|
|
descriptionArea.setWrapStyleWord(true);
|
|
descriptionArea.setText(wizard.getProtocolDescription());
|
|
descriptionArea.setEditable(false);
|
|
descriptionArea.setOpaque(false);
|
|
|
|
this.iconDescriptionPanel.add(
|
|
descriptionArea, BorderLayout.CENTER);
|
|
|
|
this.add(iconDescriptionPanel, BorderLayout.WEST);
|
|
}
|
|
else
|
|
{
|
|
this.add(iconDescriptionPanel, BorderLayout.NORTH);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void paintComponent(Graphics g)
|
|
{
|
|
// do the superclass behavior first
|
|
super.paintComponent(g);
|
|
|
|
g = g.create();
|
|
try
|
|
{
|
|
AntialiasingManager.activateAntialiasing(g);
|
|
|
|
Graphics2D g2d = (Graphics2D) g;
|
|
|
|
// paint the background with the chosen color
|
|
g2d.setColor(Color.GRAY);
|
|
g2d.drawRoundRect(0, 0, getWidth() - 1, getHeight() - 1, 15, 15);
|
|
}
|
|
finally
|
|
{
|
|
g.dispose();
|
|
}
|
|
}
|
|
|
|
public boolean isFilled()
|
|
{
|
|
String username = usernameField.getText();
|
|
return (username != null) && (username.length() > 0);
|
|
}
|
|
|
|
public void signin() throws OperationFailedException
|
|
{
|
|
ProtocolProviderService protocolProvider =
|
|
wizard.signin(usernameField.getText(), new String(passwordField
|
|
.getPassword()));
|
|
|
|
saveAccountWizard(protocolProvider, wizard);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Adds a simple account registration form corresponding to the given
|
|
* <tt>AccountRegistrationWizard</tt>.
|
|
*
|
|
* @param wizard the <tt>AccountRegistrationWizard</tt>, which gives us
|
|
* information to fill our simple form.
|
|
*/
|
|
private void addAccountRegistrationForm(AccountRegistrationWizard wizard)
|
|
{
|
|
// We don't need to add wizards that are not interested in a
|
|
// simple sign in form.
|
|
if (!wizard.isSimpleFormEnabled())
|
|
return;
|
|
|
|
String preferredWizardName
|
|
= Resources.getLoginProperty("impl.gui.PREFERRED_ACCOUNT_WIZARD");
|
|
|
|
AccountRegistrationPanel accountPanel;
|
|
|
|
if (preferredWizardName != null
|
|
&& preferredWizardName.equals(wizard.getClass().getName()))
|
|
{
|
|
accountPanel = new AccountRegistrationPanel(wizard, true);
|
|
|
|
mainAccountsPanel.add(
|
|
accountPanel,
|
|
BorderLayout.NORTH);
|
|
|
|
mainAccountsPanel.validate();
|
|
}
|
|
else
|
|
{
|
|
accountPanel = new AccountRegistrationPanel(wizard, false);
|
|
|
|
accountsPanel.add(accountPanel);
|
|
|
|
accountsPanel.validate();
|
|
}
|
|
|
|
this.registrationForms.add(accountPanel);
|
|
}
|
|
|
|
/**
|
|
* Handles the event triggered by the "service.gui.SIGN_IN" button.
|
|
*/
|
|
private class SigninActionListener implements ActionListener
|
|
{
|
|
public void actionPerformed(ActionEvent evt)
|
|
{
|
|
JButton button = (JButton) evt.getSource();
|
|
|
|
if (button.equals(signinButton))
|
|
{
|
|
Iterator<AccountRegistrationPanel> regIterator =
|
|
registrationForms.iterator();
|
|
|
|
if (regIterator.hasNext())
|
|
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
|
|
|
while(regIterator.hasNext())
|
|
{
|
|
AccountRegistrationPanel regForm = regIterator.next();
|
|
|
|
try
|
|
{
|
|
if (regForm.isFilled())
|
|
regForm.signin();
|
|
}
|
|
catch (OperationFailedException e)
|
|
{
|
|
if (logger.isDebugEnabled())
|
|
logger.debug("The sign in operation has failed.");
|
|
|
|
PopupDialog popupDialog
|
|
= SimpleAccountRegistrationActivator.getUIService()
|
|
.getPopupDialog();
|
|
|
|
if (e.getErrorCode()
|
|
== OperationFailedException.ILLEGAL_ARGUMENT)
|
|
{
|
|
popupDialog.showMessagePopupDialog(
|
|
Resources.getString(
|
|
"service.gui.USERNAME_NULL"),
|
|
Resources.getString(
|
|
"service.gui.ERROR"),
|
|
PopupDialog.ERROR_MESSAGE);
|
|
}
|
|
else if (e.getErrorCode()
|
|
== OperationFailedException
|
|
.IDENTIFICATION_CONFLICT)
|
|
{
|
|
popupDialog.showMessagePopupDialog(
|
|
Resources.getString(
|
|
"service.gui.USER_EXISTS_ERROR"),
|
|
Resources.getString(
|
|
"service.gui.ERROR"),
|
|
PopupDialog.ERROR_MESSAGE);
|
|
}
|
|
else if (e.getErrorCode()
|
|
== OperationFailedException
|
|
.SERVER_NOT_SPECIFIED)
|
|
{
|
|
popupDialog.showMessagePopupDialog(
|
|
Resources.getString(
|
|
"service.gui.SPECIFY_SERVER"),
|
|
Resources.getString(
|
|
"service.gui.ERROR"),
|
|
PopupDialog.ERROR_MESSAGE);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
InitialAccountRegistrationFrame initialAccountRegistrationFrame =
|
|
InitialAccountRegistrationFrame.this;
|
|
initialAccountRegistrationFrame.setVisible(false);
|
|
initialAccountRegistrationFrame.dispose();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Saves the (protocol provider, wizard) pair in through the
|
|
* <tt>ConfigurationService</tt>.
|
|
*
|
|
* @param protocolProvider the protocol provider to save
|
|
* @param wizard the wizard to save
|
|
*/
|
|
private void saveAccountWizard(ProtocolProviderService protocolProvider,
|
|
AccountRegistrationWizard wizard)
|
|
{
|
|
String prefix = "net.java.sip.communicator.impl.gui.accounts";
|
|
|
|
ConfigurationService configService = getConfigurationService();
|
|
|
|
List<String> accounts = configService.getPropertyNamesByPrefix(prefix, true);
|
|
boolean savedAccount = false;
|
|
|
|
for (String accountRootPropName : accounts)
|
|
{
|
|
String accountUID = configService.getString(accountRootPropName);
|
|
|
|
if (accountUID.equals(protocolProvider.getAccountID()
|
|
.getAccountUniqueID()))
|
|
{
|
|
|
|
configService.setProperty(accountRootPropName + ".wizard",
|
|
wizard.getClass().getName().replace('.', '_'));
|
|
|
|
savedAccount = true;
|
|
}
|
|
}
|
|
|
|
if (!savedAccount)
|
|
{
|
|
String accNodeName =
|
|
"acc" + Long.toString(System.currentTimeMillis());
|
|
|
|
String accountPackage =
|
|
"net.java.sip.communicator.impl.gui.accounts." + accNodeName;
|
|
|
|
configService.setProperty(accountPackage, protocolProvider
|
|
.getAccountID().getAccountUniqueID());
|
|
|
|
configService.setProperty(accountPackage + ".wizard", wizard);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Returns the <tt>ConfigurationService</tt>.
|
|
*
|
|
* @return the <tt>ConfigurationService</tt>
|
|
*/
|
|
public ConfigurationService getConfigurationService()
|
|
{
|
|
if (configurationService == null)
|
|
{
|
|
BundleContext bundleContext =
|
|
SimpleAccountRegistrationActivator.bundleContext;
|
|
ServiceReference configReference =
|
|
bundleContext.getServiceReference(ConfigurationService.class
|
|
.getName());
|
|
|
|
configurationService =
|
|
(ConfigurationService) bundleContext
|
|
.getService(configReference);
|
|
}
|
|
return configurationService;
|
|
}
|
|
|
|
/**
|
|
* Creates the title component.
|
|
* @return the newly created title component
|
|
*/
|
|
private JComponent createTitleComponent()
|
|
{
|
|
JTextPane titlePane = new JTextPane();
|
|
SimpleAttributeSet aSet = new SimpleAttributeSet();
|
|
StyleConstants.setAlignment(aSet, StyleConstants.ALIGN_CENTER);
|
|
StyleConstants.setBold(aSet, true);
|
|
StyleConstants.setFontFamily(aSet, titlePane.getFont().getFamily());
|
|
|
|
titlePane.setParagraphAttributes(aSet, true);
|
|
titlePane.setEditable(false);
|
|
titlePane.setText(Resources.getString(
|
|
"plugin.simpleaccregwizz.INITIAL_ACCOUNT_REGISTRATION"));
|
|
titlePane.setOpaque(false);
|
|
|
|
return titlePane;
|
|
}
|
|
|
|
/**
|
|
* Show the create account window for the given wizard.
|
|
*
|
|
* @param wizard the <tt>AccountRegistrationWizard</tt>, for which we're
|
|
* opening the window
|
|
*/
|
|
private void showCreateAccountWindow(AccountRegistrationWizard wizard)
|
|
{
|
|
CreateAccountWindow createAccountWindow
|
|
= SimpleAccountRegistrationActivator
|
|
.getUIService().getCreateAccountWindow();
|
|
|
|
createAccountWindow.setSelectedWizard(wizard, true);
|
|
|
|
if (wizard instanceof ExtendedAccountRegistrationWizard)
|
|
{
|
|
((ExtendedAccountRegistrationWizard) wizard).setCreateAccountView();
|
|
}
|
|
|
|
createAccountWindow.setVisible(true);
|
|
}
|
|
|
|
@Override
|
|
protected void close(boolean isEscaped)
|
|
{
|
|
}
|
|
}
|