Changeset 1309


Ignore:
Timestamp:
12/13/11 23:53:20 (9 years ago)
Author:
philsmart
Message:
 
Location:
raptor-web/trunk/src/main
Files:
8 edited
1 moved

Legend:

Unmodified
Added
Removed
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/engine/reports/BaseReportConstructor.java

    r1306 r1309  
    2323import org.springframework.core.io.Resource; 
    2424 
    25 import uk.ac.cardiff.raptorweb.model.GraphModel; 
    26 import uk.ac.cardiff.raptorweb.model.ReportModel; 
    2725import uk.ac.cardiff.raptorweb.model.WebSession; 
    2826 
    2927/** 
    3028 * @author philsmart 
    31  * 
     29 *  
    3230 */ 
    33 public abstract class ReportConstructor { 
    34      
    35         /** Class logger */ 
    36         private final Logger log = LoggerFactory.getLogger(CSVReportGenerator.class); 
     31public abstract class BaseReportConstructor { 
    3732 
    38         /** the location of the directory within the application that reports are saved to*/ 
    39         protected Resource saveDirectory; 
    40         protected Resource baseDirectory; 
    41          
    42         /** the enum list of the report types this handler can deal with e.g. excel or csv */ 
    43         public enum HandledReportTypes {excel("xls","excel"),csv("csv","CSV"),pdf("pdf","PDF"); 
     33    /** Class logger */ 
     34    private final Logger log = LoggerFactory.getLogger(CSVReportGenerator.class); 
    4435 
    45                 public String fileExtension; 
    46                 public String displayName; 
     36    /** the location of the directory within the application that reports are saved to */ 
     37    protected Resource saveDirectory; 
     38    protected Resource baseDirectory; 
    4739 
    48                 HandledReportTypes(String fileExtension, String displayName){ 
    49                         this.fileExtension = fileExtension; 
    50                         this.displayName=displayName; 
    51                 } 
     40    /** the enum list of the report types this handler can deal with e.g. excel or csv */ 
     41    public enum HandledReportTypes { 
     42        excel("xls", "excel"), csv("csv", "CSV"), pdf("pdf", "PDF"); 
    5243 
    53         }; 
     44        public String fileExtension; 
     45        public String displayName; 
    5446 
    55         /** the actual stored value of the enum*/ 
    56         private HandledReportTypes handledReportType; 
    57          
    58         public ReportConstructor(){ 
    59             HandledReportTypes registeredReportType = getRegisterHandledReportType(); 
    60             if (registeredReportType!=null){ 
    61                 handledReportType = registeredReportType; 
    62             } 
    63             else 
    64                 log.error("Report Generator did not register a report type"); 
    65         } 
    66          
    67         protected abstract HandledReportTypes getRegisterHandledReportType(); 
     47        HandledReportTypes(String fileExtension, String displayName) { 
     48            this.fileExtension = fileExtension; 
     49            this.displayName = displayName; 
     50        } 
    6851 
    69         public abstract void generateReport(WebSession session); 
     52    }; 
    7053 
    71         public void setSaveDirectory(Resource saveDirectory) { 
    72                 this.saveDirectory = saveDirectory; 
    73         } 
    74         public Resource getSaveDirectory() { 
    75                 return saveDirectory; 
    76         } 
    77         public void setBaseDirectory(Resource baseDirectory) { 
    78                 this.baseDirectory = baseDirectory; 
    79         } 
    80         public Resource getBaseDirectory() { 
    81                 return baseDirectory; 
    82         } 
     54    private HandledReportTypes handledReportType; 
    8355 
     56    public BaseReportConstructor() { 
     57        HandledReportTypes registeredReportType = getRegisterHandledReportType(); 
     58        if (registeredReportType != null) { 
     59            handledReportType = registeredReportType; 
     60        } else 
     61            log.error("Report Generator did not register a report type"); 
     62    } 
    8463 
    85         protected void setHandledReportType(HandledReportTypes handledReportType) { 
    86                 this.handledReportType = handledReportType; 
    87         } 
    88         protected HandledReportTypes getHandledReportType() { 
    89                 return handledReportType; 
    90         } 
     64    protected abstract HandledReportTypes getRegisterHandledReportType(); 
    9165 
     66    public abstract void generateReport(WebSession session); 
     67 
     68    public void setSaveDirectory(Resource saveDirectory) { 
     69        this.saveDirectory = saveDirectory; 
     70    } 
     71 
     72    public Resource getSaveDirectory() { 
     73        return saveDirectory; 
     74    } 
     75 
     76    public void setBaseDirectory(Resource baseDirectory) { 
     77        this.baseDirectory = baseDirectory; 
     78    } 
     79 
     80    public Resource getBaseDirectory() { 
     81        return baseDirectory; 
     82    } 
     83 
     84    protected void setHandledReportType(HandledReportTypes handledReportType) { 
     85        this.handledReportType = handledReportType; 
     86    } 
     87 
     88    protected HandledReportTypes getHandledReportType() { 
     89        return handledReportType; 
     90    } 
    9291 
    9392} 
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/engine/reports/CSVReportGenerator.java

    r899 r1309  
    2626import java.text.SimpleDateFormat; 
    2727import java.util.Date; 
    28 import java.util.List; 
    29 import java.util.Locale; 
    30  
    31 import uk.ac.cardiff.raptorweb.engine.RaptorWebEngine; 
    32 import uk.ac.cardiff.raptorweb.model.GraphModel; 
    33 import uk.ac.cardiff.raptorweb.model.RaptorTableChartModel; 
    34 import uk.ac.cardiff.raptorweb.model.ReportModel; 
    35 import uk.ac.cardiff.raptorweb.model.TableSeries; 
    36 import uk.ac.cardiff.raptorweb.model.WebSession; 
    37 import uk.ac.cardiff.raptorweb.model.records.Row; 
    38 import jxl.Workbook; 
    39 import jxl.WorkbookSettings; 
    40 import jxl.write.Label; 
    41 import jxl.write.NumberFormats; 
    42 import jxl.write.Number; 
    43 import jxl.write.WritableCellFormat; 
    44 import jxl.write.WritableFont; 
    45 import jxl.write.WritableSheet; 
    46 import jxl.write.WritableWorkbook; 
    47 import jxl.write.WriteException; 
    4828 
    4929import org.slf4j.Logger; 
    5030import org.slf4j.LoggerFactory; 
    51 import org.springframework.core.io.Resource; 
     31 
     32import uk.ac.cardiff.raptorweb.model.RaptorTableChartModel; 
     33import uk.ac.cardiff.raptorweb.model.TableSeries; 
     34import uk.ac.cardiff.raptorweb.model.WebSession; 
    5235 
    5336/** 
    5437 * @author philsmart 
    55  * 
     38 *  
    5639 */ 
    57 public class CSVReportGenerator extends ReportConstructor { 
    58      
     40public class CSVReportGenerator extends BaseReportConstructor { 
     41 
    5942    /** Class logger */ 
    6043    private final Logger log = LoggerFactory.getLogger(CSVReportGenerator.class); 
    6144 
    6245    public void generateReport(WebSession session) { 
    63         log.info("Generating CSV Report {}", session.getGraphmodel().getSelectedStatisticalUnit()); 
    64         String relativePath = null; 
    65         try { 
    66             // make sure base directory exists first 
    67             File baseGraphDirectory = saveDirectory.getFile(); 
    68             if (!baseGraphDirectory.exists()) 
    69                 baseGraphDirectory.mkdir(); 
     46        log.info("Generating CSV Report {}", session.getGraphmodel().getSelectedStatisticalUnit()); 
     47        String relativePath = null; 
     48        try { 
     49            // make sure base directory exists first 
     50            File baseGraphDirectory = saveDirectory.getFile(); 
     51            if (!baseGraphDirectory.exists()) 
     52                baseGraphDirectory.mkdir(); 
    7053 
    71             // append username, to create username specific directories 
    72             File dir = new File(saveDirectory.getFile().getCanonicalPath() + "/" + session.getUser().getName()); 
    73             log.debug("Save Directory exists: " + dir.exists()); 
    74             if (!dir.exists()) 
    75                 dir.mkdir(); 
     54            // append username, to create username specific directories 
     55            File dir = new File(saveDirectory.getFile().getCanonicalPath() + "/" + session.getUser().getName()); 
     56            log.debug("Save Directory exists: " + dir.exists()); 
     57            if (!dir.exists()) 
     58                dir.mkdir(); 
    7659 
    77             DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); 
    78             java.util.Date date = new java.util.Date(); 
    79              
    80             String fileName = session.getGraphmodel().getSelectedStatisticalUnit().getStatisticalUnitInformation().getStatisticParameters().getUnitName().replaceAll(" ", "") + "-" + dateFormat.format(date) + ".csv"; 
    81             if (!session.getGraphmodel().getDownloadFilename().equals("")){ 
    82                 fileName = session.getGraphmodel().getDownloadFilename()+".csv"; 
    83             }        
    84             dir = new File(dir.getAbsoluteFile() + "/"+fileName); 
     60            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); 
     61            java.util.Date date = new java.util.Date(); 
    8562 
     63            String fileName = session.getGraphmodel().getSelectedStatisticalUnit().getStatisticalUnitInformation().getStatisticParameters().getUnitName().replaceAll(" ", "") + "-" 
     64                    + dateFormat.format(date) + ".csv"; 
     65            if (!session.getGraphmodel().getDownloadFilename().equals("")) { 
     66                fileName = session.getGraphmodel().getDownloadFilename() + ".csv"; 
     67            } 
     68            dir = new File(dir.getAbsoluteFile() + "/" + fileName); 
    8669 
    87             StringBuilder document = new StringBuilder(); 
     70            StringBuilder document = new StringBuilder(); 
    8871 
    89             int rowCount = 0; 
    90             for (int lineCount=0; lineCount < maxNoRows(session.getGraphmodel().getCurrentTableGraph());lineCount++){ 
    91                 if (lineCount == 0) { 
    92                     // do headers 
    93                     for (TableSeries tseries : session.getGraphmodel().getCurrentTableGraph().getTableSeries()) { 
    94                         document.append(tseries.getSeriesLabel()+",values,"); 
    95                     } 
    96                     document.append("\n"); 
    97                 } 
    98                 else{ 
    99                     for (TableSeries tseries : session.getGraphmodel().getCurrentTableGraph().getTableSeries()){ 
    100                         if (tseries.getRows().size()>rowCount) 
    101                             document.append(tseries.getRows().get(rowCount).getGroup() + "," + tseries.getRows().get(rowCount).getValue() + ","); 
    102                     } 
    103                     document.append("\n"); 
    104                     rowCount++; 
    105                 } 
    106             } 
     72            int rowCount = 0; 
     73            for (int lineCount = 0; lineCount < maxNoRows(session.getGraphmodel().getCurrentTableGraph()); lineCount++) { 
     74                if (lineCount == 0) { 
     75                    // do headers 
     76                    for (TableSeries tseries : session.getGraphmodel().getCurrentTableGraph().getTableSeries()) { 
     77                        document.append(tseries.getSeriesLabel() + ",values,"); 
     78                    } 
     79                    document.append("\n"); 
     80                } else { 
     81                    for (TableSeries tseries : session.getGraphmodel().getCurrentTableGraph().getTableSeries()) { 
     82                        if (tseries.getRows().size() > rowCount) 
     83                            document.append(tseries.getRows().get(rowCount).getGroup() + "," + tseries.getRows().get(rowCount).getValue() + ","); 
     84                    } 
     85                    document.append("\n"); 
     86                    rowCount++; 
     87                } 
     88            } 
    10789 
    108             BufferedWriter writer = new BufferedWriter(new FileWriter(dir)); 
    109             writer.write(document.toString()); 
    110             writer.close(); 
     90            BufferedWriter writer = new BufferedWriter(new FileWriter(dir)); 
     91            writer.write(document.toString()); 
     92            writer.close(); 
    11193 
    112             relativePath = dir.getAbsolutePath().replace(baseDirectory.getFile().getParentFile().getAbsolutePath(), ""); 
    113             Date now = new Date(System.currentTimeMillis()); 
    114             session.getReportmodel().addReportForDownload(dir, relativePath,now, this.getHandledReportType().displayName); 
    115             log.debug("CSV Report Created At: " + relativePath); 
     94            relativePath = dir.getAbsolutePath().replace(baseDirectory.getFile().getAbsolutePath(), ""); 
     95            Date now = new Date(System.currentTimeMillis()); 
     96            session.getReportmodel().addReportForDownload(dir, relativePath, now, this.getHandledReportType().displayName); 
     97            log.debug("CSV Report Created At: " + relativePath); 
    11698 
    117         } catch (IOException e) { 
    118             log.error("Problem generating CSV report " + e.getMessage()); 
     99        } catch (IOException e) { 
     100            log.error("Problem generating CSV report " + e.getMessage()); 
    119101 
    120         } 
     102        } 
    121103 
    122         log.info("CSV Created..." + session.getGraphmodel().getSelectedStatisticalUnit()); 
     104        log.info("CSV Created..." + session.getGraphmodel().getSelectedStatisticalUnit()); 
    123105 
    124106    } 
     
    129111     */ 
    130112    private int maxNoRows(RaptorTableChartModel currentTableGraph) { 
    131         int maxRows = 0; 
    132          for (TableSeries tseries :currentTableGraph.getTableSeries()){ 
    133              if (tseries.getRows().size()>maxRows) 
    134                  maxRows=tseries.getRows().size(); 
    135         } 
    136         return maxRows; 
     113        int maxRows = 0; 
     114        for (TableSeries tseries : currentTableGraph.getTableSeries()) { 
     115            if (tseries.getRows().size() > maxRows) 
     116                maxRows = tseries.getRows().size(); 
     117        } 
     118        return maxRows; 
    137119    } 
    138120 
    139121    @Override 
    140122    protected HandledReportTypes getRegisterHandledReportType() { 
    141         return HandledReportTypes.csv; 
     123        return HandledReportTypes.csv; 
    142124    } 
    143125} 
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/engine/reports/ExcelReportGenerator.java

    r899 r1309  
    2424import java.text.SimpleDateFormat; 
    2525import java.util.Date; 
    26 import java.util.List; 
    2726import java.util.Locale; 
    2827 
    29 import uk.ac.cardiff.raptorweb.engine.RaptorWebEngine; 
    30 import uk.ac.cardiff.raptorweb.model.GraphModel; 
    31 import uk.ac.cardiff.raptorweb.model.RaptorTableChartModel; 
    32 import uk.ac.cardiff.raptorweb.model.ReportModel; 
    33 import uk.ac.cardiff.raptorweb.model.TableSeries; 
    34 import uk.ac.cardiff.raptorweb.model.WebSession; 
    35 import uk.ac.cardiff.raptorweb.model.records.Row; 
    3628import jxl.Workbook; 
    3729import jxl.WorkbookSettings; 
    3830import jxl.write.Label; 
     31import jxl.write.Number; 
    3932import jxl.write.NumberFormats; 
    40 import jxl.write.Number; 
    4133import jxl.write.WritableCellFormat; 
    4234import jxl.write.WritableFont; 
     
    4739import org.slf4j.Logger; 
    4840import org.slf4j.LoggerFactory; 
    49 import org.springframework.core.io.Resource; 
     41 
     42import uk.ac.cardiff.raptorweb.model.RaptorTableChartModel; 
     43import uk.ac.cardiff.raptorweb.model.TableSeries; 
     44import uk.ac.cardiff.raptorweb.model.WebSession; 
    5045 
    5146/** 
     
    5348 *  
    5449 */ 
    55 public class ExcelReportGenerator extends ReportConstructor { 
     50public class ExcelReportGenerator extends BaseReportConstructor { 
    5651    static Logger log = LoggerFactory.getLogger(ExcelReportGenerator.class); 
    5752 
     
    7368            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); 
    7469            java.util.Date date = new java.util.Date(); 
    75              
     70 
    7671            String fileName = session.getGraphmodel().getSelectedStatisticalUnit().getStatisticalUnitInformation().getStatisticParameters().getUnitName().replaceAll(" ", "") + "-" 
    7772                    + dateFormat.format(date) + ".xls"; 
    7873            if (!session.getGraphmodel().getDownloadFilename().equals("")) { 
    79                 fileName = session.getGraphmodel().getDownloadFilename()+".xls"; 
     74                fileName = session.getGraphmodel().getDownloadFilename() + ".xls"; 
    8075            } 
    8176            dir = new File(dir.getAbsoluteFile() + "/" + fileName); 
     
    123118            } 
    124119 
    125             relativePath = dir.getAbsolutePath().replace(baseDirectory.getFile().getParentFile().getAbsolutePath(), ""); 
     120            relativePath = dir.getAbsolutePath().replace(baseDirectory.getFile().getAbsolutePath(), ""); 
    126121            Date now = new Date(System.currentTimeMillis()); 
    127122            session.getReportmodel().addReportForDownload(dir, relativePath, now, this.getHandledReportType().displayName); 
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/engine/reports/GraphAndChartPDFReportGenerator.java

    r1051 r1309  
    5959 * The Class GraphAndChartPDFReportGenerator. 
    6060 */ 
    61 public class GraphAndChartPDFReportGenerator extends ReportConstructor { 
     61public class GraphAndChartPDFReportGenerator extends BaseReportConstructor { 
    6262 
    6363    /** The report bean. */ 
     
    8787            // append username, to create username specific directories 
    8888            File dir = new File(saveDirectory.getFile().getCanonicalPath() + "/" + session.getUser().getName()); 
    89             log.debug("Save Directory exists: " + dir.exists()); 
    90             if (!dir.exists()) 
     89            log.debug("Save {} Directory exists: {}", dir, dir.exists()); 
     90            if (!dir.exists()) { 
    9191                dir.mkdir(); 
     92            } 
    9293 
    9394            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); 
     
    100101            } 
    101102            dir = new File(dir.getAbsoluteFile() + "/" + fileName); 
     103            log.debug("Complete file directory to PDF is {}", dir); 
    102104 
    103105            File reportTemplateXMLFile = new File(baseDirectory.getFile().getCanonicalPath() + "/report-templates/" + reportXMLFile); 
    104             log.debug("Creating PDF in file {}", reportTemplateXMLFile); 
     106            log.debug("Report template XML file is at {}", reportTemplateXMLFile); 
    105107 
    106108            JasperPrint jp = constructReport(reportTemplateXMLFile, session); 
     109            log.debug("Exporting Jasper PDF resource to {}", dir.getCanonicalPath()); 
    107110            JasperExportManager.exportReportToPdfFile(jp, dir.getCanonicalPath()); 
    108111 
    109             String relativePath = dir.getAbsolutePath().replace(baseDirectory.getFile().getParentFile().getAbsolutePath(), ""); 
     112            String relativePath = dir.getAbsolutePath().replace(baseDirectory.getFile().getAbsolutePath(), ""); 
    110113            Date now = new Date(System.currentTimeMillis()); 
     114            log.debug("Report can be downloaded from {}", relativePath); 
     115 
    111116            session.getReportmodel().addReportForDownload(dir, relativePath, now, this.getHandledReportType().displayName); 
    112             log.info("Successfully created PDF...{}", session.getGraphmodel().getSelectedStatisticalUnit()); 
     117            log.info("Successfully created PDF...{}", session.getGraphmodel().getSelectedStatisticalUnit().getStatisticalUnitInformation().getStatisticParameters().getUnitName()); 
    113118 
    114119        } catch (JRException e) { 
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/engine/reports/ReportHandler.java

    r899 r1309  
    2424import java.util.List; 
    2525 
    26  
    2726import org.slf4j.Logger; 
    2827import org.slf4j.LoggerFactory; 
    2928import org.springframework.core.io.Resource; 
    3029 
    31 import uk.ac.cardiff.raptorweb.model.DownloadFile; 
    32 import uk.ac.cardiff.raptorweb.model.GraphModel; 
    3330import uk.ac.cardiff.raptorweb.model.ReportModel; 
    3431import uk.ac.cardiff.raptorweb.model.WebSession; 
     
    3633/** 
    3734 * @author philsmart 
    38  * 
     35 *  
    3936 */ 
    4037public class ReportHandler { 
    4138 
    42         static Logger log = LoggerFactory.getLogger(ReportHandler.class); 
     39    /** Class logger */ 
     40    final static Logger log = LoggerFactory.getLogger(ReportHandler.class); 
    4341 
    44         private List<ReportConstructor> reportConstructors; 
     42    /** The list of {@link BaseReportConstructor}s that this report handler can use to construct reports. */ 
     43    private List<BaseReportConstructor> reportConstructors; 
    4544 
     45    public void generateReport(WebSession session, String reportType) { 
     46        for (BaseReportConstructor reportConstructor : reportConstructors) { 
     47            log.debug("finding report constructor for {} with {}", reportType, reportConstructor.getHandledReportType().toString()); 
     48            if (reportConstructor.getHandledReportType().toString().equals(reportType)) { 
     49                reportConstructor.generateReport(session); 
     50            } 
     51        } 
    4652 
    47         public void generateReport(WebSession session, String reportType){ 
    48                 for (ReportConstructor reportConstructor : reportConstructors){ 
    49                         log.debug("finding report constructor for {} with {}",reportType,reportConstructor.getHandledReportType().toString()); 
    50                         if (reportConstructor.getHandledReportType().toString().equals(reportType)){ 
    51                                 reportConstructor.generateReport(session); 
    52                         } 
    53                 } 
     53    } 
    5454 
    55         } 
     55    public void setReportConstructors(List<BaseReportConstructor> reportConstructors) { 
     56        this.reportConstructors = reportConstructors; 
     57    } 
    5658 
    57         public void setReportConstructors(List<ReportConstructor> reportConstructors) { 
    58                 this.reportConstructors = reportConstructors; 
    59         } 
     59    public List<BaseReportConstructor> getReportConstructors() { 
     60        return reportConstructors; 
     61    } 
    6062 
    61         public List<ReportConstructor> getReportConstructors() { 
    62                 return reportConstructors; 
    63         } 
     63    /** 
     64     * @param report 
     65     */ 
     66    public void loadSavedReports(WebSession session) { 
     67        for (BaseReportConstructor reportConstructor : reportConstructors) { 
     68            Resource directory = reportConstructor.getSaveDirectory(); 
     69            Resource baseDirectory = reportConstructor.getBaseDirectory(); 
     70            String fileExtension = reportConstructor.getHandledReportType().fileExtension; 
    6471 
    65         /** 
    66          * @param report 
    67          */ 
    68         public void loadSavedReports(WebSession session) { 
    69                 for (ReportConstructor reportConstructor : reportConstructors){ 
    70                         Resource directory = reportConstructor.getSaveDirectory(); 
    71                         Resource baseDirectory = reportConstructor.getBaseDirectory(); 
    72                         String fileExtension = reportConstructor.getHandledReportType().fileExtension; 
    73                          
    74                         File dir; 
    75                         try { 
    76                                 dir = new File(directory.getFile().getCanonicalPath()+"/"+session.getUser().getName()); 
    77                                 File[] dirList = dir.listFiles(); 
    78                                 for (File file : dirList){ 
    79                                         if (file.getName().endsWith("."+fileExtension)){ 
    80                                                 String relativePath = file.getAbsolutePath().replace(baseDirectory.getFile().getParentFile().getAbsolutePath(),""); 
    81                                                 Date created = new Date(file.lastModified());                                            
    82                                                 session.getReportmodel().addReportForDownload(file, relativePath, created, reportConstructor.getHandledReportType().displayName); 
    83                                         } 
    84                                 } 
    85                         } 
    86                         catch (IOException e) { 
    87                                 log.error("Could not read any file for ReportConstructor {}",reportConstructor+" -> "+e.getMessage()); 
    88                         } 
    89                         catch (NullPointerException e) { 
    90                                 log.error("Could not read any file for ReportConstructor {}",reportConstructor+" -> "+e.getMessage()); 
    91                         } 
     72            File dir; 
     73            try { 
     74                dir = new File(directory.getFile().getCanonicalPath() + "/" + session.getUser().getName()); 
     75                File[] dirList = dir.listFiles(); 
     76                for (File file : dirList) { 
     77                    if (file.getName().endsWith("." + fileExtension)) { 
     78                        String relativePath = file.getAbsolutePath().replace(baseDirectory.getFile().getAbsolutePath(), ""); 
     79                        Date created = new Date(file.lastModified()); 
     80                        session.getReportmodel().addReportForDownload(file, relativePath, created, reportConstructor.getHandledReportType().displayName); 
     81                    } 
     82                } 
     83            } catch (IOException e) { 
     84                log.error("Could not read any file for ReportConstructor {}", reportConstructor + " -> " + e.getMessage()); 
     85            } catch (NullPointerException e) { 
     86                log.error("Could not read any file for ReportConstructor {}", reportConstructor + " -> " + e.getMessage()); 
     87            } 
    9288 
    93                 } 
    94         } 
     89        } 
     90    } 
    9591 
    96         /** 
    97         * @param selectDownloadFile 
    98         */ 
    99         public void removeReport(ReportModel model) { 
    100             log.debug("Removing {} report from filesystem ",model.getSelectedDownloadFile().getFile()); 
    101             boolean wasDeleted=model.getSelectedDownloadFile().getFile().delete(); 
    102             log.debug("file was removed {}",wasDeleted); 
    103             model.removeSelectedDownloadFile(); 
     92    /** 
     93    * @param selectDownloadFile 
     94    */ 
     95    public void removeReport(ReportModel model) { 
     96        log.debug("Removing {} report from filesystem ", model.getSelectedDownloadFile().getFile()); 
     97        boolean wasDeleted = model.getSelectedDownloadFile().getFile().delete(); 
     98        log.debug("file was removed {}", wasDeleted); 
     99        model.removeSelectedDownloadFile(); 
    104100 
    105         } 
    106  
    107  
     101    } 
    108102 
    109103} 
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/model/DownloadFile.java

    r899 r1309  
    1414 * limitations under the License. 
    1515 */ 
    16 /** 
    17  * 
    18  */ 
    1916package uk.ac.cardiff.raptorweb.model; 
    2017 
     
    2421 
    2522/** 
     23 * The Class DownloadFile. 
     24 *  
    2625 * @author philsmart 
    27  * 
    2826 */ 
    29 public class DownloadFile implements Serializable{ 
     27public class DownloadFile implements Serializable { 
    3028 
    31         private File file; 
    32         private String friendlyName; 
    33         private String downloadPath; 
    34         private Date createdDate; 
    35         private String typeDisplayName; 
     29    /** 
     30     * Generated Serial UID. 
     31     */ 
     32    private static final long serialVersionUID = 5552980503919792959L; 
    3633 
    37         public void setFile(File file) { 
    38                 this.file = file; 
    39                 friendlyName = file.getName(); 
    40         } 
    41         public File getFile() { 
    42                 return file; 
    43         } 
    44         public String getFriendlyName() { 
    45                 return friendlyName; 
    46         } 
    47         public void setDownloadPath(String downloadPath) { 
    48                 this.downloadPath = downloadPath; 
    49         } 
    50         public String getDownloadPath() { 
    51                 return downloadPath; 
    52         } 
    53         public void setCreatedDate(Date createdDate) { 
    54             this.createdDate = createdDate; 
    55         } 
    56         public Date getCreatedDate() { 
    57             return createdDate; 
    58         } 
    59         public void setTypeDisplayName(String typeDisplayName) { 
    60             this.typeDisplayName = typeDisplayName; 
    61         } 
    62         public String getTypeDisplayName() { 
    63             return typeDisplayName; 
    64         } 
     34    /** The file. */ 
     35    private File file; 
     36 
     37    /** The friendly name. */ 
     38    private String friendlyName; 
     39 
     40    /** The download path. To be appended to the context path of the servlet. */ 
     41    private String downloadPath; 
     42 
     43    /** The created date. */ 
     44    private Date createdDate; 
     45 
     46    /** The type display name. */ 
     47    private String typeDisplayName; 
     48 
     49    /** 
     50     * Sets the file. 
     51     *  
     52     * @param file 
     53     *            the new file 
     54     */ 
     55    public void setFile(File file) { 
     56        this.file = file; 
     57        friendlyName = file.getName(); 
     58    } 
     59 
     60    /** 
     61     * Gets the file. 
     62     *  
     63     * @return the file 
     64     */ 
     65    public File getFile() { 
     66        return file; 
     67    } 
     68 
     69    /** 
     70     * Gets the friendly name. 
     71     *  
     72     * @return the friendly name 
     73     */ 
     74    public String getFriendlyName() { 
     75        return friendlyName; 
     76    } 
     77 
     78    /** 
     79     * Sets the download path. 
     80     *  
     81     * @param downloadPath 
     82     *            the new download path 
     83     */ 
     84    public void setDownloadPath(String downloadPath) { 
     85        this.downloadPath = downloadPath; 
     86    } 
     87 
     88    /** 
     89     * Gets the download path. 
     90     *  
     91     * @return the download path 
     92     */ 
     93    public String getDownloadPath() { 
     94 
     95        return downloadPath; 
     96    } 
     97 
     98    /** 
     99     * Sets the created date. 
     100     *  
     101     * @param createdDate 
     102     *            the new created date 
     103     */ 
     104    public void setCreatedDate(Date createdDate) { 
     105        this.createdDate = createdDate; 
     106    } 
     107 
     108    /** 
     109     * Gets the created date. 
     110     *  
     111     * @return the created date 
     112     */ 
     113    public Date getCreatedDate() { 
     114        return createdDate; 
     115    } 
     116 
     117    /** 
     118     * Sets the type display name. 
     119     *  
     120     * @param typeDisplayName 
     121     *            the new type display name 
     122     */ 
     123    public void setTypeDisplayName(String typeDisplayName) { 
     124        this.typeDisplayName = typeDisplayName; 
     125    } 
     126 
     127    /** 
     128     * Gets the type display name. 
     129     *  
     130     * @return the type display name 
     131     */ 
     132    public String getTypeDisplayName() { 
     133        return typeDisplayName; 
     134    } 
    65135 
    66136} 
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/model/ReportModel.java

    r899 r1309  
    2727/** 
    2828 * @author philsmart 
    29  * 
     29 *  
    3030 */ 
    31 public class ReportModel implements Serializable{ 
     31public class ReportModel implements Serializable { 
    3232 
     33    /** Generated serial UID */ 
     34    private static final long serialVersionUID = -8181099012470152241L; 
    3335 
    34         private static final long serialVersionUID = -8181099012470152241L; 
     36    /** List of files that can be downloaded. */ 
     37    private List<DownloadFile> reportsForDownload; 
    3538 
    36         private List<DownloadFile> reportsForDownload; 
    37         private DownloadFile selectedDownloadFile; 
     39    /** The selected file to download. */ 
     40    private DownloadFile selectedDownloadFile; 
    3841 
    39         /** 
    40          * 
    41          * @param location - Location is only used to generate friendly names 
    42          * @param relativePath - used as a href to download the file 
    43          */ 
    44         public void addReportForDownload(File location, String relativePath, Date created, String typeDisplayName){ 
    45                 if (reportsForDownload==null)reportsForDownload = new ArrayList<DownloadFile>(); 
    46                 DownloadFile dlFile = new DownloadFile();                
    47                 dlFile.setFile(location); 
    48                 dlFile.setCreatedDate(created); 
    49                 dlFile.setTypeDisplayName(typeDisplayName); 
    50                 dlFile.setDownloadPath(relativePath); 
    51                 reportsForDownload.add(dlFile); 
    52         } 
     42    /** 
     43     *  
     44     * @param location 
     45     *            - Location is only used to generate friendly names 
     46     * @param relativePath 
     47     *            - used as a href to download the file 
     48     */ 
     49    public void addReportForDownload(File location, String relativePath, Date created, String typeDisplayName) { 
     50        if (reportsForDownload == null) 
     51            reportsForDownload = new ArrayList<DownloadFile>(); 
     52        DownloadFile dlFile = new DownloadFile(); 
     53        dlFile.setFile(location); 
     54        dlFile.setCreatedDate(created); 
     55        dlFile.setTypeDisplayName(typeDisplayName); 
     56        dlFile.setDownloadPath(relativePath); 
     57        reportsForDownload.add(dlFile); 
     58    } 
    5359 
     60    public List<DownloadFile> getReportsForDownload() { 
     61        return reportsForDownload; 
     62    } 
    5463 
    55         public List<DownloadFile> getReportsForDownload(){ 
    56                 return reportsForDownload; 
    57         } 
     64    public void setSelectedDownloadFile(DownloadFile selectedDownloadFile) { 
     65        this.selectedDownloadFile = selectedDownloadFile; 
     66    } 
    5867 
     68    public DownloadFile getSelectedDownloadFile() { 
     69        return selectedDownloadFile; 
     70    } 
    5971 
    60         public void setSelectedDownloadFile(DownloadFile selectedDownloadFile) { 
    61             this.selectedDownloadFile = selectedDownloadFile; 
    62         } 
     72    /** 
     73     * Removes the selectedDownloadFile form the <code>reportsForDownload</code> list 
     74     */ 
     75    public void removeSelectedDownloadFile() { 
     76        if (reportsForDownload != null) 
     77            reportsForDownload.remove(selectedDownloadFile); 
    6378 
    64  
    65         public DownloadFile getSelectedDownloadFile() { 
    66             return selectedDownloadFile; 
    67         } 
    68  
    69  
    70         /** 
    71          * Removes the selectedDownloadFile form the <code>reportsForDownload</code> list 
    72          */ 
    73         public void removeSelectedDownloadFile() { 
    74             if (reportsForDownload!=null)reportsForDownload.remove(selectedDownloadFile); 
    75  
    76         } 
    77  
    78  
    79  
     79    } 
    8080 
    8181} 
  • raptor-web/trunk/src/main/webapp/WEB-INF/flows/reports/graphicalReports.xhtml

    r1220 r1309  
    2121        xmlns:h="http://java.sun.com/jsf/html" 
    2222        xmlns:f="http://java.sun.com/jsf/core" 
     23        xmlns:c="http://java.sun.com/jsp/jstl/core" 
    2324        xmlns:sf="http://www.springframework.org/tags/faces" 
    2425        xmlns:a4j="http://richfaces.org/a4j" 
     
    534535                                                                                <h:outputText value="Download" /> 
    535536                                                                        </f:facet> 
    536                                                                         <a href="#{row.downloadPath}">download</a> 
     537                                                                        <a href="#{request.contextPath}#{row.downloadPath}">download</a> 
    537538                                                                </rich:column> 
    538539                                                                <rich:column align="center"> 
  • raptor-web/trunk/src/main/webapp/login.jsp

    r1268 r1309  
    9494                                                </div></td> 
    9595                                        <td width="10%"></td> 
    96  
     96                 
    9797                                </tr> 
    9898                        </table> 
Note: See TracChangeset for help on using the changeset viewer.