Coverage Report - org.homeunix.thecave.buddi.plugin.api.BuddiReportPlugin
 
Classes in this File Line Coverage Branch Coverage Complexity
BuddiReportPlugin
25%
1/4
N/A
1
 
 1  
 /*
 2  
  * Created on Sep 14, 2006 by wyatt
 3  
  * 
 4  
  * The interface which can be extended to create custom reports.
 5  
  */
 6  
 package org.homeunix.thecave.buddi.plugin.api;
 7  
 
 8  
 import java.util.Date;
 9  
 
 10  
 import org.homeunix.thecave.buddi.i18n.keys.PluginReportDateRangeChoices;
 11  
 import org.homeunix.thecave.buddi.plugin.api.exception.PluginException;
 12  
 import org.homeunix.thecave.buddi.plugin.api.model.ImmutableDocument;
 13  
 import org.homeunix.thecave.buddi.plugin.api.util.HtmlPage;
 14  
 
 15  
 import ca.digitalcave.moss.application.plugin.MossPlugin;
 16  
 import ca.digitalcave.moss.common.Version;
 17  
 import ca.digitalcave.moss.swing.MossDocumentFrame;
 18  
 
 19  
 
 20  
 /**
 21  
  * This class is the defintion of a Buddi report, which writes out HTML to disk and opens
 22  
  * it with a browser.  The main method which needs to be implemented is the getReport()
 23  
  * method.  This method gives you the document object, the frame which called this plugin,
 24  
  * and the date range on which to report.
 25  
  *  
 26  
  * @author wyatt
 27  
  *
 28  
  */
 29  14885
 public abstract class BuddiReportPlugin extends PreferenceAccess implements MossPlugin {
 30  
         /**
 31  
          * Returns an in-memory version of the printed page, as an HTML
 32  
          * file.  An HtmlPage object is just a small class containing a string
 33  
          * with the HTML text in it, and a map of String to BufferedImage
 34  
          * containing all the images referenced in the HTML, by name.
 35  
          * 
 36  
          * See HtmlPage for more information on what is needed. 
 37  
          * @param startDate Start of report period
 38  
          * @param endDate End of report period
 39  
          * @return
 40  
          */
 41  
         public abstract HtmlPage getReport(ImmutableDocument model, MossDocumentFrame callingFrame, Date startDate, Date endDate) throws PluginException;
 42  
         
 43  
         /**
 44  
          * This method will be called on the EventDispatch thread, before the 
 45  
          * getReport() method is run.  Since this method is run on the 
 46  
          * EventDispatch thread, and is the place to put any graphical forms or
 47  
          * other prompts for the user.  For instance, if you wish to show a 
 48  
          * window in which the user can pick options, put it here.
 49  
          * 
 50  
          * This method should return true if the plugin is to continue; false
 51  
          * if the user has canceled the plugin exection.
 52  
          * 
 53  
          * The default instance of the plugin returns true, without showing anything.
 54  
          * 
 55  
          * @return
 56  
          */
 57  
         public boolean getReportGUI(ImmutableDocument model, MossDocumentFrame callingFrame, Date startDate, Date endDate){
 58  0
                 return true;
 59  
         }
 60  
         
 61  
         /**
 62  
          * The type of plugin this should be.  Can choose between one of the following enum
 63  
          * values:
 64  
          * 
 65  
          *         INTERVAL,
 66  
          *  START_ONLY,
 67  
          *  END_ONLY
 68  
          *  
 69  
          * @return A constant enum value which determines how the plugin loader should display this plugin.
 70  
          */
 71  
         public abstract PluginReportDateRangeChoices getDateRangeChoice();
 72  
         
 73  
         public Version getMaximumVersion() {
 74  0
                 return null;
 75  
         }
 76  
 
 77  
         public Version getMinimumVersion() {
 78  0
                 return null;
 79  
         }
 80  
 }