aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator/impl/gui/main/account/AccountsConfigurationPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/java/sip/communicator/impl/gui/main/account/AccountsConfigurationPanel.java')
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/account/AccountsConfigurationPanel.java552
1 files changed, 276 insertions, 276 deletions
diff --git a/src/net/java/sip/communicator/impl/gui/main/account/AccountsConfigurationPanel.java b/src/net/java/sip/communicator/impl/gui/main/account/AccountsConfigurationPanel.java
index 9511310..a85ffc3 100644
--- a/src/net/java/sip/communicator/impl/gui/main/account/AccountsConfigurationPanel.java
+++ b/src/net/java/sip/communicator/impl/gui/main/account/AccountsConfigurationPanel.java
@@ -1,4 +1,4 @@
-/*
+/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Copyright @ 2015 Atlassian Pty Ltd
@@ -15,278 +15,278 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package net.java.sip.communicator.impl.gui.main.account;
-
-import java.awt.*;
-import java.awt.event.*;
-import java.beans.*;
-import java.util.List;
-
-import javax.swing.*;
-import javax.swing.event.*;
-
-import net.java.sip.communicator.impl.gui.*;
-import net.java.sip.communicator.plugin.desktoputil.*;
-import net.java.sip.communicator.service.gui.*;
-import net.java.sip.communicator.service.protocol.*;
-import net.java.sip.communicator.util.account.*;
-
-import org.jitsi.service.configuration.*;
-import org.jitsi.service.resources.*;
-
-/**
- * The <tt>AccountsConfigurationPanel</tt> is the panel containing the accounts
- * list and according buttons shown in the options form.
- *
- * @author Yana Stamcheva
- * @author Lubomir Marinov
- */
-public class AccountsConfigurationPanel
- extends TransparentPanel
- implements ActionListener,
- ListSelectionListener,
- PropertyChangeListener
-{
- private final AccountList accountList;
-
- private final JButton newButton =
- new JButton(GuiActivator.getResources().getI18NString(
- "service.gui.ADD"));
-
- private final JButton editButton =
- new JButton(GuiActivator.getResources().getI18NString(
- "service.gui.EDIT"));
-
- private final JButton removeButton =
- new JButton(GuiActivator.getResources().getI18NString(
- "service.gui.DELETE"));
-
- /**
- * Creates and initializes this account configuration panel.
- */
- public AccountsConfigurationPanel()
- {
- super(new BorderLayout());
-
- accountList = new AccountList(this);
-
- /*
- * It seems that we can only delete one account at a time because our
- * confirmation dialog asks for one account.
- */
- accountList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-
- this.setPreferredSize(new Dimension(500, 400));
-
- JScrollPane accountListPane = new JScrollPane();
-
- accountListPane.getViewport().add(accountList);
- accountListPane.getVerticalScrollBar().setUnitIncrement(30);
-
- this.add(accountListPane, BorderLayout.CENTER);
-
- JPanel buttonsPanel =
- new TransparentPanel(new FlowLayout(FlowLayout.RIGHT));
-
- newButton.addActionListener(this);
- editButton.addActionListener(this);
- removeButton.addActionListener(this);
-
- this.newButton.setMnemonic(GuiActivator.getResources().getI18nMnemonic(
- "service.gui.ADD"));
- this.editButton
- .setMnemonic(GuiActivator.getResources().getI18nMnemonic(
- "service.gui.EDIT"));
- this.removeButton
- .setMnemonic(GuiActivator.getResources().getI18nMnemonic(
- "service.gui.DELETE"));
-
- buttonsPanel.add(newButton);
-
- buttonsPanel.add(editButton);
-
- buttonsPanel.add(removeButton);
-
- this.add(buttonsPanel, BorderLayout.SOUTH);
-
- accountList.addListSelectionListener(this);
- accountList.addPropertyChangeListener(
- AccountList.ACCOUNT_STATE_CHANGED, this);
- updateButtons();
- }
-
- /**
- * Handles the <tt>ActionEvent</tt> triggered when user clicks on on the
- * buttons. Shows the account registration wizard when user clicks on "New".
- *
- * @param evt the action event that has just occurred.
- */
- public void actionPerformed(ActionEvent evt)
- {
- Object sourceButton = evt.getSource();
-
- if (sourceButton.equals(newButton))
- {
- NewAccountDialog.showNewAccountDialog();
- }
- else if (sourceButton.equals(removeButton))
- {
- Account account = accountList.getSelectedAccount();
-
- if (account == null)
- return;
-
- AccountID accountID = account.getAccountID();
-
- ProtocolProviderFactory providerFactory =
- AccountUtils.getProtocolProviderFactory(
- accountID.getProtocolName());
-
- if (providerFactory != null)
- {
- int result = JOptionPane.showConfirmDialog(
- this,
- GuiActivator.getResources()
- .getI18NString("service.gui.REMOVE_ACCOUNT_MESSAGE"),
- GuiActivator.getResources().getI18NString(
- "service.gui.REMOVE_ACCOUNT"),
- JOptionPane.YES_NO_OPTION);
-
- if (result == JOptionPane.YES_OPTION)
- {
- ConfigurationService configService
- = GuiActivator.getConfigurationService();
- String prefix
- = "net.java.sip.communicator.impl.gui.accounts";
- List<String> accounts
- = configService.getPropertyNamesByPrefix(prefix, true);
-
- for (String accountRootPropName : accounts)
- {
- String accountUID
- = configService.getString(accountRootPropName);
-
- if (accountUID.equals(accountID.getAccountUniqueID()))
- {
- configService.setProperty(accountRootPropName, null);
- break;
- }
- }
- boolean isUninstalled
- = providerFactory.uninstallAccount(accountID);
-
- if (isUninstalled)
- {
- accountList.ensureAccountRemoved(accountID);
-
- // Notify the corresponding wizard that the account
- // would be removed.
- AccountRegWizardContainerImpl wizardContainer
- = (AccountRegWizardContainerImpl) GuiActivator
- .getUIService().getAccountRegWizardContainer();
-
- ProtocolProviderService protocolProvider =
- account.getProtocolProvider();
- AccountRegistrationWizard wizard =
- wizardContainer.getProtocolWizard(protocolProvider);
-
- if (wizard != null)
- wizard.accountRemoved(protocolProvider);
- }
- }
- }
- }
- else if (sourceButton.equals(editButton))
- {
- Account account = accountList.getSelectedAccount();
-
- if (account == null)
- return;
-
- AccountRegWizardContainerImpl wizard =
- (AccountRegWizardContainerImpl) GuiActivator.getUIService()
- .getAccountRegWizardContainer();
-
- AccountRegistrationWizard protocolWizard =
- wizard.getProtocolWizard(account.getProtocolProvider());
-
- ResourceManagementService resources = GuiActivator.getResources();
- if (protocolWizard != null)
- {
- wizard.setTitle(resources.getI18NString(
- "service.gui.ACCOUNT_REGISTRATION_WIZARD"));
-
- wizard.modifyAccount(account.getProtocolProvider());
- wizard.showDialog(false);
- }
- else
- {
- // There is no wizard for this account - just show an error
- // dialog:
- String title = resources.getI18NString("service.gui.ERROR");
- String message =
- resources.getI18NString("service.gui.EDIT_NOT_SUPPORTED");
- ErrorDialog dialog = new ErrorDialog(null, title, message);
- dialog.setVisible(true);
- }
- }
- }
-
- /**
- * Returns the edit button.
- *
- * @return the edit button
- */
- public JButton getEditButton()
- {
- return editButton;
- }
-
- /**
- * Updates enabled states of the buttons of this
- * <tt>AccountsConfigurationPanel</tt> to reflect their applicability to the
- * current selection in <tt>accountList</tt>.
- */
- private void updateButtons()
- {
- if(!SwingUtilities.isEventDispatchThread())
- {
- SwingUtilities.invokeLater(new Runnable()
- {
- public void run()
- {
- updateButtons();
- }
- });
- return;
- }
-
- Account account = accountList.getSelectedAccount();
- boolean enabled = (account != null);
-
- editButton.setEnabled(enabled && account.isEnabled());
- removeButton.setEnabled(enabled);
- }
-
- /**
- * Implements ListSelectionListener#valueChanged(ListSelectionEvent).
- * @param e the <tt>ListSelectionEvent</tt> that notified us
- */
- public void valueChanged(ListSelectionEvent e)
- {
- if (!e.getValueIsAdjusting())
- updateButtons();
- }
-
- /**
- * This method gets called when a property is changed.
- *
- * @param evt A PropertyChangeEvent object describing the event source
- * and the property that has changed.
- */
- public void propertyChange(PropertyChangeEvent evt)
- {
- // update buttons whenever an account changes its state
- updateButtons();
- }
-}
+package net.java.sip.communicator.impl.gui.main.account;
+
+import java.awt.*;
+import java.awt.event.*;
+import java.beans.*;
+import java.util.List;
+
+import javax.swing.*;
+import javax.swing.event.*;
+
+import net.java.sip.communicator.impl.gui.*;
+import net.java.sip.communicator.plugin.desktoputil.*;
+import net.java.sip.communicator.service.gui.*;
+import net.java.sip.communicator.service.protocol.*;
+import net.java.sip.communicator.util.account.*;
+
+import org.jitsi.service.configuration.*;
+import org.jitsi.service.resources.*;
+
+/**
+ * The <tt>AccountsConfigurationPanel</tt> is the panel containing the accounts
+ * list and according buttons shown in the options form.
+ *
+ * @author Yana Stamcheva
+ * @author Lubomir Marinov
+ */
+public class AccountsConfigurationPanel
+ extends TransparentPanel
+ implements ActionListener,
+ ListSelectionListener,
+ PropertyChangeListener
+{
+ private final AccountList accountList;
+
+ private final JButton newButton =
+ new JButton(GuiActivator.getResources().getI18NString(
+ "service.gui.ADD"));
+
+ private final JButton editButton =
+ new JButton(GuiActivator.getResources().getI18NString(
+ "service.gui.EDIT"));
+
+ private final JButton removeButton =
+ new JButton(GuiActivator.getResources().getI18NString(
+ "service.gui.DELETE"));
+
+ /**
+ * Creates and initializes this account configuration panel.
+ */
+ public AccountsConfigurationPanel()
+ {
+ super(new BorderLayout());
+
+ accountList = new AccountList(this);
+
+ /*
+ * It seems that we can only delete one account at a time because our
+ * confirmation dialog asks for one account.
+ */
+ accountList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+
+ this.setPreferredSize(new Dimension(500, 400));
+
+ JScrollPane accountListPane = new JScrollPane();
+
+ accountListPane.getViewport().add(accountList);
+ accountListPane.getVerticalScrollBar().setUnitIncrement(30);
+
+ this.add(accountListPane, BorderLayout.CENTER);
+
+ JPanel buttonsPanel =
+ new TransparentPanel(new FlowLayout(FlowLayout.RIGHT));
+
+ newButton.addActionListener(this);
+ editButton.addActionListener(this);
+ removeButton.addActionListener(this);
+
+ this.newButton.setMnemonic(GuiActivator.getResources().getI18nMnemonic(
+ "service.gui.ADD"));
+ this.editButton
+ .setMnemonic(GuiActivator.getResources().getI18nMnemonic(
+ "service.gui.EDIT"));
+ this.removeButton
+ .setMnemonic(GuiActivator.getResources().getI18nMnemonic(
+ "service.gui.DELETE"));
+
+ buttonsPanel.add(newButton);
+
+ buttonsPanel.add(editButton);
+
+ buttonsPanel.add(removeButton);
+
+ this.add(buttonsPanel, BorderLayout.SOUTH);
+
+ accountList.addListSelectionListener(this);
+ accountList.addPropertyChangeListener(
+ AccountList.ACCOUNT_STATE_CHANGED, this);
+ updateButtons();
+ }
+
+ /**
+ * Handles the <tt>ActionEvent</tt> triggered when user clicks on on the
+ * buttons. Shows the account registration wizard when user clicks on "New".
+ *
+ * @param evt the action event that has just occurred.
+ */
+ public void actionPerformed(ActionEvent evt)
+ {
+ Object sourceButton = evt.getSource();
+
+ if (sourceButton.equals(newButton))
+ {
+ NewAccountDialog.showNewAccountDialog();
+ }
+ else if (sourceButton.equals(removeButton))
+ {
+ Account account = accountList.getSelectedAccount();
+
+ if (account == null)
+ return;
+
+ AccountID accountID = account.getAccountID();
+
+ ProtocolProviderFactory providerFactory =
+ AccountUtils.getProtocolProviderFactory(
+ accountID.getProtocolName());
+
+ if (providerFactory != null)
+ {
+ int result = JOptionPane.showConfirmDialog(
+ this,
+ GuiActivator.getResources()
+ .getI18NString("service.gui.REMOVE_ACCOUNT_MESSAGE"),
+ GuiActivator.getResources().getI18NString(
+ "service.gui.REMOVE_ACCOUNT"),
+ JOptionPane.YES_NO_OPTION);
+
+ if (result == JOptionPane.YES_OPTION)
+ {
+ ConfigurationService configService
+ = GuiActivator.getConfigurationService();
+ String prefix
+ = "net.java.sip.communicator.impl.gui.accounts";
+ List<String> accounts
+ = configService.getPropertyNamesByPrefix(prefix, true);
+
+ for (String accountRootPropName : accounts)
+ {
+ String accountUID
+ = configService.getString(accountRootPropName);
+
+ if (accountUID.equals(accountID.getAccountUniqueID()))
+ {
+ configService.setProperty(accountRootPropName, null);
+ break;
+ }
+ }
+ boolean isUninstalled
+ = providerFactory.uninstallAccount(accountID);
+
+ if (isUninstalled)
+ {
+ accountList.ensureAccountRemoved(accountID);
+
+ // Notify the corresponding wizard that the account
+ // would be removed.
+ AccountRegWizardContainerImpl wizardContainer
+ = (AccountRegWizardContainerImpl) GuiActivator
+ .getUIService().getAccountRegWizardContainer();
+
+ ProtocolProviderService protocolProvider =
+ account.getProtocolProvider();
+ AccountRegistrationWizard wizard =
+ wizardContainer.getProtocolWizard(protocolProvider);
+
+ if (wizard != null)
+ wizard.accountRemoved(protocolProvider);
+ }
+ }
+ }
+ }
+ else if (sourceButton.equals(editButton))
+ {
+ Account account = accountList.getSelectedAccount();
+
+ if (account == null)
+ return;
+
+ AccountRegWizardContainerImpl wizard =
+ (AccountRegWizardContainerImpl) GuiActivator.getUIService()
+ .getAccountRegWizardContainer();
+
+ AccountRegistrationWizard protocolWizard =
+ wizard.getProtocolWizard(account.getProtocolProvider());
+
+ ResourceManagementService resources = GuiActivator.getResources();
+ if (protocolWizard != null)
+ {
+ wizard.setTitle(resources.getI18NString(
+ "service.gui.ACCOUNT_REGISTRATION_WIZARD"));
+
+ wizard.modifyAccount(account.getProtocolProvider());
+ wizard.showDialog(false);
+ }
+ else
+ {
+ // There is no wizard for this account - just show an error
+ // dialog:
+ String title = resources.getI18NString("service.gui.ERROR");
+ String message =
+ resources.getI18NString("service.gui.EDIT_NOT_SUPPORTED");
+ ErrorDialog dialog = new ErrorDialog(null, title, message);
+ dialog.setVisible(true);
+ }
+ }
+ }
+
+ /**
+ * Returns the edit button.
+ *
+ * @return the edit button
+ */
+ public JButton getEditButton()
+ {
+ return editButton;
+ }
+
+ /**
+ * Updates enabled states of the buttons of this
+ * <tt>AccountsConfigurationPanel</tt> to reflect their applicability to the
+ * current selection in <tt>accountList</tt>.
+ */
+ private void updateButtons()
+ {
+ if(!SwingUtilities.isEventDispatchThread())
+ {
+ SwingUtilities.invokeLater(new Runnable()
+ {
+ public void run()
+ {
+ updateButtons();
+ }
+ });
+ return;
+ }
+
+ Account account = accountList.getSelectedAccount();
+ boolean enabled = (account != null);
+
+ editButton.setEnabled(enabled && account.isEnabled());
+ removeButton.setEnabled(enabled);
+ }
+
+ /**
+ * Implements ListSelectionListener#valueChanged(ListSelectionEvent).
+ * @param e the <tt>ListSelectionEvent</tt> that notified us
+ */
+ public void valueChanged(ListSelectionEvent e)
+ {
+ if (!e.getValueIsAdjusting())
+ updateButtons();
+ }
+
+ /**
+ * This method gets called when a property is changed.
+ *
+ * @param evt A PropertyChangeEvent object describing the event source
+ * and the property that has changed.
+ */
+ public void propertyChange(PropertyChangeEvent evt)
+ {
+ // update buttons whenever an account changes its state
+ updateButtons();
+ }
+}