/** Get the sort mode of the folder. * @return the sort mode */ public final SortMode getSortMode () { return getOrder ().getSortMode (); }
/** Set the sort mode for the folder. * @param mode an constant from {@link DataFolder.SortMode} * @exception IOException if the mode cannot be set */ public synchronized final void setSortMode (SortMode mode) throws IOException { SortMode old = getOrder ().getSortMode (); getOrder ().setSortMode (mode); firePropertyChange (PROP_SORT_MODE, old, getOrder ().getSortMode ()); }
/** Compares two data object or two nodes. */ public int compare (Object o1, Object o2) { DataObject obj1 = (DataObject) o1; DataObject obj2 = (DataObject) o2; Integer i1 = (order == null) ? null : (Integer)order.get (obj1.getPrimaryFile ().getNameExt ()); Integer i2 = (order == null) ? null : (Integer)order.get (obj2.getPrimaryFile ().getNameExt ()); if (i1 == null) { if (i2 != null) return 1; // compare by the provided comparator return getSortMode ().compare (obj1, obj2); } else { if (i2 == null) return -1; // compare integers if (i1.intValue () == i2.intValue ()) return 0; if (i1.intValue () < i2.intValue ()) return -1; return 1; } }
DataFolder.SortMode sortMode = getComparator().getSortMode(); if (sortMode == DataFolder.SortMode.LAST_MODIFIED || sortMode == DataFolder.SortMode.SIZE) { changeComparator();