001 package videoautomat; 002 import java.io.FileInputStream; 003 import java.io.FileNotFoundException; 004 import java.io.IOException; 005 006 import log.LogInputStream; 007 import log.stdforms.LogTableForm; 008 import sale.Gate; 009 import sale.SaleProcess; 010 import sale.UIGate; 011 import sale.stdforms.MsgForm; 012 import videoautomat.contentcreator.AdminLTFContentCreator; 013 import videoautomat.contentcreator.AdminMFContentCreator; 014 /** 015 * This class implements a <code>SaleProcess</code> for the administrative work. 016 * 017 */ 018 public class SaleProcessAdmin extends SaleProcess { 019 /** 020 * Constructs a new SaleProcessAdmin. 021 * 022 */ 023 public SaleProcessAdmin() { 024 super("SaleProcessAdmin"); 025 } 026 027 /** 028 * Implementation of the inherited abstract method. At this <code>Gate</code> the user will see the content of 029 * the global logfile. 030 * 031 * @return the <code>Gate</code> this process will first switch to. 032 * 033 * @see sale.SaleProcess#getInitialGate() 034 */ 035 protected Gate getInitialGate() { 036 037 // generate the initial gate 038 UIGate uig_logfile = new UIGate(null, null); 039 040 try 041 { 042 FileInputStream fis = new FileInputStream(VideoShop.FILENAME); 043 LogInputStream lis = new LogInputStream(fis, new LogEntryFilterImpl()); 044 LogTableForm ltf_log = new LogTableForm("Logged information", lis); 045 ltf_log.addContentCreator(new AdminLTFContentCreator()); 046 uig_logfile.setFormSheet(ltf_log); 047 } 048 catch(FileNotFoundException e) 049 { 050 getStopGate(); 051 e.printStackTrace(); 052 } 053 catch(IOException e) 054 { 055 MsgForm msf_ioexc = new MsgForm( 056 "Empty-LogFile!", 057 "The log file was found empty.\nNothing to administrate here."); 058 msf_ioexc.addContentCreator(new AdminMFContentCreator()); 059 uig_logfile.setFormSheet(msf_ioexc); 060 } 061 return uig_logfile; 062 } 063 }