mirror of
https://github.com/igniterealtime/Spark.git
synced 2025-12-01 12:27:58 +00:00
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:
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user