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.LocalPreferences;
|
||||||
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
|
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.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
@ -50,6 +45,11 @@ import java.util.Comparator;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
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.
|
* Container representing a RosterGroup within the Contact List.
|
||||||
*/
|
*/
|
||||||
@ -76,8 +76,6 @@ public class ContactGroup extends CollapsiblePane implements MouseListener {
|
|||||||
|
|
||||||
private LocalPreferences preferences;
|
private LocalPreferences preferences;
|
||||||
|
|
||||||
private Timer presenceTimer;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new ContactGroup.
|
* Create a new ContactGroup.
|
||||||
@ -278,38 +276,22 @@ public class ContactGroup extends CollapsiblePane implements MouseListener {
|
|||||||
item.setGroupName(getGroupName());
|
item.setGroupName(getGroupName());
|
||||||
contactItems.add(item);
|
contactItems.add(item);
|
||||||
|
|
||||||
if (presenceTimer != null && presenceTimer.isRunning()) {
|
List<ContactItem> tempItems = getContactItems();
|
||||||
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++;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Object[] contactItemArray = contactItemList.getSelectedValues();
|
Collections.sort(tempItems, itemComparator);
|
||||||
|
|
||||||
int[] intList = new int[contactItemArray.length];
|
|
||||||
for (int i = 0; i < contactItemArray.length; i++) {
|
int index = tempItems.indexOf(item);
|
||||||
ContactItem contact = (ContactItem)contactItemArray[i];
|
|
||||||
|
|
||||||
|
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);
|
intList[i] = model.indexOf(contact);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,6 +299,7 @@ public class ContactGroup extends CollapsiblePane implements MouseListener {
|
|||||||
contactItemList.setSelectedIndices(intList);
|
contactItemList.setSelectedIndices(intList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fireContactItemAdded(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -337,11 +320,6 @@ public class ContactGroup extends CollapsiblePane implements MouseListener {
|
|||||||
// contactGroup.setStyle(CollapsiblePane.TREE_STYLE);
|
// contactGroup.setStyle(CollapsiblePane.TREE_STYLE);
|
||||||
listPanel.add(panel);
|
listPanel.add(panel);
|
||||||
contactGroups.add(contactGroup);
|
contactGroups.add(contactGroup);
|
||||||
|
|
||||||
// Do not show no contacts.
|
|
||||||
if(model.contains(noContacts)){
|
|
||||||
model.removeElement(noContacts);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user