Revision 2287 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/FilteredListModelImpl.java
FilteredListModelImpl.java | ||
---|---|---|
56 | 56 |
private String filter; |
57 | 57 |
private AbstractCancellableTask th; |
58 | 58 |
private FilterFunction filterfn; |
59 |
private boolean caseSensitive = false; |
|
59 | 60 |
|
60 | 61 |
public FilteredListModelImpl(ListModel model) { |
61 | 62 |
if (model == null) { |
... | ... | |
203 | 204 |
public void run() { |
204 | 205 |
final List items = new ListModelToListAdapter(elements); |
205 | 206 |
items.sort((Object o1, Object o2) -> { |
206 |
int r = ObjectUtils.compare( |
|
207 |
Objects.toString(o1, ""), |
|
208 |
Objects.toString(o2, "") |
|
209 |
); |
|
207 |
if (o1 instanceof LabeledValue) { |
|
208 |
o1 = ((LabeledValue) o1).getLabel(); |
|
209 |
} |
|
210 |
if (o2 instanceof LabeledValue) { |
|
211 |
o2 = ((LabeledValue) o2).getLabel(); |
|
212 |
} |
|
213 |
String o1string = Objects.toString(o1, ""); |
|
214 |
String o2string = Objects.toString(o2, ""); |
|
215 |
if (!isCaseSensitive()) { |
|
216 |
o1string = o1string.toLowerCase(); |
|
217 |
o2string = o2string.toLowerCase(); |
|
218 |
} |
|
219 |
int r = ObjectUtils.compare(o1string, o2string); |
|
210 | 220 |
if (ascending) { |
211 | 221 |
return r; |
212 | 222 |
} |
... | ... | |
221 | 231 |
}; |
222 | 232 |
th.start(); |
223 | 233 |
} |
234 |
|
|
224 | 235 |
|
236 |
@Override |
|
237 |
public void setCaseSensitive(boolean sensitive) { |
|
238 |
this.caseSensitive = sensitive; |
|
239 |
} |
|
240 |
|
|
241 |
@Override |
|
242 |
public boolean isCaseSensitive() { |
|
243 |
return this.caseSensitive; |
|
244 |
} |
|
245 |
|
|
225 | 246 |
} |
Also available in: Unified diff