diff options
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.java | 552 |
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(); + } +} |