+ /** Predicate that identifies downloads that have started. */
+ public static final Predicate<Download> FILTER_RUNNING = new Predicate<Download>() {
+
+ @Override
+ public boolean apply(Download download) {
+ return download.dccReceiver() != null;
+ }
+ };
+
+ /** {@link Comparator} that sorts downloads by their name. */
+ public static final Comparator<Download> BY_NAME = new Comparator<Download>() {
+
+ @Override
+ public int compare(Download leftDownload, Download rightDownload) {
+ return leftDownload.pack().name().compareToIgnoreCase(rightDownload.pack().name());
+ }
+ };
+
+ /** {@link Comparator} that sorts running downloads first. */
+ public static final Comparator<Download> BY_RUNNING = new Comparator<Download>() {
+
+ @Override
+ public int compare(Download leftDownload, Download rightDownload) {
+ return (leftDownload.dccReceiver() != null) ? -1 : (rightDownload.dccReceiver() != null) ? 1 : 0;
+ }
+ };
+