Revision 2287

View differences:

org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.api/src/main/java/org/gvsig/tools/swing/api/FilteredListModel.java
8 8
 * @author jjdelcerro
9 9
 */
10 10
public interface FilteredListModel extends ListModel, FilteredModel {
11

  
11
    
12 12
    public void addElement(LabeledValue element);
13 13

  
14 14
    public void addElement(Object element);
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.api/src/main/java/org/gvsig/tools/swing/api/FilteredModel.java
16 16

  
17 17
    public void setFilterFunction(FilterFunction filter);
18 18
    
19
    public void setCaseSensitive(boolean sensitive);
20
    
21
    public boolean isCaseSensitive();
22
    
19 23
}
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/FilteredTableModelImpl.java
25 25
    private String filter;
26 26
    private List<Integer> filteredElements;
27 27
    private FilteredModel.FilterFunction filterfn;
28
    private boolean caseSensitive;
28 29

  
29 30
    public FilteredTableModelImpl(TableModel tableModel, int theFilterColumn) {
30 31
        this.baseModel = tableModel;
......
153 154
        int row = this.filteredElements.get(rowIndex);
154 155
        return this.baseModel.isCellEditable(row, columnIndex);
155 156
    }
157

  
158
    @Override
159
    public void setCaseSensitive(boolean sensitive) {
160
        this.caseSensitive = sensitive;
161
    }
162

  
163
    @Override
164
    public boolean isCaseSensitive() {
165
        return this.caseSensitive;
166
    }
156 167
    
157 168
}
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/FilteredTreeModelImpl.java
18 18
    private FilterFunction filterfn;
19 19
    protected EventListenerList listenerList = new EventListenerList();
20 20
    private String filter;
21
    private boolean caseSensitive;
21 22

  
22 23
    public FilteredTreeModelImpl(final TreeModel treeModel) {
23 24
        this.treeModel = treeModel;
......
146 147
        TreePath tp = new TreePath(new Object[]{this.getRoot()});
147 148
        fireTreeStructureChanged(this, tp);
148 149
    }
150
    
151
    @Override
152
    public void setCaseSensitive(boolean sensitive) {
153
        this.caseSensitive = sensitive;
154
    }
149 155

  
156
    @Override
157
    public boolean isCaseSensitive() {
158
        return this.caseSensitive;
159
    }
150 160

  
151 161
}
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
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