View Javadoc

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       * Used in the progress bar.
39       * 
40       * @return
41       */
42      public abstract DataPackage getPackage();
43  
44      public abstract Configuration getConfig();
45      
46      /**
47       * Used in progress bar.
48       * 
49       * @return
50       */
51      public abstract DataFile getDataFile();
52  
53      public boolean phaseIs(String s) {
54          return s.equals(getPhase());
55      }
56  
57      /**
58       * upload,metadata,check,finished
59       * 
60       * @param tagPhase
61       * @return
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  }