package org.limewire.ui.swing.search.model;
import org.limewire.core.api.search.SearchCategory;
/**
* Enumeration of all sort options for all search categories.
*/
public enum SortOption {
COMPANY,
PLATFORM,
TYPE,
DATE_CREATED,
QUALITY,
YEAR,
FILE_EXTENSION,
TITLE,
LENGTH,
ALBUM,
ARTIST,
SIZE_LOW_TO_HIGH,
SIZE_HIGH_TO_LOW,
CATEGORY,
NAME,
RELEVANCE_ITEM;
/**
* Returns the default sort option.
*/
public static SortOption getDefault() {
return RELEVANCE_ITEM;
}
/**
* Returns an array of valid sort options for the specified search category.
*/
public static SortOption[] getSortOptions(SearchCategory category) {
switch (category) {
case ALL:
return new SortOption[] {
RELEVANCE_ITEM, NAME, CATEGORY,
SIZE_HIGH_TO_LOW, SIZE_LOW_TO_HIGH
};
case AUDIO:
return new SortOption[] {
RELEVANCE_ITEM, NAME, ARTIST, ALBUM, LENGTH,
QUALITY
};
case VIDEO:
return new SortOption[] {
RELEVANCE_ITEM, TITLE, FILE_EXTENSION, LENGTH,
YEAR, QUALITY
};
case IMAGE:
return new SortOption[] {
RELEVANCE_ITEM, NAME, FILE_EXTENSION,
DATE_CREATED
};
case DOCUMENT:
return new SortOption[] {
RELEVANCE_ITEM, NAME, TITLE, TYPE,
SIZE_LOW_TO_HIGH, DATE_CREATED
};
case PROGRAM:
return new SortOption[] {
RELEVANCE_ITEM, NAME, SIZE_LOW_TO_HIGH,
PLATFORM, COMPANY
};
default:
return new SortOption[] {
RELEVANCE_ITEM, NAME, TYPE,
SIZE_HIGH_TO_LOW, SIZE_LOW_TO_HIGH
};
}
}
}