For the priority property of an Issue object, it makes sense
      to use the integer value of the priority level as the object evaluation. So 
      let's create a simple IssueEvaluator that given an 
      Issue returns the priority level.
import ca.odell.glazedlists.ThresholdEvaluator;
// a simple issues library
import ca.odell.issuezilla.*;
/**
 * Evaluates an issue by returning its threshold value.
 * 
 * @author <a href="mailto:jesse@odel.on.ca">Jesse Wilson</a>
 */
public class IssuePriorityThresholdEvaluator implements ThresholdEvaluator {
  public int evaluate(Object a) {
    Issue issue = (Issue)a;
    
    // rating is between 1 and 5, lower is more important
    int issueRating = issue.getPriority().getValue();
    
    // flip: now rating is between 1 and 5, higher is more important
    int inverseRating = 6 - issueRating;
    return inverseRating;
  }
}Now that we have a concrete ThresholdEvaluator, we can create
      a ThresholdList. In the run()
      method of IssuesBrowser we need to create a 
      ThresholdList that has the list of issues as data.
  /**
   * Display a frame for browsing issues. This should only be run on the Swing
   * event dispatch thread.
   */
  public void run() {
      ...
      UsersSelect usersSelect = new UsersSelect(issuesEventList);
      FilterList userFilteredIssues = new FilterList(issuesEventList, usersSelect);
      TextFilterList textFilteredIssues = new TextFilterList(userFilteredIssues, new IssueTextFilterator());
      ThresholdList priorityFilteredIssues = new ThresholdList(textFilteredIssues, new IssuePriorityThresholdEvaluator());
      SortedList sortedIssues = new SortedList(priorityFilteredIssues, new IssueComparator());
      ...
  }Something worth noting is how the lists were layered. The 
      ThresholdList enforces a sort order on the list when you use
      it. While this might seem strange to sort the values, this is done to make the
      ThresholdList high-performance. As a result, you
      may have to sort a list after the ThresholdList is applied
      to present it in an ordering that makes the most sense for your application. That
      is why the ThresholdList decorates the source list before the
      the SortedList in applied in our issue browser. Now that we
      have a ThresholdList, we need to bind it to a widget to allow
      for user interaction.