diff --git a/build.xml b/build.xml index a599eb8a2..3b97dcbee 100644 --- a/build.xml +++ b/build.xml @@ -681,6 +681,8 @@ + + diff --git a/src/net/java/sip/communicator/impl/gui/main/configforms/ConfigFormList.java b/src/net/java/sip/communicator/impl/gui/main/configforms/ConfigFormList.java index aefcbaf88..ae1e43f14 100644 --- a/src/net/java/sip/communicator/impl/gui/main/configforms/ConfigFormList.java +++ b/src/net/java/sip/communicator/impl/gui/main/configforms/ConfigFormList.java @@ -41,27 +41,27 @@ public ConfigFormList(ConfigurationFrame configFrame) .createLineBorder(Constants.BORDER_COLOR)); } - /** - * Inserts a new ConfigurationForm to this list at the desired - * index. - * @param configForm The ConfigurationForm to add. - * @param index the index indicating the order of the configuration forms. - */ - public void addConfigForm(ConfigFormDescriptor configForm, int index) - { - if(index <= listModel.getSize()) - listModel.add(index, configForm); - else - listModel.addElement(configForm); - } - /** * Adds a new ConfigurationForm to this list. * @param configForm The ConfigurationForm to add. */ - public void addConfigForm(ConfigFormDescriptor configForm) + public void addConfigForm(ConfigurationForm configForm) { - listModel.addElement(configForm); + if (configForm == null) + throw new IllegalArgumentException("configForm"); + + int i = 0; + int count = listModel.size(); + int configFormIndex = configForm.getIndex(); + for (; i < count; i++) + { + ConfigFormDescriptor descriptor + = (ConfigFormDescriptor) listModel.get(i); + + if (configFormIndex < descriptor.getConfigForm().getIndex()) + break; + } + listModel.add(i, new ConfigFormDescriptor(configForm)); } /** @@ -70,13 +70,19 @@ public void addConfigForm(ConfigFormDescriptor configForm) */ public void removeConfigForm(ConfigurationForm configForm) { - for(int i = 0; i < listModel.getSize(); i ++) + for(int count = listModel.getSize(), i = count - 1; i >= 0; i--) { ConfigFormDescriptor descriptor = (ConfigFormDescriptor) listModel.get(i); if(descriptor.getConfigForm().equals(configForm)) - listModel.removeElement(descriptor); + { + listModel.remove(i); + /* + * TODO We may just consider not allowing duplicates on addition + * and then break here. + */ + } } } diff --git a/src/net/java/sip/communicator/impl/gui/main/configforms/ConfigurationFrame.java b/src/net/java/sip/communicator/impl/gui/main/configforms/ConfigurationFrame.java index 3f6f5b954..b286ed387 100644 --- a/src/net/java/sip/communicator/impl/gui/main/configforms/ConfigurationFrame.java +++ b/src/net/java/sip/communicator/impl/gui/main/configforms/ConfigurationFrame.java @@ -111,11 +111,13 @@ public ConfigurationFrame(MainFrame mainFrame) */ public void addDefaultForms() { - this - .addConfigurationForm(new LazyConfigurationForm( + addConfigurationForm( + new LazyConfigurationForm( "net.java.sip.communicator.impl.gui.main.account.AccountsConfigurationPanel", - getClass().getClassLoader(), "service.gui.icons.ACCOUNT_ICON", - "service.gui.ACCOUNTS", 1)); + getClass().getClassLoader(), + "service.gui.icons.ACCOUNT_ICON", + "service.gui.ACCOUNTS", + 10)); } /** @@ -215,17 +217,7 @@ public void serviceChanged(ServiceEvent event) */ private void addConfigurationForm(ConfigurationForm configForm) { - ConfigFormDescriptor descriptor = new ConfigFormDescriptor(configForm); - - if (descriptor != null) - { - int index = configForm.getIndex(); - - if (index > -1) - configList.addConfigForm(descriptor, index); - else - configList.addConfigForm(descriptor); - } + configList.addConfigForm(configForm); } /** diff --git a/src/net/java/sip/communicator/impl/media/MediaActivator.java b/src/net/java/sip/communicator/impl/media/MediaActivator.java index 3c5b1bc53..25d6367e7 100644 --- a/src/net/java/sip/communicator/impl/media/MediaActivator.java +++ b/src/net/java/sip/communicator/impl/media/MediaActivator.java @@ -69,8 +69,11 @@ public void start(BundleContext context) context.registerService(ConfigurationForm.class.getName(), new LazyConfigurationForm( "net.java.sip.communicator.impl.media.MediaConfigurationPanel", - getClass().getClassLoader(), "plugin.mediaconfig.PLUGIN_ICON", - "impl.media.configform.TITLE"), null); + getClass().getClassLoader(), + "plugin.mediaconfig.PLUGIN_ICON", + "impl.media.configform.TITLE", + 40), + null); //we use the nist-sdp stack to make parse sdp and we need to set the //following property to make sure that it would accept java generated diff --git a/src/net/java/sip/communicator/plugin/autoaway/AutoAwayActivator.java b/src/net/java/sip/communicator/plugin/autoaway/AutoAwayActivator.java index 721acb8dd..1c33a70b2 100644 --- a/src/net/java/sip/communicator/plugin/autoaway/AutoAwayActivator.java +++ b/src/net/java/sip/communicator/plugin/autoaway/AutoAwayActivator.java @@ -51,8 +51,11 @@ public void start(BundleContext bc) throws Exception ConfigurationForm.class.getName(), new LazyConfigurationForm( "net.java.sip.communicator.plugin.autoaway.AutoAwayConfigurationPanel", - getClass().getClassLoader(), "plugin.autoaway.PLUGIN_ICON", - "plugin.autoaway.AUTO_STATUS"), null); + getClass().getClassLoader(), + "plugin.autoaway.PLUGIN_ICON", + "plugin.autoaway.AUTO_STATUS", + 20), + null); new Thread(new Runnable() { diff --git a/src/net/java/sip/communicator/plugin/generalconfig/GeneralConfigPluginActivator.java b/src/net/java/sip/communicator/plugin/generalconfig/GeneralConfigPluginActivator.java index d2fe80852..029ac4c86 100644 --- a/src/net/java/sip/communicator/plugin/generalconfig/GeneralConfigPluginActivator.java +++ b/src/net/java/sip/communicator/plugin/generalconfig/GeneralConfigPluginActivator.java @@ -42,8 +42,10 @@ public void start(BundleContext bc) throws Exception new LazyConfigurationForm( "net.java.sip.communicator.plugin.generalconfig.GeneralConfigurationPanel", getClass().getClassLoader(), - "plugin.generalconfig.PLUGIN_ICON", "service.gui.GENERAL", - 0), null); + "plugin.generalconfig.PLUGIN_ICON", + "service.gui.GENERAL", + 0), + null); logger.info("PREFERENCES PLUGIN... [REGISTERED]"); } diff --git a/src/net/java/sip/communicator/plugin/keybindingchooser/KeybindingChooserActivator.java b/src/net/java/sip/communicator/plugin/keybindingchooser/KeybindingChooserActivator.java index 778fa9fba..a3480c8f2 100644 --- a/src/net/java/sip/communicator/plugin/keybindingchooser/KeybindingChooserActivator.java +++ b/src/net/java/sip/communicator/plugin/keybindingchooser/KeybindingChooserActivator.java @@ -45,7 +45,9 @@ public void start(BundleContext context) "net.java.sip.communicator.plugin.keybindingchooser.KeybindingsConfigPanel", getClass().getClassLoader(), "plugin.keybinding.PLUGIN_ICON", - "plugin.keybindings.PLUGIN_NAME"), null); + "plugin.keybindings.PLUGIN_NAME", + 900), + null); } /** diff --git a/src/net/java/sip/communicator/plugin/mailbox/MailboxActivator.java b/src/net/java/sip/communicator/plugin/mailbox/MailboxActivator.java index 98349162f..c223fb445 100644 --- a/src/net/java/sip/communicator/plugin/mailbox/MailboxActivator.java +++ b/src/net/java/sip/communicator/plugin/mailbox/MailboxActivator.java @@ -79,8 +79,11 @@ public void start(BundleContext bundleContext) throws Exception ConfigurationForm.class.getName(), new LazyConfigurationForm( "net.java.sip.communicator.plugin.mailbox.MailboxConfigurationPanel", - getClass().getClassLoader(), "plugin.mailbox.PLUGIN_ICON", - "plugin.mailbox.MAILBOX"), null); + getClass().getClassLoader(), + "plugin.mailbox.PLUGIN_ICON", + "plugin.mailbox.MAILBOX", + 500), + null); logger.info("Mailbox plug-in...[STARTED]"); } diff --git a/src/net/java/sip/communicator/plugin/notificationconfiguration/NotificationConfigurationActivator.java b/src/net/java/sip/communicator/plugin/notificationconfiguration/NotificationConfigurationActivator.java index 05f468a4a..273b07ff2 100644 --- a/src/net/java/sip/communicator/plugin/notificationconfiguration/NotificationConfigurationActivator.java +++ b/src/net/java/sip/communicator/plugin/notificationconfiguration/NotificationConfigurationActivator.java @@ -42,7 +42,9 @@ public void start(BundleContext bc) throws Exception "net.java.sip.communicator.plugin.notificationconfiguration.NotificationConfigurationPanel", getClass().getClassLoader(), "plugin.notificationconfig.PLUGIN_ICON", - "service.gui.NOTIFICATIONS"), null); + "service.gui.NOTIFICATIONS", + 30), + null); logger.trace("Notification Configuration: [ STARTED ]"); } diff --git a/src/net/java/sip/communicator/plugin/pluginmanager/PluginManagerActivator.java b/src/net/java/sip/communicator/plugin/pluginmanager/PluginManagerActivator.java index af2d08136..7e764cfc5 100644 --- a/src/net/java/sip/communicator/plugin/pluginmanager/PluginManagerActivator.java +++ b/src/net/java/sip/communicator/plugin/pluginmanager/PluginManagerActivator.java @@ -40,7 +40,9 @@ public void start(BundleContext bc) throws Exception "net.java.sip.communicator.plugin.pluginmanager.PluginManagerPanel", getClass().getClassLoader(), "plugin.pluginmanager.PLUGIN_ICON", - "plugin.pluginmanager.PLUGINS"), null); + "plugin.pluginmanager.PLUGINS", + 1000), + null); } /**