1package autotest.afe;
2
3import autotest.common.table.DynamicTable;
4import autotest.common.table.RpcDataSource;
5import autotest.common.table.DataSource.SortDirection;
6
7import com.google.gwt.json.client.JSONObject;
8import com.google.gwt.json.client.JSONString;
9
10/**
11 * A table to display scheduled runs.
12 */
13public class RecurringTable extends DynamicTable {
14    public static final String START_DATE_TEXT = "start_date";
15
16    private static final String[][] RECURRING_COLUMNS = {
17                            {CLICKABLE_WIDGET_COLUMN, "Select"},
18                            { "job_id", "Job ID" },
19                            { "owner", "Owner" },
20                            { START_DATE_TEXT, "Recurring start" },
21                            { "loop_period", "Loop period" },
22                            { "loop_count", "Loop count" }};
23
24    public RecurringTable() {
25        super(RECURRING_COLUMNS, new RpcDataSource("get_recurring",
26                                                   "get_num_recurring"));
27        sortOnColumn("id", SortDirection.DESCENDING);
28    }
29
30    @Override
31    protected void preprocessRow(JSONObject row) {
32        JSONObject job = row.get("job").isObject();
33        int jobId = (int) job.get("id").isNumber().doubleValue();
34        JSONObject owner = row.get("owner").isObject();
35        row.put("job_id", new JSONString(Integer.toString(jobId)));
36        row.put("owner", owner.get("login"));
37        // remove seconds from start_date
38        AfeUtils.removeSecondsFromDateField(row, "start_date", START_DATE_TEXT);
39
40    }
41}
42