Fix offline grouping.

git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@9232 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Derek DeMoro
2007-09-28 15:43:41 +00:00
committed by derek
parent 6e42a8d9c5
commit 1d504e4311

View File

@ -23,11 +23,6 @@ import org.jivesoftware.spark.util.log.Log;
import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.Timer;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
@ -50,6 +45,11 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.Timer;
/**
* Container representing a RosterGroup within the Contact List.
*/
@ -76,8 +76,6 @@ public class ContactGroup extends CollapsiblePane implements MouseListener {
private LocalPreferences preferences;
private Timer presenceTimer;
/**
* Create a new ContactGroup.
@ -278,38 +276,22 @@ public class ContactGroup extends CollapsiblePane implements MouseListener {
item.setGroupName(getGroupName());
contactItems.add(item);
if (presenceTimer != null && presenceTimer.isRunning()) {
presenceTimer.stop();
}
presenceTimer = new Timer(200, new ActionListener() {
public void actionPerformed(ActionEvent e) {
sortContactList();
}
});
presenceTimer.start();
model.addElement(item);
fireContactItemAdded(item);
}
/**
* Sorts the ContactList alphabetically.
*/
private void sortContactList() {
final List<ContactItem> sortedItemList = getContactItems();
int j = 0;
for (ContactItem item : sortedItemList) {
model.set(j, item);
j++;
}
List<ContactItem> tempItems = getContactItems();
Object[] contactItemArray = contactItemList.getSelectedValues();
Collections.sort(tempItems, itemComparator);
int[] intList = new int[contactItemArray.length];
for (int i = 0; i < contactItemArray.length; i++) {
ContactItem contact = (ContactItem)contactItemArray[i];
int index = tempItems.indexOf(item);
Object[] objs = contactItemList.getSelectedValues();
model.insertElementAt(item, index);
int[] intList = new int[objs.length];
for (int i = 0; i < objs.length; i++) {
ContactItem contact = (ContactItem)objs[i];
intList[i] = model.indexOf(contact);
}
@ -317,6 +299,7 @@ public class ContactGroup extends CollapsiblePane implements MouseListener {
contactItemList.setSelectedIndices(intList);
}
fireContactItemAdded(item);
}
/**
@ -337,11 +320,6 @@ public class ContactGroup extends CollapsiblePane implements MouseListener {
// contactGroup.setStyle(CollapsiblePane.TREE_STYLE);
listPanel.add(panel);
contactGroups.add(contactGroup);
// Do not show no contacts.
if(model.contains(noContacts)){
model.removeElement(noContacts);
}
}
/**