View Javadoc

1   package uk.ac.cam.spectra.spectrasub.pages;
2   
3   import org.apache.log4j.Logger;
4   import org.apache.tapestry.IPage;
5   import org.apache.tapestry.annotations.InjectObject;
6   import org.apache.tapestry.event.PageBeginRenderListener;
7   import org.apache.tapestry.event.PageEvent;
8   
9   import uk.ac.cam.spectra.spectrasub.DataPackage;
10  import uk.ac.cam.spectra.spectrasub.DataPackageDAO;
11  import uk.ac.cam.spectra.spectrasub.NotFoundException;
12  
13  public abstract class BaseSubmissionPage extends BaseSPECTRaSubPage implements IPage,
14          PageBeginRenderListener {
15  
16      public void pageBeginRender(PageEvent event) {
17          if (!getRequestCycle().isRewinding()) {
18              String id = getPackageId();
19              if (id == null) {
20                  throw new RuntimeException("Package ID lost, cannot continue");
21              } else {
22                  LOG.debug("Loading package: " + id);
23                  loadPackage();
24              }
25          }
26      }
27      
28      final static Logger LOG = Logger
29              .getLogger(BaseSubmissionPage.class);
30  
31      public DataPackage loadPackage() {
32          String id = getPackageId();
33          LOG.debug("Loading package: " + id);
34          try {
35              setPackage(getPackageDao().load(id));
36          } catch (NotFoundException e) {
37              LOG.error("Could not find process: " + e.getMessage(), e);
38              throw new RuntimeException("Could not find process: "
39                      + e.getMessage(), e);
40          }
41          return getPackage();
42      }
43  
44  
45      @InjectObject("spring:packageDAO")
46      public abstract DataPackageDAO getPackageDao();
47  
48      public abstract String getPackageId();
49  
50      public abstract void setPackageId(String string);
51  
52      /**
53       * Used in the progress bar.
54       * 
55       * @return
56       */
57      public abstract DataPackage getPackage();
58  
59      /**
60       * Used in the progress bar.
61       * 
62       * @param proc
63       */
64      public abstract void setPackage(DataPackage pkg);
65  
66  }