|
@@ -17,11 +17,11 @@
|
17
|
17
|
|
18
|
18
|
package com.dmdirc.addons.ui_swing.components;
|
19
|
19
|
|
|
20
|
+import com.google.common.collect.Ordering;
|
20
|
21
|
import java.util.ArrayList;
|
21
|
22
|
import java.util.Collection;
|
22
|
23
|
import java.util.Collections;
|
23
|
24
|
import java.util.List;
|
24
|
|
-
|
25
|
25
|
import javax.swing.AbstractListModel;
|
26
|
26
|
|
27
|
27
|
/**
|
|
@@ -40,7 +40,6 @@ public class GenericListModel<T> extends AbstractListModel<T> {
|
40
|
40
|
* Instantiates an empty generic list model.
|
41
|
41
|
*/
|
42
|
42
|
public GenericListModel() {
|
43
|
|
-
|
44
|
43
|
this.list = Collections.synchronizedList(new ArrayList<>());
|
45
|
44
|
}
|
46
|
45
|
|
|
@@ -50,8 +49,8 @@ public class GenericListModel<T> extends AbstractListModel<T> {
|
50
|
49
|
* @param list Data to be included in the model
|
51
|
50
|
*/
|
52
|
51
|
public GenericListModel(final Collection<T> list) {
|
53
|
|
-
|
54
|
52
|
this.list = Collections.synchronizedList(new ArrayList<>(list));
|
|
53
|
+ this.list.sort(Ordering.natural());
|
55
|
54
|
}
|
56
|
55
|
|
57
|
56
|
@Override
|
|
@@ -152,6 +151,7 @@ public class GenericListModel<T> extends AbstractListModel<T> {
|
152
|
151
|
public void add(final T object) {
|
153
|
152
|
final int index = list.size();
|
154
|
153
|
list.add(object);
|
|
154
|
+ this.list.sort(Ordering.usingToString());
|
155
|
155
|
fireIntervalAdded(this, index, index);
|
156
|
156
|
}
|
157
|
157
|
|
|
@@ -180,6 +180,7 @@ public class GenericListModel<T> extends AbstractListModel<T> {
|
180
|
180
|
public void replace(final T oldValue, final T newValue) {
|
181
|
181
|
final int index = list.indexOf(oldValue);
|
182
|
182
|
list.set(index, newValue);
|
|
183
|
+ this.list.sort(Ordering.usingToString());
|
183
|
184
|
fireContentsChanged(this, index, index);
|
184
|
185
|
}
|
185
|
186
|
|
|
@@ -233,6 +234,7 @@ public class GenericListModel<T> extends AbstractListModel<T> {
|
233
|
234
|
public void addAll(final Collection<T> collection) {
|
234
|
235
|
final int lastIndex = list.size() - 1;
|
235
|
236
|
list.addAll(collection);
|
|
237
|
+ this.list.sort(Ordering.usingToString());
|
236
|
238
|
fireIntervalAdded(this, lastIndex < 0 ? 0 : lastIndex, collection.size());
|
237
|
239
|
}
|
238
|
240
|
|
|
@@ -244,6 +246,7 @@ public class GenericListModel<T> extends AbstractListModel<T> {
|
244
|
246
|
*/
|
245
|
247
|
public void addAll(final int index, final Collection<T> collection) {
|
246
|
248
|
list.addAll(index, collection);
|
|
249
|
+ this.list.sort(Ordering.usingToString());
|
247
|
250
|
fireIntervalAdded(this, index, collection.size());
|
248
|
251
|
}
|
249
|
252
|
|