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);
}
/**