annotate java-genomics-toolkit/gui/edu/unc/genomics/JobQueue.java @ 0:1daf3026d231

Upload alpha version
author timpalpant
date Mon, 13 Feb 2012 21:55:55 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
1 package edu.unc.genomics;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
2
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
3 import java.util.ArrayList;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
4 import java.util.Iterator;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
5 import java.util.List;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
6
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
7 import javax.swing.ListModel;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
8 import javax.swing.event.ListDataEvent;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
9 import javax.swing.event.ListDataListener;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
10
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
11 import org.apache.log4j.Logger;
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
12
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
13 /**
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
14 * Model for the queue of SubmittedJobs
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
15 * Should be managed through the JobQueueManager controller
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
16 *
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
17 * @author timpalpant
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
18 *
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
19 */
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
20 public class JobQueue implements ListModel<SubmittedJob>, Iterable<SubmittedJob> {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
21
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
22 private static final Logger log = Logger.getLogger(JobQueue.class);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
23
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
24 private final List<SubmittedJob> submittedJobs = new ArrayList<>();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
25 private final List<ListDataListener> dataListeners = new ArrayList<>();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
26
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
27 public void add(SubmittedJob job) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
28 int N = submittedJobs.size();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
29 submittedJobs.add(job);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
30 ListDataEvent e = new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, N, N);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
31 for (ListDataListener l : dataListeners) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
32 l.intervalAdded(e);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
33 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
34 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
35
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
36 public void remove(SubmittedJob job) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
37 submittedJobs.remove(job);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
38 int N = submittedJobs.size();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
39 ListDataEvent e = new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, N, N);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
40 for (ListDataListener l : dataListeners) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
41 l.intervalAdded(e);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
42 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
43 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
44
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
45 public void update(SubmittedJob job) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
46 int index = submittedJobs.indexOf(job);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
47 ListDataEvent e = new ListDataEvent(this, ListDataEvent.CONTENTS_CHANGED, index, index);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
48 for (ListDataListener l : dataListeners) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
49 l.intervalAdded(e);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
50 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
51 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
52
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
53 @Override
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
54 public int getSize() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
55 return submittedJobs.size();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
56 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
57
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
58 @Override
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
59 public SubmittedJob getElementAt(int index) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
60 return submittedJobs.get(index);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
61 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
62
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
63 @Override
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
64 public void addListDataListener(ListDataListener l) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
65 dataListeners.add(l);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
66 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
67
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
68 @Override
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
69 public void removeListDataListener(ListDataListener l) {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
70 dataListeners.remove(l);
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
71 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
72
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
73 @Override
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
74 public Iterator<SubmittedJob> iterator() {
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
75 return submittedJobs.iterator();
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
76 }
1daf3026d231 Upload alpha version
timpalpant
parents:
diff changeset
77 }