示例#1
0
 public int compare(Object o1, Object o2) {
   switch (nOrder) {
     case BYSIZE:
       break;
     case BYDATE:
       break;
     case BYNAME:
     default:
       if (o1 instanceof FileInfo && o2 instanceof FileInfo) {
         FileInfo file1 = (FileInfo) o1;
         FileInfo file2 = (FileInfo) o2;
         int t1 = ListModel.getType(file1), t2 = ListModel.getType(file2);
         String s1 = ListModel.getFileName(file1), s2 = ListModel.getFileName(file2);
         if (t1 != t2) {
           if (FileInfo.DIRECTORY_TYPE == t1) {
             return -1;
           } else if (FileInfo.DIRECTORY_TYPE == t2) {
             return 1;
           } else if (FileInfo.SOFTLINK_TYPE == t1) {
             return -1;
           } else if (FileInfo.SOFTLINK_TYPE == t2) {
             return 1;
           } else if (FileInfo.FILE_TYPE == t1) {
             return -1;
           } else if (FileInfo.FILE_TYPE == t2) {
             return 1;
           } else if (FileInfo.UNKNOWN_TYPE == t1) {
             return -1;
           } else {
             return 1;
           }
         } else {
           if (s1.equals("..")) {
             return -1;
           } else if (s2.equals("..")) {
             return 1;
           }
           return Collator.getInstance().compare(s1, s2);
         }
       }
       break;
   }
   return 0;
 }