Ignore:
Timestamp:
2014-05-14T02:16:44+02:00 (10 years ago)
Author:
Don-vip
Message:

code refactoring/cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    r7021 r7120  
    1515import java.util.Collection;
    1616import java.util.Collections;
    17 import java.util.Comparator;
    1817import java.util.HashSet;
    1918import java.util.Iterator;
     
    4443import org.openstreetmap.josm.data.osm.OsmPrimitive;
    4544import org.openstreetmap.josm.data.osm.OsmPrimitiveComparator;
    46 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    4745import org.openstreetmap.josm.data.osm.Relation;
    4846import org.openstreetmap.josm.data.osm.Way;
     
    585583         */
    586584        public void sort() {
    587             if (this.selection.size()>Main.pref.getInteger("selection.no_sort_above",100000)) return;
    588             if (this.selection.size()>Main.pref.getInteger("selection.fast_sort_above",10000)) {
    589                 Collections.sort(this.selection, new OsmPrimitiveQuickComparator());
    590             } else {
    591                 Collections.sort(this.selection, new OsmPrimitiveComparator());
     585            if (this.selection.size() <= Main.pref.getInteger("selection.no_sort_above", 100000)) {
     586                boolean quick = this.selection.size() > Main.pref.getInteger("selection.fast_sort_above", 10000);
     587                Collections.sort(this.selection, new OsmPrimitiveComparator(quick, false));
    592588            }
    593589        }
     
    778774        }
    779775    }
    780 
    781     /** Quicker comparator, comparing just by type and ID's */
    782     private static class OsmPrimitiveQuickComparator implements Comparator<OsmPrimitive> {
    783 
    784         private int compareId(OsmPrimitive a, OsmPrimitive b) {
    785             long id_a=a.getUniqueId();
    786             long id_b=b.getUniqueId();
    787             if (id_a<id_b) return -1;
    788             if (id_a>id_b) return 1;
    789             return 0;
    790         }
    791 
    792         private int compareType(OsmPrimitive a, OsmPrimitive b) {
    793             // show ways before relations, then nodes
    794             if (a.getType().equals(OsmPrimitiveType.WAY)) return -1;
    795             if (a.getType().equals(OsmPrimitiveType.NODE)) return 1;
    796             // a is a relation
    797             if (b.getType().equals(OsmPrimitiveType.WAY)) return 1;
    798             // b is a node
    799             return -1;
    800         }
    801 
    802         @Override
    803         public int compare(OsmPrimitive a, OsmPrimitive b) {
    804             if (a.getType().equals(b.getType()))
    805                 return compareId(a, b);
    806             return compareType(a, b);
    807         }
    808     }
    809 
    810776}
Note: See TracChangeset for help on using the changeset viewer.