Using TableFormat to specify columns

Although the EventTableModel takes care of the table's rows, you must specify columns. This includes how many columns, their names, and how to get the column value from an Issue object. To specify columns, implement the TableFormat interface.

import java.util.Comparator;
// a simple issues library
import ca.odell.issuezilla.*;
// glazed lists
import ca.odell.glazedlists.gui.TableFormat;

/**
 * Display issues in a tabular form.
 * 
 * @author <a href="mailto:jesse@odel.on.ca">Jesse Wilson</a>
 */
public class IssueTableFormat implements TableFormat {
    
    public int getColumnCount() {
        return 6;
    }
    
    public String getColumnName(int column) {
        if(column == 0)      return "ID";
        else if(column == 1) return "Type";
        else if(column == 2) return "Priority";
        else if(column == 3) return "State";
        else if(column == 4) return "Result";
        else if(column == 5) return "Summary";

        throw new IllegalStateException();
    }
    
    public Object getColumnValue(Object baseObject, int column) {
        Issue issue = (Issue)baseObject;

        if(column == 0)      return issue.getId();
        else if(column == 1) return issue.getIssueType();
        else if(column == 2) return issue.getPriority();
        else if(column == 3) return issue.getStatus();
        else if(column == 4) return issue.getResolution();
        else if(column == 5) return issue.getShortDescription();

        throw new IllegalStateException();
    }
}

Note

There are a few mixin interfaces that allow you to do more with your table. WritableTableFormat allows you to make your JTable editable. AdvancedTableFormat allows you to specify the class and a Comparator for each column, for use with specialized renderers and TableComparatorChooser.