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

View differences:

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