1 package com.nexuiz.demorecorder.ui.swinggui.tablemodels;
\r
4 import java.util.List;
\r
6 import javax.swing.table.AbstractTableModel;
\r
8 import com.nexuiz.demorecorder.application.DemoRecorderApplication;
\r
9 import com.nexuiz.demorecorder.application.DemoRecorderException;
\r
10 import com.nexuiz.demorecorder.application.DemoRecorderUtils;
\r
11 import com.nexuiz.demorecorder.application.jobs.RecordJob;
\r
17 * - Engine parameters
\r
19 * - Relative demo path
\r
21 * - video destination
\r
22 * - execute before cap
\r
23 * - execute after cap
\r
30 public class RecordJobsTableModel extends AbstractTableModel {
\r
32 private static final long serialVersionUID = 5024144640874313910L;
\r
34 public static final int JOB_NAME = 0;
\r
35 public static final int ENGINE_PATH = 1;
\r
36 public static final int ENGINE_PARAMETERS = 2;
\r
37 public static final int DEMO_FILE_PATH = 3;
\r
38 public static final int RELATIVE_DEMO_PATH = 4;
\r
39 public static final int DPVIDEO_PATH = 5;
\r
40 public static final int VIDEO_DESTINATION_PATH = 6;
\r
41 public static final int EXECUTE_BEFORE_CAP = 7;
\r
42 public static final int EXECUTE_AFTER_CAP = 8;
\r
43 public static final int START_SECOND = 9;
\r
44 public static final int END_SECOND = 10;
\r
45 public static final int STATUS = 11;
\r
47 private static final int columns[] = {
\r
54 VIDEO_DESTINATION_PATH,
\r
62 private DemoRecorderApplication appLayer;
\r
63 private List<RecordJob> jobList = null;
\r
65 public RecordJobsTableModel(DemoRecorderApplication appLayer) {
\r
66 this.appLayer = appLayer;
\r
67 this.jobList = this.appLayer.getRecordJobs();
\r
70 public void deleteRecordJob(int modelRowIndex, int viewRowIndex) {
\r
72 RecordJob job = this.jobList.get(modelRowIndex);
\r
73 if (this.appLayer.deleteRecordJob(job)) {
\r
74 this.jobList.remove(job);
\r
75 fireTableRowsDeleted(viewRowIndex, viewRowIndex);
\r
77 } catch (IndexOutOfBoundsException e) {
\r
78 throw new DemoRecorderException("Couldn't find correspondig job for modelRowIndex " + modelRowIndex
\r
79 + " and viewRowIndex " + viewRowIndex, e);
\r
83 public void loadNewJobQueue(File path) {
\r
84 this.appLayer.loadJobQueue(path);
\r
85 this.jobList = this.appLayer.getRecordJobs();
\r
86 fireTableDataChanged();
\r
89 public RecordJob getRecordJob(int modelRowIndex) {
\r
90 return this.jobList.get(modelRowIndex);
\r
93 public int getColumnCount() {
\r
94 return columns.length;
\r
97 public int getRowCount() {
\r
98 return this.jobList.size();
\r
101 public Object getValueAt(int rowIndex, int columnIndex) {
\r
102 RecordJob job = this.jobList.get(rowIndex);
\r
107 if (columnIndex < 0 || columnIndex >= columns.length) {
\r
111 String cellData = "UNDEF";
\r
112 switch (columnIndex) {
\r
114 cellData = job.getJobName(); break;
\r
116 cellData = job.getEnginePath().getAbsolutePath(); break;
\r
117 case ENGINE_PARAMETERS:
\r
118 cellData = job.getEngineParameters(); break;
\r
119 case DEMO_FILE_PATH:
\r
120 cellData = DemoRecorderUtils.getJustFileNameOfPath(job.getDemoFile()); break;
\r
121 case RELATIVE_DEMO_PATH:
\r
122 cellData = job.getRelativeDemoPath(); break;
\r
124 cellData = job.getDpVideoPath().getAbsolutePath(); break;
\r
125 case VIDEO_DESTINATION_PATH:
\r
126 cellData = job.getVideoDestination().getAbsolutePath(); break;
\r
127 case EXECUTE_BEFORE_CAP:
\r
128 cellData = job.getExecuteBeforeCap(); break;
\r
129 case EXECUTE_AFTER_CAP:
\r
130 cellData = job.getExecuteAfterCap(); break;
\r
132 cellData = String.valueOf(job.getStartSecond()); break;
\r
134 cellData = String.valueOf(job.getEndSecond()); break;
\r
136 if (job.getState() == RecordJob.State.DONE) {
\r
138 } else if (job.getState() == RecordJob.State.ERROR) {
\r
139 cellData = "error";
\r
140 } else if (job.getState() == RecordJob.State.ERROR_PLUGIN) {
\r
141 cellData = "plug-in error";
\r
142 } else if (job.getState() == RecordJob.State.PROCESSING) {
\r
143 cellData = "processing";
\r
144 } else if (job.getState() == RecordJob.State.WAITING) {
\r
145 cellData = "waiting";
\r
153 public String getColumnName(int column) {
\r
154 if (column < 0 || column >= columns.length) {
\r
158 String columnName = "UNDEFINED";
\r
161 columnName = "Name"; break;
\r
163 columnName = "Engine path"; break;
\r
164 case ENGINE_PARAMETERS:
\r
165 columnName = "Engine parameters"; break;
\r
166 case DEMO_FILE_PATH:
\r
167 columnName = "Demo name"; break;
\r
168 case RELATIVE_DEMO_PATH:
\r
169 columnName = "Relative demo path"; break;
\r
171 columnName = "DPVideo path"; break;
\r
172 case VIDEO_DESTINATION_PATH:
\r
173 columnName = "Video destination"; break;
\r
174 case EXECUTE_BEFORE_CAP:
\r
175 columnName = "Exec before"; break;
\r
176 case EXECUTE_AFTER_CAP:
\r
177 columnName = "Exec after"; break;
\r
179 columnName = "Start"; break;
\r
181 columnName = "End"; break;
\r
183 columnName = "Status"; break;
\r
189 public List<RecordJob> getRecordJobs() {
\r
190 return this.jobList;
\r