1 package uk.ac.cam.spectra.spectrasub.components;
2
3 import java.util.ArrayList;
4 import java.util.Arrays;
5 import java.util.List;
6
7 import org.apache.tapestry.BaseComponent;
8 import org.apache.tapestry.ITemplateComponent;
9
10 import uk.ac.cam.spectra.spectrasub.Configuration;
11 import uk.ac.cam.spectra.spectrasub.DataFile;
12 import uk.ac.cam.spectra.spectrasub.DataPackage;
13
14 public abstract class Border extends BaseComponent implements
15 ITemplateComponent {
16
17 public static List<String> PHASES = Arrays.asList(new String[] { "upload",
18 "metadata", "check", "finished" });
19
20 public List<DataFile> getAdded() {
21 return getPackage() == null ? new ArrayList<DataFile>() : getPackage()
22 .getAddedDataFiles();
23 }
24
25 public List<DataFile> getOtherUploads() {
26 if(getPackage() == null) {
27 return new ArrayList<DataFile>();
28 }
29 List<DataFile> rem = getPackage().getRemainingDataFiles();
30 return (rem.isEmpty()) ? rem : rem.subList(1, rem.size());
31 }
32
33 public DataFile getNextUpload() {
34 return getPackage() == null ? null : getPackage().getNextUpload();
35 }
36
37
38
39
40
41
42 public abstract DataPackage getPackage();
43
44 public abstract Configuration getConfig();
45
46
47
48
49
50
51 public abstract DataFile getDataFile();
52
53 public boolean phaseIs(String s) {
54 return s.equals(getPhase());
55 }
56
57
58
59
60
61
62
63 public String styleClass(String tagPhase) {
64 int tag = PHASES.indexOf(tagPhase);
65 if (tag == -1) {
66 return "done";
67 }
68 int ph = PHASES.indexOf(getPhase());
69 if (tag > ph) {
70 return "remaining";
71 } else if (tag < ph) {
72 return "done";
73 } else {
74 return "active";
75 }
76 }
77
78 public abstract String getPhase();
79
80 }