Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

ReportDownloader.java

00001 package ProdDatabase;
00002 
00003 import java.io.*;
00004 import java.util.*;
00005 import java.sql.*;
00006 import guiUtilities.*;
00007 /*
00008  * ReportDownloader.java
00009  *
00010  */
00011 
00016 public class ReportDownloader extends Thread {
00017     int reportType;
00018     String parameter1;
00019     int parameter2;
00020 //    HTMLViewer htmlViewer;
00021     Vector deviceList;
00022     boolean alreadyRunning=false;
00023     private final String thisThreadName = "SCTDB_DOWNLOAD";
00024 //    public static final int SCTDB_TEST_REPORT=0;
00025 //    public static final int SCTDB_MODULE_REPORT=1;
00026 //    public static final int SCTDB_SENSORS_REPORT=2;
00027 //    public static final int POSTSCRIPT_FILE=3;
00028 
00029 //    public ReportDownloader(int reportType, String parameter1, int parameter2, HTMLViewer htmlViewer) {
00030     public ReportDownloader(int reportType, String parameter1, int parameter2) {
00031          super("SCTDB_DOWNLOAD");
00032          this.reportType=reportType;
00033          this.parameter1=parameter1;
00034          this.parameter2=parameter2;
00035 //         this.htmlViewer=htmlViewer;
00036 
00037          setPriority(Thread.MIN_PRIORITY);
00038 
00039          }
00040 //    public ReportDownloader(int reportType, Vector deviceList, HTMLViewer htmlViewer) {
00041     public ReportDownloader(int reportType, Vector deviceList) {
00042          super("SCTDB_DOWNLOAD");
00043          this.reportType=reportType;
00044          this.deviceList = deviceList;
00045 //         this.htmlViewer=htmlViewer;
00046 
00047          setPriority(Thread.MIN_PRIORITY);
00048 
00049          }
00050     public boolean isOkToStart() {
00051          Thread[] allThreads = new Thread[Thread.activeCount()];
00052          Thread.enumerate(allThreads);
00053          for(int i=0;i<allThreads.length;i++) {
00054             if(allThreads[i]!=null && allThreads[i].getName().equals("SCTDB_DOWNLOAD") && allThreads[i].isAlive()) {
00055                   System.out.println("***A download from SCTDB is already in progress. Please wait...");
00056                   return false;
00057                   }
00058             }
00059          return true;
00060          }
00061 
00062     public void run() {
00063          StringBuffer htmlContent = new StringBuffer();
00064          switch(reportType) {
00065             case guiUtilities.HTMLViewer.SCTDAQTESTDATA:
00066              String testno=parameter1;
00067              SctDaqTestInfo testInfo;
00068              try {
00069                if((testInfo=HTMLReportUtilities.getHTMLTestInfo(parameter1))==null) {
00070                    javax.swing.JOptionPane.showMessageDialog(null,"No SCTDB data for this test number","No Data",javax.swing.JOptionPane.INFORMATION_MESSAGE);
00071                    return;
00072                    }
00073                htmlContent.append(guiUtilities.DaveUtils.getHTMLHeader(testInfo.getInfoString()));
00074                htmlContent.append(testInfo.getInfoString());
00075                htmlContent.append(HTMLReportUtilities.getHTMLCommentsTable(testno));
00076                htmlContent.append(HTMLReportUtilities.getHTMLDAQTable(testno));
00077                htmlContent.append(HTMLReportUtilities.getHTMLDCSTable(testno));
00078                htmlContent.append(HTMLReportUtilities.getHTMLScanTable(testno));
00079                htmlContent.append(HTMLReportUtilities.getSCTDAQHTMLTestData(testno,testInfo.getTestIndex()));
00080                htmlContent.append(HTMLReportUtilities.getHTMLDefectTable(testno));
00081                htmlContent.append(HTMLReportUtilities.getHTMLPlotTable(testno));
00082                htmlContent.append(HTMLReportUtilities.getImageHTMLTable(testno));
00083                htmlContent.append(guiUtilities.DaveUtils.getHTMLFooter());
00084                HTMLViewer.getInstance().show(htmlContent.toString(),testInfo.getInfoString());
00085              }catch(Exception e) {System.out.println("Exception writing html report: "+e.toString());};
00086              break;
00087             case guiUtilities.HTMLViewer.SCTDAQTESTLIST:
00088              String[] info = parameter1.split("__");
00089 // parameter1 is serno+"__"+sctdaq.getLocation()+"__"+sctdaq.getDate()+"__"+temperature
00090              String title = (info.length==1) ? "SCTDAQ Tests of "+info[0] : info[3]+" SCTDAQ Tests of "+info[0]+" at "+info[1]+" on "+info[2];
00091              try {
00092                htmlContent.append(guiUtilities.DaveUtils.getHTMLHeader(title));
00093                htmlContent.append(HTMLReportUtilities.getHTMLModuleSummaryData(parameter1));
00094                htmlContent.append(guiUtilities.DaveUtils.getHTMLFooter());
00095                HTMLViewer.getInstance().show(htmlContent.toString(),title);
00096              }catch(Exception e) {System.out.println("Exception writing html report: "+e.toString());};
00097              break;
00098             case guiUtilities.HTMLViewer.MODULESUMMARY:
00099              String modSummary;
00100              if((modSummary=HTMLReportUtilities.getModuleReport(parameter1))==null) return;
00101              HTMLViewer.getInstance().show(modSummary,"Summary Report for Module "+parameter1);
00102              break;
00103             case guiUtilities.HTMLViewer.SENSORTESTDATA:
00104                if(deviceList.size()<1) return;
00105                StringBuffer sensorList = new StringBuffer((String)deviceList.elementAt(0));
00106                for(int i=1;i<deviceList.size();i++) sensorList.append(","+(String)deviceList.elementAt(i));
00107                try {
00108                  htmlContent.append(guiUtilities.DaveUtils.getHTMLHeader("Test Report for Sensor(s) "+sensorList.toString()));
00109                  htmlContent.append(HTMLReportUtilities.getSensorMfrHTMLTable(deviceList));
00110                  htmlContent.append(HTMLReportUtilities.getSensorIVHTMLTable(deviceList));
00111                  htmlContent.append(HTMLReportUtilities.getSensorDepletionHTMLTable(deviceList));
00112                  htmlContent.append(HTMLReportUtilities.getSensorDefectHTMLTable(deviceList));
00113                  htmlContent.append(HTMLReportUtilities.getSensorVisualTestHTMLTable(deviceList));
00114                  htmlContent.append(guiUtilities.DaveUtils.getHTMLFooter());
00115                  HTMLViewer.getInstance().show(htmlContent.toString(),"Sensor Test Report for "+sensorList.toString());
00116                }catch(Exception e2) {System.out.println("ERROR: Exception writing sensor test report: "+e2.toString());};
00117                break;
00118             case guiUtilities.HTMLViewer.URLTOPOSTSCRIPT:
00119                 try {
00120                    GeneralUtilities.downloadPSFile(null,new java.net.URL(parameter1));
00121                 }catch(Exception e3) {System.out.println("ERROR: Exception downloading/displaying postscript: "+e3.toString());};
00122                 break;
00123             case guiUtilities.HTMLViewer.RAWDATA: 
00124                 try {
00125                    if((testInfo=HTMLReportUtilities.getHTMLTestInfo(parameter1))==null) {
00126                      javax.swing.JOptionPane.showMessageDialog(null,"No SCTDB data for this test number","No Data",javax.swing.JOptionPane.INFORMATION_MESSAGE);
00127                      return;
00128                      }
00129                 Vector theRawData = GeneralUtilities.getRawData(parameter1);
00130                 if(theRawData.size()>0) {
00131                    testInfo = HTMLReportUtilities.getHTMLTestInfo(parameter1);
00132                    RawDataViewer.getInstance().showNewData(theRawData,"Raw Data for "+testInfo.getInfoString());
00133                    }
00134                  }catch(Exception e4) {System.out.println("ERROR: Exception downloading raw data: "+e4.toString());};
00135                  break;
00136 
00137           default:
00138           }
00139      }
00140 
00141 
00142 }

Generated on Thu Jul 15 09:55:47 2004 for SCT DAQ/DCS Software - Java by doxygen 1.3.5