Lines 67-72
Link Here
|
67 |
public static final int LAST_MODIFIED = 4; |
67 |
public static final int LAST_MODIFIED = 4; |
68 |
/** by folders, then size */ |
68 |
/** by folders, then size */ |
69 |
public static final int SIZE = 5; |
69 |
public static final int SIZE = 5; |
|
|
70 |
/** by extension, then name */ |
71 |
public static final int EXTENSIONS = 6; |
70 |
|
72 |
|
71 |
|
73 |
|
72 |
/** mode to use */ |
74 |
/** mode to use */ |
Lines 106-111
Link Here
|
106 |
return compareLastModified(obj1, obj2); |
108 |
return compareLastModified(obj1, obj2); |
107 |
case SIZE: |
109 |
case SIZE: |
108 |
return compareSize(obj1, obj2); |
110 |
return compareSize(obj1, obj2); |
|
|
111 |
case EXTENSIONS: |
112 |
return compareExtensions(obj1, obj2); |
109 |
default: |
113 |
default: |
110 |
assert false : mode; |
114 |
assert false : mode; |
111 |
return 0; |
115 |
return 0; |
Lines 158-163
Link Here
|
158 |
return compareNames(o1, o2); |
162 |
return compareNames(o1, o2); |
159 |
} |
163 |
} |
160 |
|
164 |
|
|
|
165 |
/** for sorting folders first and then by extensions and then by names */ |
166 |
private int compareExtensions(Object o1, Object o2) { |
167 |
FileObject obj1 = findFileObject(o1); |
168 |
FileObject obj2 = findFileObject(o2); |
169 |
|
170 |
boolean folder1 = obj1.isFolder(); |
171 |
boolean folder2 = obj2.isFolder(); |
172 |
|
173 |
if (folder1 != folder2) { |
174 |
return folder1 ? -1 : 1; // folders first |
175 |
} else if (folder1) { // && folder2 |
176 |
return obj1.getNameExt().compareTo(obj2.getNameExt()); // by nameExt |
177 |
} else { |
178 |
String ext1 = obj1.getExt(); |
179 |
String ext2 = obj2.getExt(); |
180 |
if (ext1.equals(ext2)) { // same extensions |
181 |
return obj1.getName().compareTo(obj2.getName()); // by name |
182 |
} else { // different extensions |
183 |
return ext1.compareTo(ext2); // by extension |
184 |
} |
185 |
} |
186 |
} |
187 |
|
161 |
/** for sorting data objects by their classes */ |
188 |
/** for sorting data objects by their classes */ |
162 |
private int compareClass(Object o1, Object o2) { |
189 |
private int compareClass(Object o1, Object o2) { |
163 |
DataObject obj1 = findDataObject(o1); |
190 |
DataObject obj1 = findDataObject(o1); |